mcpField
L
Lightdash Mcp

Lightdash Mcp

ローカル
github.com/poddubnyolegデータ・分析2417 週間前に更新

Lightdash Mcp について

Lightdash 分析プラットフォームを Claude や Cursor などの AI アシスタントに接続する MCP サーバーです。データの探索、クエリ実行、チャート作成、ダッシュボード管理を行えます。Lightdash Cloud とセルフホスト環境の両方に対応しています。

主な機能

  1. 01データカタログと explore スキーマの検索
  2. 02フィルタや指標を含むクエリ実行
  3. 03保存済みチャートの作成・参照・更新・削除
  4. 04ダッシュボードのタイルとフィルターの管理
  5. 05スペースの作成と削除

活用シーン

  1. 01AI アシスタントから業務指標を照会してデータを取得する
  2. 02ダッシュボードのタイルを一括実行して結果を取得する
  3. 03チャートやダッシュボードをプログラムから作成・更新する

MCP 対応

本プロジェクトは MCP サーバーであり、データ探索、クエリ、チャートおよびダッシュボード管理のツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"lightdash_mcp": {
"command": "uvx",
"args": [
"lightdash-mcp"
],
"env": {
"LIGHTDASH_TOKEN": "<LIGHTDASH_TOKEN>",
"LIGHTDASH_URL": "<LIGHTDASH_URL>"
}
}
}
}
起動コマンドuvx lightdash-mcp
設定が必要な環境変数
LIGHTDASH_TOKENシークレット
LIGHTDASH_URL

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilightdash-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Lightdash MCP サーバー

License: MIT Python 3.10+ MCP PyPI GitHub stars

Model Context Protocol(MCP)を使用して、Claude、Cursor、その他の AI アシスタントを Lightdash の分析機能に接続します。

Lightdash と連携する Model Context Protocol(MCP)サーバーです。LLM がプログラムからデータを探索し、チャートを作成し、ダッシュボードを管理できるようにします。

機能

この MCP サーバーは、データ分析のワークフロー全体を支援する包括的なツールセットを提供します。

  • 探索:データカタログを確認し、テーブルや探索対象を見つけ、スキーマを把握します
  • クエリ:フィルター、メトリクス、集計を全面的にサポートしてクエリを実行します
  • チャート管理:複雑な可視化を含むチャートの作成、読み取り、更新、削除を行います
  • ダッシュボード管理:タイル、フィルター、レイアウトを含むダッシュボードを作成、管理します
  • リソースの整理:コンテンツを整理するスペースを作成、管理します

インストール

前提条件
  • Python 3.10+
  • Lightdash インスタンス(クラウドまたはセルフホスト)
  • Lightdash パーソナルアクセストークン(Lightdash のプロフィール設定から取得)
pip でクイックスタート(推奨)
pip install lightdash-mcp
uvx でクイックスタート
uvx lightdash-mcp
pipx でクイックスタート
pipx run lightdash-mcp
ソースからインストール
git clone https://github.com/poddubnyoleg/lightdash_mcp.git
cd lightdash_mcp
pip install .
Google Cloud IAP のサポート

Lightdash インスタンスが Google Cloud Identity-Aware Proxy の背後にある場合(例:--iap を使用する Cloud Run)、iap エクストラを指定してインストールします。

pip install lightdash-mcp[iap]
# or from source
pip install .[iap]

IAP_ENABLED=true を設定します。サーバーは IAM Credentials API を介して JWT(オーディエンス {LIGHTDASH_URL}/*)に署名し、すべてのリクエストに Proxy-Authorization: Bearer <jwt> として付加します。Lightdash 用の Authorization: ApiKey ヘッダーは維持されます。

サービスアカウント認証情報とユーザー認証情報(Application Default Credentials / ADC)の両方がサポートされています。

サービスアカウント認証情報(Cloud Run、GCE などでのデフォルト):

  • ランタイムのサービスアカウントには、自身に対する roles/iam.serviceAccountTokenCreator が必要です
  • ランタイムのサービスアカウントには、Cloud Run サービスに対する roles/iap.httpsResourceAccessor が必要です

ユーザー認証情報(ADC)(例:gcloud auth application-default login):

  • JWT への署名時に偽装するサービスアカウントのメールアドレスを IAP_SA に設定します
  • ユーザーには、対象のサービスアカウントに対する roles/iam.serviceAccountTokenCreator が必要です
  • 対象のサービスアカウントには、Cloud Run サービスに対する roles/iap.httpsResourceAccessor が必要です

設定

環境変数

サーバーには次の環境変数が必要です。

変数必須説明例
LIGHTDASH_TOKEN✅Lightdash パーソナルアクセストークンldt_abc123...
LIGHTDASH_URL✅Lightdash インスタンスのベース URLhttps://app.lightdash.cloud
CF_ACCESS_CLIENT_ID❌Cloudflare Access クライアント ID(CF Access の背後にある場合)-
CF_ACCESS_CLIENT_SECRET❌Cloudflare Access クライアントシークレット(CF Access の背後にある場合)-
LIGHTDASH_PROJECT_UUID❌デフォルトのプロジェクト UUID(未設定の場合、最初に利用可能なプロジェクトを使用)3fc2835f-...
IAP_ENABLED❌Google Cloud IAP 認証を有効化します(true/1)true
IAP_SA❌ユーザー認証情報(ADC)使用時の IAP 用サービスアカウントのメールアドレス[email protected]
Lightdash トークンの取得方法
  1. Lightdash インスタンスにログインします
  2. 設定 → パーソナルアクセストークンに移動します
  3. 新しいトークンを生成をクリックします
  4. トークン(ldt_ で始まるもの)をコピーします
Claude Desktop での使用

以下を claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "lightdash": {
      "command": "uvx",
      "args": ["lightdash-mcp"],
      "env": {
        "LIGHTDASH_TOKEN": "ldt_your_token_here",
        "LIGHTDASH_URL": "https://app.lightdash.cloud",
        "LIGHTDASH_PROJECT_UUID": "your-project-uuid"
      }
    }
  }
}
Claude Code(CLI)での使用

プロジェクトのルートに .mcp.json を作成するか、編集します。

{
  "mcpServers": {
    "lightdash": {
      "type": "stdio",
      "command": "lightdash-mcp",
      "env": {
        "LIGHTDASH_URL": "https://your-lightdash-instance.com",
        "LIGHTDASH_TOKEN": "ldt_your_token_here",
        "LIGHTDASH_PROJECT_UUID": "your-project-uuid"
      }
    }
  }
}

Claude Code を再起動し、/mcp を実行してサーバーが接続済みと表示されることを確認します。

注:.mcp.json にシークレットが含まれている場合は、コミットしないでください。.gitignore に追加します。

その他の MCP クライアントでの使用

実行前に環境変数をエクスポートします。

export LIGHTDASH_TOKEN="ldt_your_token_here"
export LIGHTDASH_URL="https://app.lightdash.cloud"
lightdash-mcp

利用可能なツール

📊 検出とメタデータ
ツール説明
list-projects利用可能な Lightdash プロジェクトをすべて一覧表示します
get-project特定のプロジェクトの詳細情報を取得します
list-exploresプロジェクト内で利用可能な Explore/テーブルをすべて一覧表示します
get-explore-schema特定の Explore の詳細なスキーマ(ディメンション、メトリクス、結合)を取得します
list-spacesプロジェクト内のすべてのスペース(フォルダー)を一覧表示します
get-custom-metricsプロジェクトで定義されたカスタムメトリクスを取得します
📈 チャート管理
ツール説明
list-charts保存済みチャートをすべて一覧表示します。名前で絞り込むこともできます
search-charts名前または説明でチャートを検索します
get-chart-details特定のチャートの完全な設定を取得します
create-chartメトリクスクエリと可視化設定を指定して、新しい保存済みチャートを作成します
update-chart既存のチャートの設定(名前、説明、クエリ、可視化)を更新します
run-chart-queryチャートのクエリを実行し、データを取得します
delete-chart保存済みチャートを削除します
📋 ダッシュボード管理
ツール説明
list-dashboardsプロジェクト内のすべてのダッシュボードを一覧表示します
create-dashboard新しいダッシュボードを作成します(空の状態、またはタイル付き)
duplicate-dashboard既存のダッシュボードを新しい名前で複製します
get-dashboard-tilesダッシュボードのすべてのタイルを取得します。完全な設定を含めることもできます
get-dashboard-tile-chart-config特定のダッシュボードタイルの完全なチャート設定を取得します
get-dashboard-codeダッシュボードの完全な設定をコードとして取得します
create-dashboard-tile新しいタイル(チャート、Markdown、または loom)をダッシュボードに追加します
update-dashboard-tileタイルのプロパティ(位置、サイズ、内容)を更新します
rename-dashboard-tileダッシュボードのタイル名を変更します
delete-dashboard-tileダッシュボードからタイルを削除します
update-dashboard-filtersダッシュボードレベルのフィルターを更新します
run-dashboard-tilesダッシュボード上の1つ、複数、またはすべてのタイルを同時に実行します
🔍 クエリ実行
ツール説明
run-chart-query保存済みチャートのクエリを実行し、データを返します
run-dashboard-tilesダッシュボードのタイルのクエリを実行します(一括実行に対応)
run-raw-query任意の Explore に対してアドホックなメトリクスクエリを実行します
🗂️ リソース管理
ツール説明
create-spaceチャートやダッシュボードを整理するための新しいスペースを作成します
delete-space空のスペースを削除します

プロジェクト構成

.
├── pyproject.toml              # Package configuration
├── lightdash_mcp/              # Main package
│   ├── __init__.py             # Package init
│   ├── server.py               # MCP server entry point
│   ├── lightdash_client.py     # Lightdash API client
│   └── tools/                  # Tool implementations
│       ├── __init__.py         # Auto-discovery and tool registry
│       ├── base_tool.py        # Base tool interface
│       └── *.py                # Individual tool implementations
├── README.md
└── LICENSE

開発

新しいツールの追加

サーバーは tools/ ディレクトリからツールを自動検出して登録します。新しいツールを追加するには、次の手順に従います。

  1. 新しいファイルを作成します。lightdash_mcp/tools/ 内に作成してください(例:my_new_tool.py)

  2. ツールを定義します。

    from pydantic import BaseModel, Field
    from .base_tool import ToolDefinition
    from .. import lightdash_client as client
    
    class MyToolInput(BaseModel):
        param1: str = Field(..., description="Description of param1")
    
    TOOL_DEFINITION = ToolDefinition(
        name="my-new-tool",
        description="Description of what this tool does",
        input_schema=MyToolInput
    )
    
    def run(param1: str) -> dict:
        """ツールのロジックを実行します"""
        result = client.get(f"/api/v1/some/endpoint/{param1}")
        return result
    
  3. サーバーを再起動します。ツールが自動的に登録されます

ツールレジストリ

ツールは tools/__init__.py を通じて自動的に検出されます。このファイルでは、次の処理を行います。

  • tools/ ディレクトリ内の Python モジュールをスキャンします
  • 各モジュールをインポートします(ユーティリティモジュールを除く)
  • TOOL_DEFINITION.name に基づいてツールを登録します
テスト

個々のツールは、インポートしてテストできます。

from tools import tool_registry

# List all registered tools
print(tool_registry.keys())

# Test a specific tool
result = tool_registry['list-projects'].run()
print(result)

トラブルシューティング

認証エラー

401 Unauthorized エラーが表示される場合:

  • LIGHTDASH_TOKEN が正しく、ldt_ で始まっていることを確認してください
  • トークンの有効期限が切れていないことを確認してください
  • Lightdash で必要な権限があることを確認してください
接続エラー

接続エラーが表示される場合:

  • LIGHTDASH_URL が正しいことを確認してください
  • Lightdash Cloud の場合:https://app.lightdash.cloud を使用してください
  • セルフホストの場合:https://your-domain.com を使用してください
  • Cloudflare Access の背後にある場合は、CF_ACCESS_CLIENT_ID と CF_ACCESS_CLIENT_SECRET が設定されていることを確認してください
  • Google Cloud IAP の背後にある場合は、IAP_ENABLED=true が設定されていること、pip install lightdash-mcp[iap] でインストールされていること、サービスアカウント自身に serviceAccountTokenCreator が付与されていることを確認してください
ツールが見つからない場合

ツールが表示されない場合:

  • ファイルが tools/ ディレクトリ内にあることを確認してください
  • ファイルに TOOL_DEFINITION 変数があることを確認してください
  • ファイルが tools/__init__.py の除外リストに含まれていないことを確認してください
  • MCP サーバーを再起動してください

コントリビューション

コントリビューションを歓迎します。次の手順でお願いします。

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します
  3. 適切なテストを追加して変更を加えます
  4. プルリクエストを送信します

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

サポート

問題や質問がある場合:

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。