Claude Media
Databricks MCPサーバーでClaudeからSQLとUnity Catalogを操作する

Databricks MCPサーバーでClaudeからSQLとUnity Catalogを操作する

DatabricksはManaged MCPを公式提供していますが、PAT1つで動く軽量なコミュニティ実装も選択肢です。2つの違いとSQL・Unity Catalogでの使い方をまとめます。

Databricksは「Managed MCP servers」という公式のMCP機能をワークスペースに用意しています。Genie・AI Search・Databricks SQL・Unity Catalog関数への統制されたアクセスを、サーバーを自分で構築せずに使える仕組みです。ただしUnity Gatewayでの権限設定が前提になるため、個人のPersonal Access Token(PAT)だけですぐ試したい開発者にはJordiNeil/mcp-databricks-serverRafaelCartenet/mcp-databricks-serverのようなコミュニティ製MCPサーバーの方が手早く始められます。本記事はこの2つの選択肢の違いと、Claude Codeへの追加手順を扱います。

Databricks公式のManaged MCPサーバーでできること

Databricksが提供するManaged MCPサーバーは、Genie(自然言語からのデータ分析)・AI Search・Databricks SQL・Unity Catalog関数という4系統への「governed access」を、構築もホスティングも不要で提供します。アクセス制御はUnity Gatewayが単一の管理プレーンとして担い、Unity Catalogが権限とクレデンシャルを一元管理します。有効化状況はワークスペースの「AI Gateway」→「MCPs」タブから確認できます。

この仕組みは、すでにUnity Catalogでデータガバナンスを運用しているチームには自然な入口です。一方で、権限設定やAI Gatewayの有効化といった管理者作業が前提になるため、「まずPATでSQLを1本投げてみたい」という個人開発の段階では遠回りになりがちです。ここから先で扱うコミュニティ製MCPサーバーは、この隙間を埋める選択肢です。

コミュニティ製Databricks MCPサーバー2つの違い

同じ「Databricks MCPサーバー」でも、JordiNeil版とRafaelCartenet版では設計思想が異なります。どちらも個人開発者によるOSSで、GitHubスター数はJordiNeil版が50、RafaelCartenet版が43と、規模としては近い水準にあります。星の数だけでどちらを選ぶかは決められないため、以下の設計思想の違いを見て自分のユースケースに合う方を選んでください。

項目JordiNeil/mcp-databricks-serverRafaelCartenet/mcp-databricks-server
主目的JordiNeil/mcp-databricks-serverSQL実行とジョブ状態確認RafaelCartenet/mcp-databricks-serverUnity Catalogメタデータ探索とデータリネージ
主なツール数JordiNeil/mcp-databricks-server4種(run_sql_query等)RafaelCartenet/mcp-databricks-server5種(UC探索4種+SQL実行1種)
前提知識JordiNeil/mcp-databricks-serverSQL WarehouseのエンドポイントのみRafaelCartenet/mcp-databricks-serverUnity Catalogのカタログ・スキーマ構成
認証JordiNeil/mcp-databricks-serverPAT + HTTP PathRafaelCartenet/mcp-databricks-serverPAT + SQL Warehouse ID
セットアップの軽さJordiNeil/mcp-databricks-server素のPythonスクリプト、依存少なめRafaelCartenet/mcp-databricks-serverdatabricks-sdk前提でやや重め

JordiNeil版はSQLクエリの実行とジョブの一覧・状態確認に絞ったシンプルな実装です。RafaelCartenet版はUnity Catalogのカタログ・スキーマ・テーブルを探索し、テーブルのアップストリーム/ダウンストリームの依存関係やそれを生成しているノートブック・ジョブまで辿れる、データリネージ寄りの実装です。「とにかくSQLを投げたい」なら前者、「テーブルの出自から追いたい」なら後者が向きます。

Claude Codeに追加する手順

どちらもPython実装で、stdioトランスポートのローカルプロセスとして動きます。まず.envファイルに接続情報を用意します。

DATABRICKS_HOST="your-instance.cloud.databricks.com"
DATABRICKS_TOKEN="your-personal-access-token"
DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/your-warehouse-id"

JordiNeil版はリポジトリをクローンして依存関係をインストールするだけで動きます。

git clone https://github.com/JordiNeil/mcp-databricks-server.git
cd mcp-databricks-server
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python test_connection.py

接続確認が済んだら、Claude Desktopのclaude_desktop_config.jsonに追加します。

{
  "mcpServers": {
    "databricks": {
      "command": "python",
      "args": ["/path/to/mcp-databricks-server/main.py"]
    }
  }
}

RafaelCartenet版はuvを使ったセットアップが推奨されています。.envのキー名が異なり、SQL Warehouse IDをDATABRICKS_SQL_WAREHOUSE_IDとして渡します。

git clone https://github.com/RafaelCartenet/mcp-databricks-server.git
cd mcp-databricks-server
uv pip install -r requirements.txt

Claude Codeで使う場合は、環境変数をenvブロックに書いたJSON設定を.mcp.jsonに追加するか、claude mcp add-jsonで1コマンド追加します。MCPサーバー追加コマンドのスコープの使い分けはClaude Code MCP設定ガイドにまとめています。

ジョブの状態を自然言語で確認する

JordiNeil版のlist_jobsget_job_statusget_job_detailsは、Databricks Jobsの実行状況をそのまま自然言語のやり取りに変換します。よく使う指示はシンプルです。

  • 「今動いているDatabricksジョブを一覧して」→ list_jobs()でワークスペース内のジョブ一覧を取得
  • 「ジョブID123の状態を教えて」→ get_job_status(job_id=123)で実行状態を確認
  • 「ジョブID456が失敗した原因を詳しく教えて」→ get_job_details(job_id=456)でタスクごとの詳細を取得

Databricksの管理画面を開かずに、Claude Codeとのやり取りだけでジョブの死活監視ができる点が実用上のメリットです。障害調査の一次切り分けとして、SQL Warehouseを直接開く前にまずここで状況を掴む使い方が向いています。

Unity Catalogのリネージ探索でできること

RafaelCartenet版が持つdescribe_uc_tableは、include_lineage=Trueを渡すと単なるカラム一覧を超えた情報を返します。そのテーブルの上流テーブル・下流テーブルに加えて、そのテーブルを読み書きしているノートブックやジョブの情報まで辿れます。ノートブックのパスが分かれば、Claude Codeはリポジトリ内のノートブックファイルを直接読みに行き、実際の変換ロジックやビジネスルールを解析できます。

典型的な調査フローは次のようになります。

  1. list_uc_catalogs()で利用可能なカタログを確認
  2. describe_uc_catalog(catalog_name="prod")で対象カタログのスキーマを確認
  3. describe_uc_schema(catalog_name="prod", schema_name="sales", include_columns=True)でテーブル構成を確認
  4. describe_uc_table(full_table_name="prod.sales.orders", include_lineage=True)で依存関係と処理コードの所在を特定
  5. execute_sql_query(sql="...")で実際にクエリを実行

Unity Catalogにカラムやテーブルの説明文をきちんと書き込んでいるチームほど、この探索フローの精度が上がります。メタデータが空欄のままだと、Claudeが的確なSQLを組み立てるための手がかりも減ります。

書き込みクエリも実行できる点に注意する

run_sql_query(JordiNeil版)・execute_sql_query(RafaelCartenet版)はどちらも任意のSQL文字列をそのまま実行します。SELECTに限定する仕組みはMCPサーバー側には無いため、渡したPATにテーブルへの書き込み権限があれば、INSERT/UPDATE/DELETEも実行できてしまいます。

JordiNeil版のREADMEは「PATには必要最小限の権限スコープを与える」ことを明記しています。RafaelCartenet版のREADMEはさらに踏み込み、サービスプリンシパルの利用を推奨しています。個人検証用のワークスペースならまだしも、本番データを持つカタログに接続する場合は、閲覧専用のロールに紐付けたPATか、SELECT権限だけを持つサービスプリンシパルのトークンを発行してから接続してください。

databrickslabs/mcpとの違い

Databricksの社内組織「Databricks Labs」もdatabrickslabs/mcpというUnity Catalog向けMCPサーバーを公開しています。ただしこのプロジェクトはREADME内で「非推奨」と明記されており、Databricks自身が代わりにManaged MCPサーバーの利用を推奨しています。Databricks Labs配下のプロジェクトはDatabricksによる正式サポート・SLAの対象外という位置づけでもあります。GitHubスター数自体は97とJordiNeil版・RafaelCartenet版より多いものの、README内に非推奨表記が明記されている以上、スター数の多さを新規導入の理由にはできません。したがって現状の選択肢は、Managed MCP(公式・要Unity Gateway設定)か、JordiNeil/RafaelCartenetのような独立したコミュニティ実装(PATだけで動く)のいずれかになります。

よくあるつまずき

  • DATABRICKS_HOSThttps://を含めてしまい接続できない: 両READMEとも、ホスト名はプレフィックス無しの形式(your-instance.cloud.databricks.com)を要求しています
  • SQL Warehouseが停止していてタイムアウトする: サーバーレスでないSQL Warehouseは使っていない間に自動停止します。クエリ実行前にWarehouseが起動しているか確認してください
  • describe_uc_tableが空の結果を返す: USE CATALOGUSE SCHEMASELECTの権限が無いとメタデータすら取得できません。PATに紐づくユーザーまたはサービスプリンシパルの権限を先に確認します
  • 長時間クエリが途中で止まる: RafaelCartenet版のexecute_sql_querywait_timeoutが50秒に設定されています。集計に50秒以上かかるクエリは、範囲を絞るかWarehouseのサイズを上げてから実行してください

よくある質問

JordiNeil版・RafaelCartenet版はAnthropicやDatabricksの公式プロダクトですか

いいえ。どちらも個人開発者が公開しているOSSで、AnthropicはもちろんDatabricks公式とも無関係です。Databricks自身が提供するMCP機能は、前述のManaged MCP serversです。

PATではなくOAuthで接続できますか

両READMEともPersonal Access Tokenの利用を前提にしており、OAuthフローには対応していません。OAuthでの統制されたアクセスが必要なら、Managed MCP serversの利用を検討してください。

汎用クラスタでも動きますか、それともSQL Warehouse専用ですか

SQL Warehouse専用です。どちらの実装も接続先としてSQL Warehouseのエンドポイント(HTTP PathまたはWarehouse ID)を要求します。All-Purpose Clusterへの直接接続はサポートされていません。

まとめ

Databricksは公式のManaged MCPサーバーを持っていますが、Unity Gatewayでの権限設定が前提になります。PATだけですぐ試したい個人開発者には、SQL実行に絞ったJordiNeil版か、Unity Catalogのリネージ探索まで扱えるRafaelCartenet版が現実的な選択肢です。どちらも任意のSQLを実行できてしまうため、接続前にPATの権限スコープを絞ることを忘れないでください。他のデータ基盤との接続はClaude Snowflake連携ガイドClaude BigQuery連携も参考になります。

この記事を共有:XはてブLinkedIn