Databricks MCP サーバー
これは、Statement Execution APIを使用してDatabricksに対してSQLクエリを実行するためのモデルコンテキストプロトコル(MCP)サーバーです。Databricks APIを使用してSQLリクエストを実行し、データを取得できます。エージェントモードで使用すると、多数のリクエストを反復処理して複雑なタスクを実行できます。Unityカタログメタデータと組み合わせると、さらに優れたパフォーマンスを発揮します。
特徴
DatabricksでSQLクエリを実行する
カタログ内の利用可能なスキーマを一覧表示する
スキーマ内のテーブルを一覧表示する
テーブルスキーマを説明する
Related MCP server: MCP MySQL App
設定
システム要件
Python 3.10以上
uv経由でインストールする場合は、インストールされていることを確認してください
インストール
必要な依存関係をインストールします。
またはuvを使用する場合:
環境変数を設定します。
オプション 1: .env ファイルを使用する (推奨)
Databricks の資格情報を使用して .env ファイルを作成します。
DATABRICKS_HOST=your-databricks-instance.cloud.databricks.com DATABRICKS_TOKEN=your-databricks-access-token DATABRICKS_SQL_WAREHOUSE_ID=your-sql-warehouse-idオプション2: 環境変数を直接設定する
export DATABRICKS_HOST="your-databricks-instance.cloud.databricks.com" export DATABRICKS_TOKEN="your-databricks-access-token" export DATABRICKS_SQL_WAREHOUSE_ID="your-sql-warehouse-id"
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クエリを実行し、結果を返すexecute_sql_query(sql: str) -> strlist_schemas: 特定のカタログで利用可能なすべてのスキーマを一覧表示するlist_schemas(catalog: str) -> strlist_tables: 特定のスキーマ内のすべてのテーブルを一覧表示するlist_tables(schema: str) -> strdescribe_table: テーブルのスキーマを記述するdescribe_table(table_name: str) -> str
使用例
Agent Composer またはその他の MCP クライアントでは、次のようなツールを使用できます。
長時間実行クエリの処理
サーバーは、クエリが完了するかタイムアウトするまで、Databricks API をポーリングすることで、長時間実行されるクエリを処理するように設計されています。デフォルトのタイムアウトは 10 分(10 秒間隔で 60 回の再試行)ですが、必要に応じてdbapi.pyファイルで調整できます。
依存関係
httpx: Databricks APIへのHTTPリクエストを行うため
python-dotenv: .env ファイルから環境変数を読み込む
mcp: モデルコンテキストプロトコルライブラリ
asyncio: 非同期操作用