MCP サービスを使用してエージェントをサード パーティ製ツールに接続する

Important

この機能は ベータ版です。 アカウント管理者は、アカウント コンソール の [プレビュー ] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。

MCP サービスは、外部 MCP サーバーを登録し、エージェントがそれをどのように使用するかを管理する Unity Catalog のセキュリティ保護可能なオブジェクトです。 その3階層名 catalog.schema.mcp_service で指定し、AIトラフィックを管理するためのコントロールプレーンである Unity AI Gateway を介して呼び出します。

MCP サーバーを Unity カタログセキュリティ保護可能として登録することは、他の Unity カタログ資産を保護するのと同じプリミティブで管理することを意味します。 これには、呼び出すことができるユーザーを制御するための許可、公開するツールを制限するツールの選択、個々のツール呼び出しを許可または拒否する サービス ポリシー 、すべての呼び出しを追跡するための監査と使用状況のログ記録が含まれます。

MCP サービスを使用するには、次の 2 つの方法があります。

Approach 次の場合に使用します。
Databricks 提供の MCP サービスを使用する 一般的なサービスとしてのソフトウェア (SaaS) ツール (Slack、GitHub、Google Drive など) をセットアップゼロにする必要があります。 ホストするサーバーがなく、作成する接続もありません。
独自の外部 MCP サーバーを登録する セキュリティ保護可能な Unity カタログとして管理するセルフホステッドまたはサード パーティの MCP サーバーがあります。

MCP サービスは、エージェントを外部サービスに接続します。 Azure Databricksデータの場合は、マネージド MCP サーバーを使用します。独自のツールをホストするには、カスタム MCP サーバーを使用します。

Tip

完全な作業例 (GitHub MCP サーバーの登録、そのツールの制限、サービス ポリシーによる破壊的な呼び出しのブロック、使用状況の監査) については、「チュートリアル: コーディング エージェントの GitHub MCP アクセスを管理する」に従います。

どのように機能するのか

エージェントは Unity AI ゲートウェイ URL によって MCP サービスを呼び出し、すべての呼び出しは同じ管理されたパスを通過します。

MCP サービス URL を使用して構成されたエージェントは、Unity AI Gateway を介してサービスを呼び出します。ゲートウェイは Unity カタログの MCP サービスに対する呼び出しを承認します。これにより、EXECUTE 許可、ツールの選択、サービス ポリシーが適用され、GitHubや Slack などの外部 MCP サーバーへのマネージド資格情報を使用して Unity カタログ HTTP 接続を介して要求がプロキシされます。使用状況、監査、およびトレース レコードは、システム テーブルに格納されます。

  1. 呼び出し: エージェントは、呼び出し元のAzure Databricks ID で認証された MCP 要求をサービスの Unity AI ゲートウェイ URL に送信します。
  2. 承認と管理: ゲートウェイは、呼び出し元が Unity カタログの MCP サービスに EXECUTE していることを確認します。 このサービスは 、選択した ツールのみを公開し、接続されている サービス ポリシーを評価します。これにより、呼び出しの許可、拒否、または承認が必要になります。
  3. マネージド資格情報を持つプロキシ: 要求は、サービスの HTTP 接続を介して外部 MCP サーバーに転送されます。 Azure Databricksは資格情報を格納し、OAuth フローとトークン更新を処理するため、エージェントは資格情報を表示しません。
  4. ログの使用状況、監査、トレース: すべての呼び出しはシステム テーブルに記録されるため、 使用状況 と監査アクティビティを時間の経過と同時に監視できます。

Requirements

  • Unity カタログで有効になっているワークスペース。
  • 外部 MCP サーバーを MCP サービスとして管理するには、Unity AI Gateway Beta と Managed MCP Servers プレビューがアカウントに対して有効になっています。 Manage Azure Databricks プレビューを参照してください。

Databricks が提供する MCP サービス

Azure Databricksは、一般的な SaaS アプリケーションのsystem.ai スキーマですぐに使用できる MCP サービスを提供するため、エージェントは独自の MCP サーバーをホストしたり登録したりすることなく、これらのツールにアクセスできます。 それぞれは、Unity カタログ名でアドレス指定する組み込みの MCP サービスです。 エージェントにアクセス権を付与するには、サービスの EXECUTE ( system.ai.githubなど) を付与します。接続のセットアップは必要ありません。 組み込みサービスには、プラットフォームで管理されるツールと、書き込み操作をブロックするツールなどの組み込みの サービス ポリシーが付属しています。 カスタム ツールの選択やポリシー機能ではなく、許可を使用して管理します。

MCP サービス 接続先
system.ai.slack Slack
system.ai.github GitHub
system.ai.atlassian Jira と Confluence
system.ai.google_drive Google ドライブ
system.ai.google_calendar Google カレンダー
system.ai.gmail Gmail
system.ai.sharepoint Microsoft SharePoint

Google ドライブ、Gmail、Google カレンダー、またはSharePointの場合、これらの組み込みサービスは OAuth を処理するため、アプリの登録は不要です。

外部 MCP サーバーを登録する

次の 5 つの手順で、独自の外部 MCP サーバーを MCP サービスとして登録します。

  1. MCP サーバーへの Unity カタログ接続を作成します。
  2. その接続から MCP サービスを作成します。
  3. 接続でユーザーごとの OAuth が使用されている場合は認証します。
  4. チームメイトにアクセス権を付与します。
  5. サービスを呼び出し、ツールの選択とサービス ポリシーを使用してサービスを 管理 します。

外部 MCP サーバーは 、Streamable HTTP トランスポート メカニズムを使用する必要があります。 次のアクセス許可が必要です。

  • 接続を作成するには、作成先のスキーマでCREATE CONNECTIONします。
  • MCP サービスを 作成 するには、親カタログとスキーマに対する USE CATALOG 権限と USE SCHEMA 権限、スキーマに対する CREATE SERVICE 権限、および MCP サービスが参照する接続に対する USE CONNECTION 権限が必要です。
  • MCP サービスを 呼び出す には、MCP サービスに対する EXECUTE、その親カタログとスキーマに対する USE CATALOGUSE SCHEMA、およびリクエストを発行するワークスペースへの割り当てが必要です。

Warning

MCP サービスを呼び出しても 、基になる接続に対する特権は必要ありません。MCP サービスEXECUTE で十分です。 エンド ユーザーに USE CONNECTION を許可しないでください。これにより、接続を介して外部サーバーを直接呼び出したり、独自の MCP サービスを登録したりして、ツールの選択、サービス ポリシー、および MCP サービスの監査をバイパスすることができます。 サービス作成者と管理者の接続アクセスを予約します。

接続を作成する

MCP サービスは、外部サーバーのエンドポイントと資格情報を安全に格納する Unity カタログ HTTP 接続を参照します。 Azure Databricksは、認証とトークンの更新を処理するために、その前でマネージド プロキシを実行するため、エージェントまたはクライアント コードに資格情報を埋め込むことはありません。

MCP サービスと共に管理されるように、 スキーマ レベルで接続を作成します。 以下の手順で事前に設定するか、[新しい接続の作成] をクリックして MCP サービスの作成時に作成できます。 メタストア レベルの接続はサポートされていますが、推奨されません。

次の 2 つの方法のいずれかを選択します。

HTTP 接続を作成する

セルフホステッド サーバーまたはサード パーティ 製サーバーを含む MCP サーバーの場合:

  1. Catalog>Connections>接続を作成に移動します。
  2. 接続の種類として [HTTP ] を選択します。
  3. MCP サーバーの URL を入力します。
  4. 認証の種類として、ベアラー トークン、OAuth M2M、OAuth U2M、動的クライアント登録のいずれかを選択します。 セットアップの詳細については、「 外部サービスへの接続を作成する」を参照してください。

マネージド OAuth プロバイダー (Glean、GitHub、Atlassian、Slack) の場合、Azure Databricksは資格情報を管理するため、独自の OAuth アプリを登録しません。 「マネージド OAuth プロバイダー」を参照してください。

Marketplace からインストールする

事前に構成された接続で、Azure Databricks Marketplace からキュレーションされた MCP サーバーを使用します。 外部 MCP サーバーへのアクセスを取得するを参照してください。

MCP サービスを作成する

UI または REST API を使用して、MCP サービスを作成できます。 ベータ版では、MCP サービスの SQL DDL はサポートされていません。

UI

  1. Azure Databricks ワークスペースで、AI Gateway>MCPs>MCP Server の登録に移動するか、[カタログ] に移動してスキーマを選択し、[作成>MCP サービス] をクリックします。
  2. カタログ、スキーマ、および MCP サービスの名前を入力します。 作成後に名前を変更することはできません。
  3. MCP サーバーへの既存の HTTP 接続を選択するか、[ 新しい接続の作成 ] をクリックして接続を作成します。 スキーマを参照してスキーマ レベルの接続を選択します。メタストア レベルの接続を使用するには、[ スキーマの下で参照] をオフにします。
  4. [ ツール] で、使用可能にするツールを選択します。 「 公開するツールを選択する」を参照してください。
  5. 必要に応じて、MCP サービスについて説明するコメントを追加します。
  6. Create をクリックしてください。 MCP サービスは、指定したカタログとスキーマに発行されます。

REST API

既存の Unity カタログ HTTP 接続を参照する MCP サービスを作成します。 parentをターゲット スキーマに設定し、サービス名にmcp_service_idします。

databricks api post \
  "/api/2.1/unity-catalog/mcp-services?parent=schemas/main.default&mcp_service_id=my_mcp" \
  --json '{
    "comment": "External MCP server",
    "config": {
      "connection": {
        "name": "connections/main.default.my_connection"
      },
      "include_tool_selectors": []
    }
  }'

include_tool_selectors は、サービスが公開するツールを制御します。 空のリストは、すべてのツールを公開します。 「 公開するツールを選択する」を参照してください。

既存の MCP サービスを、 PATCH 要求と、変更するフィールドに名前を付ける update_mask で更新します。

databricks api patch \
  "/api/2.1/unity-catalog/mcp-services/main.default.my_mcp?update_mask=comment" \
  --json '{ "comment": "Updated description" }'

Authenticate

MCP サービスがユーザーごとの OAuth を使用する接続を参照する場合は、最初の呼び出しの前に 1 回限りのログインを完了します。

  1. カタログ エクスプローラーで MCP サービスの詳細ページを開きます。
  2. [ ログイン ] をクリックし、プロバイダーの OAuth 同意フローを完了します。
  3. サインインすると、検出されたツールの一覧が詳細ページに自動的に表示されます。

Unity カタログは、ID に対してトークンを格納します。 ログインする前に MCP サービスを呼び出すと、AI Gateway から認証を求めるエラーが返されます。

チームメイトへのアクセス権を付与する

既定では、MCP サービス所有者のみが呼び出すことができます。 他のユーザー、グループ、またはサービス プリンシパルがサービスを呼び出せるように、EXECUTE を付与します。 1 つの EXECUTE 付与で、サービスのすべてのツールが対象となります。

UI

  1. カタログ エクスプローラーで MCP サービスを開くか、 AI ゲートウェイ>MCP に移動してサービスを選択します。
  2. [アクセス許可] タブに移動します。
  3. [許可] をクリックします。
  4. アクセス権を付与するユーザー、グループ、またはサービス プリンシパルを選択します。
  5. EXECUTE 特権を選択します。
  6. [許可] をクリックします。

REST API

databricks api patch \
  "/api/2.1/unity-catalog/permissions/mcp_service/main.default.my_mcp" \
  --json '{
    "changes": [
      { "principal": "data-team", "add": ["EXECUTE"] }
    ]
  }'

MCP サービスを呼び出す

AI Playground で、コマンド ラインから、またはエージェントまたはクライアント コードから MCP サービスを試してください。

MCP サービスをテストする

AI プレイグラウンド

コードを記述せずに、UI で MCP サービスのツールをテストします。

  1. Azure Databricks ワークスペースの AI Playground に移動します。
  2. ツールが有効なラベルを持つモデルを選択します。
  3. [ ツール > + ツールの追加 ] をクリックし、[ MCP サーバー] を選択します。
  4. 外部 MCP サーバーを選択し、MCP サービスを選択します。
  5. モデルとチャットして、MCP サービスのツールを呼び出す方法を確認します。

Genie Code からテストすることもできます。「MCP サーバーをアシスタントに追加する」を参照してください。

CURL

コマンド ライン チェックを簡単に行うには、MCP サービスの詳細ページで生成された要求を使用します。 [ 作業の開始] で、[ アクセス トークンの生成 ] をクリックして、要求の例にアクセス トークンをコピーします。 例では、トークンをベアラー トークンとして Authorization ヘッダーに渡します。

Databricks CLI をワークスペースに対して認証し、databricks auth token を使用して OAuth アクセス トークンを取得することもできます。

databricks auth login --host https://<workspace-url>

すべての要求は同じ MCP サービス エンドポイントに送信されます。要求本文の JSON-RPC method は操作を選択します。 サービスが公開するツールを一覧表示します。

TOKEN=$(databricks auth token | jq -r .access_token)

curl -s -X POST \
  "https://<workspace-url>/ai-gateway/mcp-services/main.default.my_mcp" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

ツールを呼び出す:

curl -s -X POST \
  "https://<workspace-url>/ai-gateway/mcp-services/main.default.my_mcp" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"<tool_name>","arguments":{}}}'

エージェントコードまたはコーディングエージェントで使用

MCP サービスの管理

公開するツールを選択する

既定では、MCP サービスは、MCP サーバーが提供するすべてのツールを使用できるようにします。 サブセットのみを使用できるようにするには、MCP サービスの作成時にツールを選択するか、後で選択内容を更新します。 各セレクターは、ツール名と照合されます。 * で終わるパターンはプレフィックスの一致 (get_*get_meget_issueに一致) であり、その他の値は完全に一致します (search_repositories はそのツールにのみ一致します)。

UI

作成フローの [ツール] で次の 手順を実行します

  • [ 手動で選択] を選択して、各ツールを個別に選択します。
  • 前に説明したプレフィックスと完全一致ルールを使用して、選択パターンを入力するには 、[詳細設定] を 選択します。
  • 今後、このサーバーに追加されたツールを自動的に含める機能をオンにして、新しいツールを MCP サーバーが追加する際に使用できるようにします。

REST API

作成後にツールの選択を変更するには、include_tool_selectors要求でPATCHを設定します。 サービスを get_* ツールのみに制限する:

databricks api patch \
  "/api/2.1/unity-catalog/mcp-services/main.default.my_mcp?update_mask=config.include_tool_selectors" \
  --json '{
    "config": {
      "include_tool_selectors": ["get_*"]
    }
  }'

include_tool_selectorsを空のリストに設定して、すべてのツールを使用できるようにリセットします。

選択しないツールは tools/listに表示されません。MCP サービスは、選択されていないツールの tools/call を拒否します。

{ "code": -32003, "message": "Tool not allowed by MCP service configuration." }

サービス ポリシーを適用する

サービス ポリシーは、実行前に各ツール呼び出しを評価し (ON CALL)、必要に応じてその結果 (ON RESULT) を評価します。 ポリシーでは、要求に対して人間による承認を許可、拒否、または要求できます。たとえば、破壊的操作をブロックしたり、PII を含む呼び出しをブロックしたりできます。使用可能なツールは変更されません。 サービス ポリシーは、 Unity カタログの AI ガバナンスの一部です。

ポリシー関数を記述して MCP サービスにアタッチするには、「 AI セキュリティ保護可能なリソースのサービス ポリシー 」および 「サービス ポリシーの作成とアタッチ」を参照してください。

レート制限を設定する

エージェントが MCP サービスを呼び出してコストを制御し、外部サーバーを保護する頻度を制限します。 Unity AI Gateway を使用して AI サービスのレート制限を構成するを参照してください。

使用状況の監視

Unity AI Gateway は、Unity カタログ システム テーブル内のすべての MCP サービスのアクティビティを記録します。

  • 使用法: system.ai_gateway.usage での呼び出し量、エラー、待機時間 (フィルター service_type = 'MCP_SERVICE')。 Unity AI Gateway サービスのモデルの使用状況に関する説明を参照してください。
  • 監査: コントロール プレーンの変更 (createMcpServiceupdateMcpServicedeleteMcpService) と、mcpCallでの各呼び出し (system.access.audit)。 「監査ログシステムテーブル参照を参照してください。」
  • トレース: ツール呼び出し要求、応答、およびポリシーの決定は、アカウント レベルで 1 回有効になり、すべての MCP サービス間で共有されるトレース ログによってキャプチャされます。
  • ダッシュボード: 外部の MCP サーバー トラフィックが、組み込みの Unity AI Gateway 使用状況ダッシュボードに表示されます。 組み込みの使用状況ダッシュボードを参照してください。

すべての Unity カタログ システム テーブルについては、「 システム テーブルリファレンス」を参照してください。 AI トラフィックの管理の概要については、 Unity カタログの AI ガバナンスに関するページを参照してください。

認証とセキュリティ

Azure Databricksでは、マネージド MCP プロキシと Unity カタログ HTTP 接続を使用して、外部 MCP サーバーへの認証を安全に処理します。

  • 共有プリンシパル認証: すべてのユーザーが、外部サービスにアクセスするときに同じ資格情報を共有します。 これには、ベアラー トークン、OAuth マシン間 (M2M)、OAuth ユーザーからマシンへの共有認証が含まれます。 これは、外部サービスがユーザー固有のアクセスを必要としない場合、または 1 つのサービス アカウントで十分な場合に使用します。
  • ユーザーごとの認証 (ユーザーごとの OAuth U2M):各ユーザーは、独自の資格情報を使用して認証します。 外部サービスは、個々のユーザーに代わって要求を受け取り、ユーザー固有のアクセス制御、監査、アカウンタビリティを有効にします。 ユーザーのGitHub リポジトリ、Slack メッセージ、予定表など、ユーザー固有のリソースにアクセスする場合に使用します。

Azure Databricksは OAuth フローとトークン更新を処理するため、エンド ユーザーにはトークンが表示されません。 Unity AI Gateway から LLM エンドポイントと共に外部 MCP 接続を表示および管理します。 各認証方法の詳細な構成手順については、 HTTP 接続を参照してください。

Limitations

ベータ期間中、MCP サービスには次の制限が適用されます。

  • MCP サービスの SQL DDL ( CREATE MCP SERVICEなど) は使用できません。 UI または REST API を使用して MCP サービスを作成および管理します。
  • 外部 MCP サーバーのみを独自の MCP サービスとして登録できます。 Genie、Apps、または Unity Catalog エンティティ ソースを MCP サービスとして登録することは現在サポートされていません。 Azure Databricksには、一般的な SaaS アプリ用の組み込みの MCP サービスも用意されています。
  • ツールの選択では、プレフィックス (get_*) と完全一致パターンがサポートされます。 除外パターン ( !delete_*など) はサポートされていません。
  • Unity カタロググローバル検索では、MCP サービスは表示されません。

外部 MCP サーバー接続にも、次の制限があります。

  • 外部 MCP サーバーは、AI Playground、Genie Code、Genie のチャットでの使用など、モデル サービスがサポートされているリージョンでのみ使用できます。 モデル提供機能の可用性を参照してください。

次のステップ