はじめに
Azure Databricks では、Model Context Protocol(MCP)を利用して、AI エージェントや MCP クライアントから Databricks のデータや各種機能へアクセスできます。
Databricks には、Databricks SQL や Genie などを利用するためのマネージド MCP サーバーが用意されており、MCP Inspector などの MCP クライアントから接続して動作を確認することができます。
また、Unity AI Gateway の MCP サービスとして公開することで、Unity Catalog によるアクセス制御や、公開する Tools の制限など、よりガバナンスを意識した構成にすることもできます。
本記事では、MCP Inspector を利用して Databricks SQL MCP の動作を確認しながら、以下のパターンを順番に検証します。
- Databricks SQL MCP サーバーへ直接接続する
- Unity AI Gateway の
system.ai.dbsqlMCP サービス経由で接続する - Databricks SQL MCP サーバーを外部 MCP サーバーとして登録し、公開する Tools を制限する
- 別テナントの Databricks SQL MCP サーバーを OAuth M2M で接続し、本テナントの MCP サービスとして利用する
本記事は 2026 年 9 月時点の Azure Databricks の仕様・画面をもとに検証しています。MCP 関連機能は Public Preview を含むため、今後 UI や仕様が変更される可能性があります。
MCP Inspector のインストール
以下の manabian 氏の記事をご参照ください。
OAuth Application の作成
アカウント コンソールから OAuth Application を作成します。
本検証では、以下のような設定値にしました。
- アプリケーション名:
app-mcp-inspector - リダイレクトURL:
http://localhost:<port>/oauth/callback,http://localhost:<port>/oauth/callback/debug - アクセススコープ:
all-apis(※今回は検証を簡略化するためall-apisを使用しています。本番環境では最小権限の原則に従い、利用する MCP サーバーに必要なスコープへ制限することを推奨します。)
詳細は以下のドキュメントをご参照ください。
生成されるシークレットを控えておきます。
Databricks SQL MCP サーバーを呼び出す
MCP Inspector を立ち上げ、+ Add Servers を選択します。
以下のようにサーバーを設定します。
- Server ID:
dbx_sql_<workspace-id> - Transport:
streamable-http - URL:
https://<workspace-hostname>/api/2.0/mcp/sql
追加されたサーバーの settings を選択します。
Request Metadata に _meta.warehouse_id を指定することで、クエリを実行する SQL ウェアハウスを明示的に指定できます。指定しない場合は、利用可能なリソースと権限をもとに SQL ウェアハウスが自動選択されます。
OAuth Settings で OAuth Application のクライアント ID とシークレットを入力します。
設定が完了後、接続をすると許可を求められます。接続したユーザーの資格情報でアクセスできるようになります。
クエリできるか確認するため、Tools を選択します。
Tool の一覧が確認でき、クエリの実行を確認することができます。
query に以下を入力して Execute Tool を実行すると結果が返ってきます。
SELECT current_catalog() AS `現在のカタログ`, current_schema() AS `現在のスキーマ`, current_timestamp() AS `現在の時刻`
Databricks 側で、指定した SQL ウェアハウスが使われていることを確認できました。
Unity AI ゲートウェイ経由での呼び出し
ここまでの手順では、以下のエンドポイントを指定し、Databricks SQL のマネージド MCP サーバーへ直接接続していました。
https://<workspace-hostname>/api/2.0/mcp/sql
一方、Databricks では、Unity AI Gateway の MCP サービス経由で MCP を利用することもできます。
Databricks SQL の場合は、Databricks が提供する組み込み MCP サービスを利用できます。
-- 組み込みの MCP サービス
https://<workspace-hostname>/ai-gateway/mcp-services/<catalog>.<schema>.<mcp-service>
-- 例:Databricks SQL MCP サービス
https://<workspace-hostname>/ai-gateway/mcp-services/system.ai.dbsql
Databricks の公式ドキュメントでは、MCP Service の権限管理、ポリシー、監査ログ、利用状況の追跡など、追加のガバナンス機能を利用できることから、MCP サービスの利用が推奨されています。
検証のため、MCP Inspector で新しくサーバーを追加します。
- Server ID:
unity_ai_gateway_sql_<workspace-id> - Transport:
streamable-http - URL:
https://<workspace-hostname>/ai-gateway/mcp-services/system.ai.dbsql
OAuth を先ほどと同様に設定すると正常に接続できます。
マネージド MCP サーバーへ直接接続した場合と system.ai.dbsql MCP サービス経由の場合で、MCP Inspector に表示される Tools の構成に差異が確認できました。
結果の出力のされ方も少し違いがありました。
公開する Tools を制限した MCP サービスを作成する
外部 MCP サーバーを Unity Catalog の MCP サービスとして登録する際、クライアントへ公開する Tools を選択できます。これにより、外部 MCP サーバーが提供するすべての Tools を公開するのではなく、必要な Tools のみに絞って利用させることができます。
これを利用して、Databricks マネージド MCP サーバー(Databricks SQL MCP サーバー)をツールを制限して MCP サービスに登録することができるか検証しました。
HTTP 接続の作成
まずは、HTTP 接続を作成します。
認証タイプは OAuth ユーザーからマシンへの接続 (ユーザーごと)、OAuth プロバイダーは 手動設定 を選択しました。
認証は以下のように設定します。
- ホスト:
https://<workspace-hostname> - クライアント Id, シークレット:OAuth アプリケーションの クライアント ID, シークレット
- Authorization endpoint:
https://<workspace-hostname>/oidc/v1/authorize - OAuthスコープ:
sql
Token endpoint は https://<workspace-hostname>/oidc/v1/token、Base path は /api/2.0/mcp/sql を入力します。
続いて、OAuth Application のリダイレクト URL に https://<workspace-hostname>/login/oauth/http.html を追加します(これを追加しないと、次のログインでエラーになります)。
HTTP 接続に戻り、ログインします。
MCP サービスの作成
次に、MCP サービスを作成します。
[カタログ] に移動してスキーマを選択し、[作成 > MCP サービス] をクリックします。
名前は dbx_sql_read_only とし、接続は先ほど作成したものを選択します。
また、ツールは execute_sql 非選択とします。
作成すると、以下のように AI ゲートウェイに登録されます。
MCP Inspector から呼び出す
上述の手順と同様にサーバーを追加します。
URL は https://<workspace-url>/ai-gateway/mcp-services/<main>.<default>.<my_mcp> の形式です。
接続が成功すると、以下のように read_only のみのツールが表示されます。
別テナントの MCP サーバーを MCP サービスとして利用する
別テナントにある Databricks のマネージド MCP サーバー(Databricks SQL MCP サーバー)を MCP サービスとして登録して呼び出してみました。
この構成では認証が2段階になります。MCP Inspector から本テナントの MCP サービスへのアクセスには OAuth U2M を利用し、本テナントの MCP サービスから別テナントの Databricks SQL MCP サーバーへのアクセスには、HTTP 接続に設定したサービスプリンシパルによる OAuth M2M を利用します。
MCP Inspector
│
│ OAuth U2M
▼
本テナント
Unity AI Gateway / MCP Service
│
│ OAuth M2M
▼
別テナント
Databricks SQL MCP Server
│
▼
SQL Warehouse / Unity Catalog
サービスプリンシパルの準備
ここでは OAuth M2M 認証にするため、別テナントにてサービスプリンシパルを作成し、シークレットを作成します。
また、MCP 経由でアクセスさせたいオブジェクトの権限をサービスプリンシパルに付与します。
今回はスキーマに以下の権限を付与しました。
HTTP 接続の作成
本テナントにて HTTP 接続を作成します。
認証タイプを OAuth によるマシン間通信 を選択します。
続いて以下のように設定します。
- ホスト:別テナントの
https://<workspace-hostname> - クライアント Id, シークレット:別テナントのサービスプリンシパルの クライアント ID, シークレット
- OAuthスコープ:
sql
Token endpoint は https://<workspace-hostname>/oidc/v1/token(<workspace-hostname> は別テナント)、Base path は /api/2.0/mcp/sql を入力します。
MCP サービスの作成
次に MCP サービスを作成します。
手順は上述と同様です。
MCP Inspector から呼び出す
上述の手順と同様にサーバーを追加します。
この時 OAuth Settings の Client ID および Client Secret の値は、本テナントで作成した OAuth Application の値を入力します(別テナントのサービスプリンシパルではない)。
また、SQL ウェアハウスを指定する場合は、別テナントの SQL ウェアハウス ID を指定します。
クエリの実行結果は以下の通りです。






































