Databricks Genie API MCP Server について
Databricks Genie API MCP Server は、Databricks Genie API の機能をツールとして提供する MCP サーバーです。自然言語で Databricks データを照会したい方を対象に、標準的なインターフェースを通じて他のアプリケーションと連携できます。
主な機能
- 01Genie API 機能の MCP ツール化
- 02Genie の会話とメッセージの管理
- 03Genie が生成した SQL の実行と結果取得
- 04Databricks SDK による認証
活用シーン
- 01Claude Desktop から自然言語で Databricks データを照会
- 02Genie の会話を開始し、クエリ結果を取得
- 03Genie が生成した完全なクエリ結果のダウンロード
MCP 対応
本プロジェクトは MCP サーバーとして動作し、start_conversation、create_message、get_space などの Genie 関連ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Databricks Genie API MCP サーバー
このプロジェクトでは、Databricks Genie API の機能をツールとして公開する Model Context Protocol(MCP)サーバーを実装しています。標準化されたインターフェースを通じて、Databricks のノーコード AI/BI アシスタント機能を他のアプリケーションと連携できるようにし、Databricks のデータを強力な自然言語で検索できるようにします。
詳しい説明とユースケースの例については、関連するブログ記事をご覧ください。
機能
- Databricks Genie API の関数を MCP ツールとして公開します。
- Databricks のデータを自然言語で検索できるようにします。
- Genie の会話を開始し、管理します。
- メッセージを作成し、取得します。
- Genie が生成した SQL クエリを実行し、結果を取得します。
- Databricks に安全に認証します。
前提条件
- Python 3.10+
- Genie へのアクセス権と System Tables が有効な Databricks ワークスペース(使用する場合)。
- Databricks Assistant が有効であること。
- Pro または Serverless SQL ウェアハウスに対する CAN USE 権限。
- Genie Space に関連する Unity Catalog データへのアクセス権。
- Claude Desktop など、MCP 互換のクライアントアプリケーション。
セットアップ手順
-
リポジトリをクローンする(まだクローンしていない場合)
# 必要に応じてクローンコマンドを追加 -
サーバーディレクトリに移動する
cd genie_api -
依存関係をインストールする
pip install -r requirements.txt -
認証を設定する
Databricks SDK がワークスペースに接続するために必要な環境変数を設定します。このディレクトリ(
genie_api/)に.envファイルを作成するか、環境変数をグローバルに設定してください。# --- .env ファイルの内容 --- # PAT 認証の場合(開発環境で推奨) # DATABRICKS_HOST=https://your-workspace.cloud.databricks.com # DATABRICKS_TOKEN=your-personal-access-token # または、サービスプリンシパルを使用した OAuth の場合(本番環境で推奨) DATABRICKS_HOST=https://your-workspace.cloud.databricks.com DATABRICKS_CLIENT_ID=your-client-id DATABRICKS_CLIENT_SECRET=your-client-secret # --- .env ファイルの内容ここまで ---.envファイルを.gitignoreに追加してください。 -
サーバーをローカルで実行する
python server.pyサーバーが起動し、標準入出力(stdio)経由で接続を待ち受けます。
Claude Desktop での使用
この MCP サーバーは、Claude Desktop などの MCP クライアントで使用するように設計されています。接続するには、次の手順に従ってください。
-
Claude Desktop をインストールする: 公式ウェブサイトからダウンロードしてインストールします。
-
Claude Desktop を設定する:
- Claude Desktop の設定を開きます(メニューバー -> Claude -> Settings...)。
- Developer -> Edit Config に移動します。
- 必要に応じてパスを調整し、
claude_desktop_config.jsonファイルのmcpServersオブジェクトに次の項目を追加します。
{ "mcpServers": { "databricks-genie": { "command": "python", // Or python3, or the full path to your python executable "args": [ "/full/absolute/path/to/your/project/genie_api/server.py" ], "workingDirectory": "/full/absolute/path/to/your/project/genie_api/" } // ... potentially other servers ... } }- 重要:
server.pyとgenie_apiディレクトリには、完全な絶対パスを指定してください。 - Python の
commandが Claude Desktop から利用できることを確認してください。 workingDirectoryを指定すると、サーバーがauth.pyと.envファイルを見つけられるようになります。
-
Claude Desktop を再起動する: アプリケーションを終了して、再度開きます。
-
確認する: チャット入力欄のハンマーアイコン(Tools)をクリックします。
databricks-genieのツール(例:start_conversation、create_message)が表示されます。
これで、「先月の DBU 消費量はどれくらいでしたか?」や「昨日、PII テーブルにアクセスしたのは誰ですか?」といった質問を Claude に尋ねると、ローカルサーバーが提供するツールを使用して回答します。
Claude Desktop の設定の詳細については、Claude Desktop ユーザー向け MCP クイックスタートをご覧ください。
利用可能なツール
start_conversation:Genie スペースで新しい会話を開始します。create_message:既存の会話に新しいメッセージを作成します。get_message:会話からメッセージを取得します。get_message_attachment_query_result:メッセージの添付ファイルから SQL クエリの結果を取得します。execute_message_attachment_query:メッセージのクエリ添付ファイルの SQL を実行します。get_space:Genie スペースの詳細を取得します。generate_download_full_query_result:クエリ結果全体のダウンロードを開始します。poll_message_until_complete:メッセージが終了状態になるまでポーリングします。
トラブルシューティング
- 認証の問題: Databricks の認証情報(
.envファイルまたは環境変数)と、Databricks で必要な権限を確認してください。 - 接続の問題(Claude Desktop):
claude_desktop_config.jsonの絶対パスが正しいことを確認してください。commandが有効な Python インタープリターを指していることを確認してください。- Claude Desktop のログ(
~/Library/Logs/Claude/または%APPDATA%\Claude\logs)を確認してください。mcp.logとmcp-server-databricks-genie.logを探します。 - エラーを確認するため、
genie_apiディレクトリからターミナルでpython server.pyを手動で実行してみてください。
- SQL 実行エラー: サービスプリンシパルまたはユーザーに、SQL ウェアハウスの CAN USE 権限と、関連する Unity Catalog データへのアクセス権があることを確認してください。
セキュリティに関する考慮事項
- 認証情報: 認証情報をハードコードしないでください。環境変数(
.env)または安全な認証情報ストアを使用してください。.envが.gitignoreに含まれていることを確認してください。本番環境では、サービスプリンシパルを使用した OAuth を使用してください。 - MCP のセキュリティ: このサーバーは、ユーザーの権限と Databricks の認証情報を使用してローカルで実行されます。Claude Desktop などのクライアントは、ツールを実行する前にユーザーの同意を得る必要があります(MCP Security Specification)。
- 本番環境へのデプロイ: このサーバーをより広範に利用するには、安全なホスティング戦略が必要です。このローカルサーバーをそのまま公開しないでください。 セキュリティ/DevOps チームと連携し、適切なホスティング、ネットワーク制御、および必要に応じて MCP サーバーレベルの認証を検討してください。ホスティング環境から Databricks の認証情報(インスタンスプロファイル、マネージドシークレットなど)に安全にアクセスできる必要があります。詳しくは、ブログ記事をご覧ください。
- 入力のサニタイズ: ツール経由で渡される入力の処理は、Databricks SDK/API を信頼してください。
コントリビューション
コントリビューションを歓迎します。Issue を作成するか、プルリクエストを送信してください。
ライセンス
このソフトウェアは、Databricks, Inc. が付与する特定のライセンスに基づいて提供されます。このソフトウェアの使用を規定する利用規約の全文については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。