Databricks MCP サーバー
これは、Statement Execution APIを使用してDatabricksに対してSQLクエリを実行するためのモデルコンテキストプロトコル(MCP)サーバーです。Databricks APIを使用してSQLリクエストを実行し、データを取得できます。エージェントモードで使用すると、多数のリクエストを反復処理して複雑なタスクを実行できます。Unityカタログメタデータと組み合わせると、さらに優れたパフォーマンスを発揮します。
特徴
- DatabricksでSQLクエリを実行する
- カタログ内の利用可能なスキーマを一覧表示する
- スキーマ内のテーブルを一覧表示する
- テーブルスキーマを説明する
設定
システム要件
- Python 3.10以上
uv
経由でインストールする場合は、インストールされていることを確認してください
インストール
- 必要な依存関係をインストールします。
またはuv
を使用する場合:
- 環境変数を設定します。オプション 1: .env ファイルを使用する (推奨)Databricks の資格情報を使用して .env ファイルを作成します。オプション2: 環境変数を直接設定する
SQL ウェアハウス ID は、Databricks UI の SQL ウェアハウスの下にあります。
権限要件
この MCP サーバーを使用する前に、次の点を確認してください。
- SQL ウェアハウスの権限: 提供されたトークンに関連付けられたユーザーには、指定された SQL ウェアハウスにアクセスするための適切な権限が必要です。ウェアハウスの権限は、Databricks UI の「SQL ウェアハウス」>「[ウェアハウス名]」>「権限」で設定できます。
- トークンの権限:使用する個人用アクセストークンには、必要な操作を実行するために必要な最小限の権限が付与されている必要があります。以下の点を強く推奨します。
- このアプリケーション専用のトークンを作成する
- セキュリティリスクを制限するために、可能な場合は読み取り専用権限を付与します。
- ワークスペース全体の管理者権限を持つトークンの使用を避ける
- データ アクセス権限: トークンに関連付けられたユーザーには、クエリの対象となるカタログ、スキーマ、およびテーブルにアクセスするための適切な権限が必要です。
Databricks REST API 経由で SQL ウェアハウスの権限を設定するには、以下を使用できます。
- 現在の権限を確認するには、
GET /api/2.0/sql/permissions/warehouses/{warehouse_id}
- 権限を更新するには、
PATCH /api/2.0/sql/permissions/warehouses/{warehouse_id}
ます。
セキュリティのベスト プラクティスとして、アクセス トークンを定期的にローテーションし、クエリ履歴を監査して使用状況を監視することを検討してください。
サーバーの実行
スタンドアロンモード
サーバーをスタンドアロン モードで実行するには:
これにより、stdio トランスポートを使用して MCP サーバーが起動し、Agent Composer またはその他の MCP クライアントで使用できるようになります。
カーソルの使用
この MCP サーバーをCursorで使用するには、Cursor 設定で構成する必要があります。
- ホームディレクトリに
.cursor
ディレクトリがまだ存在しない場合は作成します。 - そのディレクトリに
mcp.json
ファイルを作成または編集します。
- 次の構成を
mcp.json
ファイルに追加し、ディレクトリ パスをこのサーバーをインストールした実際のパスに置き換えます。
uv
を使用していない場合は、代わりにpython
を使用できます。
- 変更を適用するにはカーソルを再起動してください
これで、Cursor の AI アシスタント内で Databricks MCP サーバーを直接使用できるようになります。
利用可能なツール
サーバーは次のツールを提供します。
execute_sql_query
: SQLクエリを実行し、結果を返すlist_schemas
: 特定のカタログで利用可能なすべてのスキーマを一覧表示するlist_tables
: 特定のスキーマ内のすべてのテーブルを一覧表示するdescribe_table
: テーブルのスキーマを記述する
使用例
Agent Composer またはその他の MCP クライアントでは、次のようなツールを使用できます。
長時間実行クエリの処理
サーバーは、クエリが完了するかタイムアウトするまで、Databricks API をポーリングすることで、長時間実行されるクエリを処理するように設計されています。デフォルトのタイムアウトは 10 分(10 秒間隔で 60 回の再試行)ですが、必要に応じてdbapi.py
ファイルで調整できます。
依存関係
- httpx: Databricks APIへのHTTPリクエストを行うため
- python-dotenv: .env ファイルから環境変数を読み込む
- mcp: モデルコンテキストプロトコルライブラリ
- asyncio: 非同期操作用
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
これは、ステートメント実行APIを使用してDatabricksに対してSQLクエリを実行するためのモデルコンテキストプロトコル(MCP)サーバーです。AIアシスタントがDatabricksデータウェアハウスに直接クエリを実行し、データベーススキーマを分析し、クエリ結果を構造化された形式で取得することを可能にします。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server implementation that provides database interaction and business intelligence capabilities through SQLite. This server enables running SQL queries, analyzing business data, and automatically generating business insight memos.Last updated -68,255MIT License
- -securityAlicense-qualityA Model Context Protocol (MCP) server that enables AI assistants to interact with MySQL databases by executing SQL queries and checking database connectivity.Last updated -MIT License
- AsecurityFlicenseAqualityA server that implements the Model Completion Protocol (MCP) to allow LLMs to interact with Databricks resources including clusters, jobs, notebooks, and SQL execution through natural language.Last updated -1137
- -securityFlicense-qualityA Model Context Protocol (MCP) server that converts natural language queries into SQL statements, allowing users to query MySQL databases using conversational language instead of writing SQL code.Last updated -3