Superset MCP Integration について
Superset MCP Integration は Apache Superset 向けの MCP サーバーで、AI エージェントからプログラムによって Superset インスタンスに接続し操作できるようにします。ダッシュボード、チャート、データベース、SQL Lab を自然言語で管理したいユーザー向けで、Claude Desktop での利用手順が含まれています。
主な機能
- 01ダッシュボードとチャートの作成・参照・更新・削除ツール
- 02データベース接続とデータセットの管理ツール
- 03SQL Lab でのクエリ実行と整形のツール
- 04タグ管理のツール
- 05環境変数による接続設定
活用シーン
- 01自然言語による Superset ダッシュボードの照会と更新
- 02Superset での SQL 実行と結果の CSV 出力
- 03データベース接続とタグの管理
MCP 対応
このプロジェクトは MCP サーバーであり、認証、ダッシュボード、チャート、データベース、データセット、SQL Lab、タグなどの Superset 操作を MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Superset MCP 統合
Apache Superset を操作するための MCP サーバーです。AI エージェントが Superset インスタンスにプログラムから接続し、制御できるようにします。
セットアップ手順
Smithery 経由でのインストール
Smithery 経由で Superset Integration を Claude Desktop に自動インストールするには、次の手順に従います。
npx -y @smithery/cli install @aptro/superset-mcp --client claude
手動インストール
-
Superset をローカルにセットアップする
このスクリプトを実行して、Superset をローカルで起動します。
git clone --branch 4.1.1 --depth 1 https://github.com/apache/superset && \ cd superset && \ docker compose -f docker-compose-image-tag.yml upSuperset が起動したら、http://localhost:8088 でデフォルトの認証情報を使ってアクセスできます。
- ユーザー名:admin
- パスワード:admin
-
このリポジトリをクローンする
このリポジトリをローカルマシンにクローンします。
-
環境変数を設定する
Superset の認証情報を記載した
.envファイルをルートディレクトリに作成します。SUPERSET_BASE_URL=http://localhost:8088 # Change to your Superset URL SUPERSET_USERNAME=your_username SUPERSET_PASSWORD=your_password -
依存関係をインストールする
uv pip install . -
Claude 用の MCP 設定をインストールする
Claude Desktop アプリで使用するには、次の手順に従います。
mcp install main.py
Claude での使用方法
セットアップ後は、自然言語でリクエストして、Claude 経由で Superset インスタンスを操作できます。次に例を示します。
ダッシュボード管理
- ダッシュボードを表示:「Superset のすべてのダッシュボードを表示して」
- ダッシュボードの詳細を取得:「ID 5 のダッシュボードの詳細を表示して」
- ダッシュボードを作成:「『Sales Overview』というタイトルの新しいダッシュボードを作成して」
- ダッシュボードを更新:「ダッシュボード 3 のタイトルを『Updated Sales Report』に変更して」
- ダッシュボードを削除:「ID 7 のダッシュボードを削除して」
チャート管理
- すべてのチャートを一覧表示:「Superset インスタンスにあるチャートをすべて教えて」
- チャートの詳細を表示:「ID 10 のチャートの詳細を表示して」
- チャートを作成:「データセット 3 を使って新しい棒グラフを作成して」
- チャートを更新:「チャート 5 の可視化を棒グラフから折れ線グラフに変更して」
- チャートを削除:「ID 12 のチャートを削除して」
データベースとデータセットの操作
- データベースを一覧表示:「Superset に接続されているデータベースをすべて表示して」
- データセットを一覧表示:「Superset インスタンスで利用できるデータセットを教えて」
- データベースのテーブルを取得:「ID 1 のデータベースで利用できるテーブルを教えて」
- SQL を実行:「データベース 1 でこの SQL クエリを実行して:SELECT * FROM users LIMIT 10」
- データセットを作成:「データベース 2 のテーブル『customers』から新しいデータセットを作成して」
- データベースを更新:「データベース 3 の接続設定を更新して」
- データベースを削除:「ID 4 のデータベース接続を削除して」
- SQL を検証:「この SQL はデータベース 2 で有効ですか:SELECT * FROM customers JOIN orders」
- データベースのカタログを取得:「データベース 1 で利用できるカタログを表示して」
- データベースの関数を取得:「データベース 2 で利用できる関数を教えて」
- 関連オブジェクトを確認:「データベース 1 を使用しているダッシュボードとチャートを教えて」
SQL Lab の機能
- クエリを実行:「この SQL クエリを実行して:SELECT COUNT(*) FROM orders」
- SQL を整形:「この SQL クエリを整形して:SELECT id,name,age FROM users WHERE age>21」
- クエリコストを見積もる:「このクエリのコストを見積もって:SELECT * FROM large_table」
- 保存済みクエリを取得:「保存済みの SQL クエリをすべて表示して」
- クエリ結果を取得:「キーが『abc123』のクエリの結果を取得して」
ユーザーとシステムの情報
- ユーザー情報を表示:「どのユーザーとしてログインしていますか?」
- ユーザーロールを取得:「Superset で自分に割り当てられているロールを教えて」
- 最近のアクティビティを表示:「Superset インスタンスの最近のアクティビティを表示して」
- メニューデータを取得:「どのメニュー項目にアクセスできますか?」
- ベース URL を取得:「接続先の Superset インスタンスの URL を教えて」
タグ管理
- タグを一覧表示:「Superset インスタンスのすべてのタグを表示して」
- タグを作成:「『Finance』という名前の新しいタグを作成して」
- タグを削除:「ID 5 のタグを削除して」
- オブジェクトにタグを付ける:「ダッシュボード 3 に『Finance』タグを追加して」
- タグを削除:「チャート 7 から『Finance』タグを削除して」
利用可能な MCP ツール
このプラグインでは、Claude が使用できる次の MCP ツールを提供しています。
認証
superset_auth_check_token_validity- 現在のアクセストークンが有効かどうかを確認しますsuperset_auth_refresh_token- アクセストークンを更新しますsuperset_auth_authenticate_user- Superset で認証します
ダッシュボード
superset_dashboard_list- すべてのダッシュボードを一覧表示しますsuperset_dashboard_get_by_id- 特定のダッシュボードを取得しますsuperset_dashboard_create- 新しいダッシュボードを作成しますsuperset_dashboard_update- 既存のダッシュボードを更新しますsuperset_dashboard_delete- ダッシュボードを削除します
チャート
superset_chart_list- すべてのチャートを一覧表示しますsuperset_chart_get_by_id- 特定のチャートを取得しますsuperset_chart_create- 新しいチャートを作成しますsuperset_chart_update- 既存のチャートを更新しますsuperset_chart_delete- チャートを削除します
データベース
superset_database_list- すべてのデータベースを一覧表示しますsuperset_database_get_by_id- 特定のデータベースを取得しますsuperset_database_create- 新しいデータベース接続を作成しますsuperset_database_get_tables- データベース内のテーブルを一覧表示しますsuperset_database_schemas- データベースのスキーマを取得しますsuperset_database_test_connection- データベース接続をテストしますsuperset_database_update- 既存のデータベース接続を更新しますsuperset_database_delete- データベース接続を削除しますsuperset_database_get_catalogs- データベースのカタログを取得しますsuperset_database_get_connection- データベース接続情報を取得しますsuperset_database_get_function_names- データベースでサポートされている関数名を取得しますsuperset_database_get_related_objects- データベースに関連付けられたチャートとダッシュボードを取得しますsuperset_database_validate_sql- 任意の SQL をデータベースに対して検証しますsuperset_database_validate_parameters- データベース接続パラメーターを検証します
データセット
superset_dataset_list- すべてのデータセットを一覧表示しますsuperset_dataset_get_by_id- 特定のデータセットを取得しますsuperset_dataset_create- 新しいデータセットを作成します
SQL Lab
superset_sqllab_execute_query- SQL クエリを実行しますsuperset_sqllab_get_saved_queries- 保存済みの SQL クエリを一覧表示しますsuperset_sqllab_format_sql- SQL クエリをフォーマットしますsuperset_sqllab_get_results- クエリ結果を取得しますsuperset_sqllab_estimate_query_cost- クエリのコストを見積もりますsuperset_sqllab_export_query_results- クエリ結果を CSV にエクスポートしますsuperset_sqllab_get_bootstrap_data- SQL Lab のブートストラップデータを取得します
クエリ
superset_query_list- すべてのクエリを一覧表示しますsuperset_query_get_by_id- 特定のクエリを取得しますsuperset_query_stop- 実行中のクエリを停止します
保存済みクエリ
superset_saved_query_get_by_id- 特定の保存済みクエリを取得しますsuperset_saved_query_create- 新しい保存済みクエリを作成します
ユーザー情報
superset_user_get_current- 現在のユーザー情報を取得しますsuperset_user_get_roles- ユーザーのロールを取得します
アクティビティ
superset_activity_get_recent- 最近のアクティビティデータを取得します
システム
superset_menu_get- メニューデータを取得しますsuperset_config_get_base_url- Superset インスタンスのベース URL を取得します
タグ
superset_tag_list- すべてのタグを一覧表示しますsuperset_tag_create- 新しいタグを作成しますsuperset_tag_get_by_id- 特定のタグを取得しますsuperset_tag_objects- タグに関連付けられたオブジェクトを取得しますsuperset_tag_delete- タグを削除しますsuperset_tag_object_add- オブジェクトにタグを追加しますsuperset_tag_object_remove- オブジェクトからタグを削除します
探索ツール
superset_explore_form_data_create- チャート探索用のフォームデータを作成しますsuperset_explore_form_data_get- チャート探索用のフォームデータを取得しますsuperset_explore_permalink_create- チャート探索用のパーマリンクを作成しますsuperset_explore_permalink_get- チャート探索用のパーマリンクを取得します
高度なデータ型
superset_advanced_data_type_convert- 値を高度なデータ型に変換しますsuperset_advanced_data_type_list- 利用可能な高度なデータ型を一覧表示します
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
| SUPERSET_BASE_URL | Superset インスタンスの URL | http://localhost:8088 |
| SUPERSET_USERNAME | Superset のユーザー名 | なし |
| SUPERSET_PASSWORD | Superset のパスワード | なし |
トラブルシューティング
- 認証の問題が発生した場合は、
.envファイル内の認証情報を確認してください - Superset が実行されており、
.envファイルで指定した URL からアクセスできることを確認してください - 互換性のあるバージョンの Superset を使用していることを確認してください(バージョン 4.1.1 でテスト済みです)
- MCP サーバーが使用するポートが、別のアプリケーションによって使用されていないことを確認してください
セキュリティに関する注意事項
- Superset の認証情報はローカルの
.envファイルにのみ保存されます - アクセストークンはプロジェクトディレクトリ内の
.superset_tokenファイルに保存されます - すべての認証は、MCP サーバーと Superset インスタンス間で直接行われます
- 認証情報が Claude やその他の第三者に送信されることはありません
- 本番環境で使用する場合は、より安全な認証方法の利用を検討してください
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。