Databricks MCP Server について
Databricks MCP Server は Databricks API に接続する MCP サーバーで、LLM が SQL クエリの実行やジョブの確認を行えるようにします。自然言語で Databricks ワークスペースを操作したいユーザーに適しています。
主な機能
- 01Databricks SQL ウェアハウスでの SQL クエリ実行
- 02ワークスペース内の全ジョブの一覧表示
- 03特定ジョブのステータス取得
- 04ジョブの詳細情報の取得
活用シーン
- 01LLM によるレコード数の集計やテーブル一覧の確認
- 02特定ジョブの実行状況の確認
- 03トラブルシューティング時のジョブ詳細の確認
MCP 対応
本プロジェクトは MCP サーバーであり、run_sql_query、list_jobs、get_job_status、get_job_details の 4 つのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Databricks MCP サーバー
Databricks API に接続する Model Context Protocol(MCP)サーバーです。LLM が SQL クエリを実行したり、ジョブを一覧表示したり、ジョブのステータスを取得したりできます。
機能
- Databricks SQL ウェアハウスで SQL クエリを実行
- Databricks のすべてのジョブを一覧表示
- 特定の Databricks ジョブのステータスを取得
- Databricks ジョブの詳細情報を取得
前提条件
- Python 3.7+
- Databricks ワークスペース(以下が必要です):
- 個人用アクセストークン
- SQL ウェアハウスのエンドポイント
- クエリの実行およびジョブへのアクセス権限
セットアップ
- このリポジトリをクローンします
- 仮想環境を作成して有効化します(推奨):
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate - 依存関係をインストールします:
pip install -r requirements.txt - ルートディレクトリに
.envファイルを作成し、次の変数を設定します:DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com DATABRICKS_TOKEN=your-personal-access-token DATABRICKS_HTTP_PATH=/sql/1.0/warehouses/your-warehouse-id - 接続をテストします(任意ですが、推奨):
python test_connection.py
Databricks の認証情報を取得する
- ホスト:Databricks インスタンスの URL(例:
your-instance.cloud.databricks.com) - トークン:Databricks で個人用アクセストークンを作成します:
- ユーザー設定に移動します(右上のユーザー名をクリック)
- 「Developer」タブを選択します
- 「Access tokens」の下にある「Manage」をクリックします
- 新しいトークンを生成し、すぐに保存します
- HTTP Path:SQL ウェアハウスの接続情報を取得します:
- Databricks で「SQL Warehouses」に移動します
- 使用するウェアハウスを選択します
- 接続情報を確認し、HTTP Path をコピーします
サーバーの実行
MCP サーバーを起動します:
python main.py
次のコマンドを実行すると、インスペクターを使って MCP サーバーをテストできます。
npx @modelcontextprotocol/inspector python3 main.py
利用可能な MCP ツール
次の MCP ツールを利用できます。
- run_sql_query(sql: str) - Databricks SQL ウェアハウスで SQL クエリを実行します
- list_jobs() - ワークスペース内のすべての Databricks ジョブを一覧表示します
- get_job_status(job_id: int) - ID を指定して、特定の Databricks ジョブのステータスを取得します
- get_job_details(job_id: int) - 特定の Databricks ジョブの詳細情報を取得します
LLM での使用例
MCP プロトコルに対応した LLM で使用すると、このサーバーを通じて Databricks 環境と自然言語でやり取りできます。
- 「データベース内のすべてのテーブルを表示して」
- 「customer テーブルのレコード数を数えるクエリを実行して」
- 「Databricks のすべてのジョブを一覧表示して」
- 「ジョブ #123 のステータスを確認して」
- 「ジョブ #456 の詳細を表示して」
トラブルシューティング
接続の問題
- Databricks ホストが正しく、
https://プレフィックスが含まれていないことを確認してください - SQL ウェアハウスが稼働中で、アクセス可能であることを確認してください
- 個人用アクセストークンに必要な権限があることを確認してください
- 同梱のテストスクリプトを実行してください:
python test_connection.py
セキュリティに関する考慮事項
- Databricks の個人用アクセストークンを使うと、ワークスペースに直接アクセスできます
.envファイルを安全に保管し、バージョン管理にコミットしないでください- 適切な権限スコープのみを設定した Databricks トークンの使用を検討してください
- このサーバーは安全な環境で実行してください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。