Databricks MCP Server について
Databricks MCP Serverは、公式Python SDKを通じてMCPクライアントをDatabricksの各サービスに接続します。データ、コンピュート、機械学習、管理、ガイド付きワークフローを幅広く扱い、モジュール単位でツールを絞り込めます。
主な機能
- 0128サービス領域のツール
- 028種類のガイド付きプロンプト
- 03ツールモジュールの選択読み込み
- 04SDKによる認証管理
- 05ワークスペース情報のリソース
- 06stdioとSSEのトランスポート
活用シーン
- 01データのクエリとUnity Catalogの探索
- 02コンピュート、ジョブ、パイプラインの管理
- 03モデルのデプロイとVector Searchの利用
- 04ワークスペースのユーザーと権限の管理
MCP 対応
Databricksの操作をMCPツールとして提供し、プロンプトテンプレートと読み取り専用のワークスペース情報も公開します。クライアントはstdioまたはSSEで接続でき、環境変数でツールモジュールを絞り込めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx databricks-sdk-mcpDATABRICKS_HOSTYour Databricks workspace URL (e.g. https://adb-123.azuredatabricks.net)DATABRICKS_TOKENシークレットDatabricks personal access token or OAuth tokenDATABRICKS_MCP_TOOLS_INCLUDEComma-separated list of tool modules to load (e.g. unity_catalog,sql,compute). Leave empty to load all 263 tools.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Databricks MCP サーバー
公式の Databricks Python SDK を基盤として構築された、Databricks 向けの包括的な Model Context Protocol (MCP) サーバーです。
28 のサービス領域にわたる 263 個のツールと 8 個のプロンプトテンプレートを提供し、AI アシスタントから Databricks プラットフォーム全体にアクセスできます。
特長
- SDK を優先:型安全性と API の自動的な最新化のため、
databricks-sdkを使用します - 幅広い対応範囲:Unity Catalog、SQL、Compute、Jobs、Pipelines、Serving、Vector Search、Apps、Lakebase、Dashboards、Genie、Secrets、IAM、Connections、Experiments、Delta Sharing をカバーします
- カスタム認証不要:認証はすべて SDK に委任されます(PAT、OAuth、Azure AD、サービスプリンシパルに自動対応)
- 選択的な読み込み:環境変数を使ってツールモジュールを含めるか除外できます
- MCP リソース:読み取り専用のワークスペースコンテキスト(URL、現在のユーザー、認証タイプ)
クイックスタート
インストール
pip install databricks-sdk-mcp
または、Docker で実行します:
docker run -i -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=... databricks-mcp
または、ソースからインストールします:
git clone https://github.com/pramodbhatofficial/databricks-mcp-server.git
cd databricks-mcp-server
pip install -e ".[dev]"
認証
認証は Databricks SDK が処理します。次のいずれかを設定してください。
個人用アクセストークン(最も簡単):
export DATABRICKS_HOST=https://your-workspace.databricks.com
export DATABRICKS_TOKEN=dapi...
OAuth(M2M — サービスプリンシパル):
export DATABRICKS_HOST=https://your-workspace.databricks.com
export DATABRICKS_CLIENT_ID=...
export DATABRICKS_CLIENT_SECRET=...
OAuth(U2M — 対話型ブラウザーログイン):
有効期間が短く、自動更新される OAuth トークンを使って、自分のアカウントで認証します。Databricks CLI で一度ログインすると、トークンは名前付きプロファイルとして ~/.databrickscfg にキャッシュされます。
databricks auth login --host https://your-workspace.databricks.com --profile my-profile
続いて、トークンを設定する代わりに、そのプロファイルをサーバーに指定します。
export DATABRICKS_CONFIG_PROFILE=my-profile
注記:
DATABRICKS_TOKENが設定されている場合、SDK はプロファイルよりもそちらを優先して使用します。 プロファイルを使って認証する場合は、DATABRICKS_TOKEN/DATABRICKS_HOSTを未設定にしてください。
その他の方法:Azure AD、Azure Managed Identity — いずれも SDK が自動検出します。
実行
databricks-mcp
これにより、stdio トランスポートを使って MCP サーバーが起動します。
インテグレーション
Claude Code(ターミナル)
~/.claude/settings.json またはプロジェクトの .claude/settings.json に追加します。
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
トークンの代わりに OAuth U2M を使用するには、ログイン済みのプロファイルを指定し(認証を参照)、DATABRICKS_HOST/DATABRICKS_TOKEN を省略します。
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_CONFIG_PROFILE": "my-profile"
}
}
}
}
続いて Claude Code を再起動します。/mcp を実行すると、登録済みのツールを確認できます。
Claude Desktop
Claude Desktop の設定ファイルに追加します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
Claude Desktop を再起動すると、ツール選択メニューに Databricks ツールが表示されます。
Cursor
プロジェクトのルートにある .cursor/mcp.json(または全体設定用の ~/.cursor/mcp.json)に追加します。
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
Cursor の Settings > MCP を開き、サーバーが接続されていることを確認します。
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
VS Code(Copilot)
プロジェクト内の .vscode/mcp.json に追加します。
{
"servers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
Zed
Zed の設定(~/.config/zed/settings.json)に追加します。
{
"context_servers": {
"databricks": {
"command": {
"path": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi..."
}
}
}
}
}
任意の MCP クライアント(汎用 stdio)
このサーバーは stdio トランスポートを使用します。MCP 対応の任意のクライアントから接続できます。
# Set auth env vars
export DATABRICKS_HOST=https://your-workspace.databricks.com
export DATABRICKS_TOKEN=dapi...
# Start the server (communicates via stdin/stdout)
databricks-mcp
ヒント:必要なものだけを読み込む
MCP クライアントが多数のツールを扱いきれない場合は、選択的な読み込みを使ってツール数を減らしてください。
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi...",
"DATABRICKS_MCP_TOOLS_INCLUDE": "unity_catalog,sql,compute,jobs"
}
}
}
}
ツールモジュール
| モジュール | ツール | 説明 |
|---|---|---|
unity_catalog | 23 | カタログ、スキーマ、テーブル、ボリューム、関数、登録済みモデル |
sql | 14 | ウェアハウス、SQL の実行、クエリ、アラート、履歴 |
workspace | 10 | ノートブック、ファイル、リポジトリ |
compute | 18 | クラスター、インスタンスプール、ポリシー、ノードタイプ、Spark バージョン |
jobs | 13 | ジョブ、実行、タスク、修復、すべてキャンセル |
pipelines | 8 | DLT / Lakeflow パイプライン |
serving | 10 | サービングエンドポイント、モデルバージョン、OpenAPI |
vector_search | 10 | ベクトル検索エンドポイント、インデックス、同期 |
apps | 10 | Databricks Apps のライフサイクル |
database | 10 | Lakebase PostgreSQL インスタンス |
dashboards | 9 | Lakeview AI/BI ダッシュボード、公開済みビュー |
genie | 5 | Genie AI/BI の会話 |
secrets | 8 | シークレットスコープとシークレット |
iam | 16 | ユーザー、グループ、サービスプリンシパル、権限、現在のユーザー |
connections | 5 | 外部接続 |
experiments | 14 | MLflow の実験、実行、アーティファクト、メトリクス、パラメーター |
sharing | 11 | Delta Sharing の共有、受信者、プロバイダー |
files | 12 | DBFS と UC Volumes のファイル操作 |
grants | 3 | Unity Catalog の権限付与(GRANT/REVOKE) |
storage | 10 | ストレージ認証情報と外部ロケーション |
metastores | 8 | Unity Catalog のメタストア管理 |
online_tables | 3 | 低レイテンシーのサービング用オンラインテーブル |
global_init_scripts | 5 | ワークスペース全体の初期化スクリプト |
tokens | 5 | 個人用アクセストークンの管理 |
git_credentials | 5 | リポジトリ用 Git 認証情報の管理 |
quality_monitors | 8 | データ品質のモニタリングと更新 |
command_execution | 4 | クラスターでの対話型コマンド実行 |
workflows | 5 | 複合的な複数ステップ操作(ワークスペースの状態、スキーマ設定、クエリのプレビュー) |
ツールの選択的な読み込み
ツールが263個あるため、必要なモジュールのみを読み込むことをおすすめします。これにより、エージェントのパフォーマンスとツール選択の精度が向上します。
ロール別プリセット(推奨)
自分の役割に合ったプリセットを選択してください。
| プリセット | モジュール | ツール | 設定 |
|---|---|---|---|
| データエンジニア | unity_catalog, sql, compute, jobs, pipelines, files, quality_monitors | ~100 | DATABRICKS_MCP_TOOLS_INCLUDE=unity_catalog,sql,compute,jobs,pipelines,files,quality_monitors |
| ML エンジニア | serving, vector_search, experiments, compute, unity_catalog, online_tables, files | ~98 | DATABRICKS_MCP_TOOLS_INCLUDE=serving,vector_search,experiments,compute,unity_catalog,online_tables,files |
| プラットフォーム管理者 | iam, secrets, tokens, metastores, compute, global_init_scripts, grants, storage | ~85 | DATABRICKS_MCP_TOOLS_INCLUDE=iam,secrets,tokens,metastores,compute,global_init_scripts,grants,storage |
| アプリ開発者 | apps, database, sql, files, serving, secrets | ~64 | DATABRICKS_MCP_TOOLS_INCLUDE=apps,database,sql,files,serving,secrets |
| データアナリスト | sql, unity_catalog, dashboards, genie, workspace | ~61 | DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog,dashboards,genie,workspace |
| 最小構成 | sql, unity_catalog | ~37 | DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog |
Claude Code でプリセットを使用する例:
{
"mcpServers": {
"databricks": {
"command": "databricks-mcp",
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapi...",
"DATABRICKS_MCP_TOOLS_INCLUDE": "unity_catalog,sql,compute,jobs,pipelines,files,quality_monitors"
}
}
}
}
カスタムフィルタリング
# Only include specific modules
export DATABRICKS_MCP_TOOLS_INCLUDE=unity_catalog,sql,serving
# Exclude specific modules (cannot combine with INCLUDE)
export DATABRICKS_MCP_TOOLS_EXCLUDE=iam,sharing,experiments
INCLUDE が設定されている場合、そのモジュールのみが読み込まれます。EXCLUDE が設定されている場合、そのモジュール以外のすべてが読み込まれます。両方が設定されている場合は、INCLUDE が優先されます。
ツールの検出(AI エージェント向け)
サーバーには、AI エージェントが適切なツールを見つけやすくする組み込みのツール検出機能があります。
MCP リソース
| URI | 説明 |
|---|---|
databricks://workspace/info | ワークスペース URL、現在のユーザー、認証タイプ |
databricks://tools/guide | モジュールの説明、使用例、ロール別プリセットを含むツールカタログ |
エージェントは接続時に databricks://tools/guide を読み取り、利用可能な機能を確認できます。
検索ツール
databricks_tool_guide ツールを使うと、エージェントは会話中に適切なツールを見つけられます。
# Find tools for a specific task
databricks_tool_guide(task="run a SQL query")
databricks_tool_guide(task="deploy an ML model")
databricks_tool_guide(task="create a user")
# Get role-based recommendations
databricks_tool_guide(role="data_engineer")
databricks_tool_guide(role="ml_engineer")
説明と使用上のヒントとともに該当するモジュールが返されるため、エージェントは呼び出すべき databricks_* ツールを正確に把握できます。
MCP プロンプト(ガイド付きワークフロー)
サーバーには、AI エージェントを複数ステップの Databricks ワークフローに沿ってガイドする、8 つのプロンプトテンプレートが含まれています。
| プロンプト | 説明 |
|---|---|
explore_data_catalog | Unity Catalog の構造(カタログ → スキーマ → テーブル)を確認する |
query_data | ウェアハウスを見つけ、SQL を実行して、結果を整形する |
debug_failing_job | 失敗したジョブを調査する:ステータス、ログ、エラー分析 |
setup_ml_experiment | MLflow の実験を作成し、トラッキングを設定する |
deploy_model | モデルをサービングエンドポイントにデプロイする |
setup_data_pipeline | スケジュールを設定して DLT パイプラインを作成する |
workspace_health_check | クラスター、ウェアハウス、ジョブ、エンドポイントを監査する |
manage_permissions | ワークスペースオブジェクトの権限を確認・更新する |
プロンプトに対応する MCP クライアント(例:Claude Desktop のプロンプト選択機能)では、プロンプトが自動的に表示されます。
Docker
コンテナー内で MCP サーバーを実行します。
# Build
docker build -t databricks-mcp .
# Run with stdio
docker run -i \
-e DATABRICKS_HOST=https://your-workspace.databricks.com \
-e DATABRICKS_TOKEN=dapi... \
databricks-mcp
# Run with SSE transport
docker run -p 8080:8080 \
-e DATABRICKS_HOST=https://your-workspace.databricks.com \
-e DATABRICKS_TOKEN=dapi... \
databricks-mcp --transport sse --port 8080
# Run with selective modules
docker run -i \
-e DATABRICKS_HOST=https://your-workspace.databricks.com \
-e DATABRICKS_TOKEN=dapi... \
-e DATABRICKS_MCP_TOOLS_INCLUDE=sql,unity_catalog \
databricks-mcp
SSE トランスポート(リモートサーバー)
サーバーはリモート接続向けに SSE トランスポートをサポートしています。
# Start as SSE server
databricks-mcp --transport sse --port 8080
# Custom host/port
databricks-mcp --transport sse --host 127.0.0.1 --port 3000
SSE をサポートする任意の MCP クライアントから接続します。
{
"mcpServers": {
"databricks": {
"url": "http://localhost:8080/sse"
}
}
}
開発
# Install with dev dependencies
pip install -e ".[dev]"
# Lint
ruff check databricks_mcp/
# Test
pytest tests/ -v
作成者
Pramod Bhat
ライセンス
Apache 2.0 -- LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。