エージェントをMCPサービスでサードパーティ製ツールに接続する
ベータ版
この機能はベータ版です。アカウント管理者は、アカウント コンソールの [プレビュー] ページからこの機能へのアクセスを制御できます。 Databricksのプレビューを管理するを参照してください。
MCP サービスは、外部 MCP サーバーを登録する Unity Catalog のセキュリティ保護可能なオブジェクトであり、エージェントによる使用方法を管理します。3 階層名 catalog.schema.mcp_service で指定し、AI トラフィックを管理するコントロールプレーンである Unity AI Gateway を通じて呼び出します。
MCPサーバーをUnity Catalogのセキュリティ保護可能なオブジェクトとして登録すると、他のUnity Catalogアセットを保護するのと同じ基本的な機能で管理できるようになります。これらには、呼び出し元を制御する権限、公開するツールを制限するツール選択、個々のツール呼び出しを許可または拒否するサービスポリシー、およびすべての呼び出しを追跡するための監査と使用状況のログ記録が含まれます。
MCP サービスを使用するには、2つの方法があります:
アプローチ | 使用する場合 |
|---|---|
ゼロセットアップで、Slack、GitHub、Google Driveなどの一般的なSaaS(サービスとしてのソフトウェア)ツールをご利用いただけます。ホストするサーバーはなく、作成する接続もありません。 | |
Unity Catalogのセキュリティ保護可能オブジェクトとして管理するセルフホスト型またはサードパーティ製MCPサーバーがあります。 |
MCPサービスは、エージェントを外部サービスに接続します。DatabricksのデータについてはマネージドMCPサーバーを使用し、独自のツールをホストするにはカスタムMCPサーバーを使用してください。
エンドツーエンドで確認してください。
完全な例については、GitHub MCP サーバーを登録し、そのツールを制限し、サービス ポリシーで破壊的な呼び出しをブロックし、使用状況を監査する、チュートリアル: コーディング エージェントの GitHub MCP アクセスを管理するに従ってください。
仕組み
エージェントはUnity AI GatewayのURLでMCPサービスを呼び出し、すべての呼び出しは同じ管理されたパスを流れます。
- **呼び出し**:エージェントは、サービスのUnity AI Gateway URLにMCPリクエストを送信し、呼び出し元のDatabricks IDで認証されます。
- 承認とガバナンス : ゲートウェイは、呼び出し元が Unity Catalog の MCP サービスに対して
EXECUTEを持っていることを確認します。このサービスは、選択したツールのみを公開し、添付されたサービスポリシーを評価します。このサービスポリシーにより、呼び出しを許可、拒否、承認要求、または変換できます。 - 管理された認証情報によるプロキシ :リクエストは、サービスのHTTP接続を介して外部MCPサーバーに転送されます。Databricksは認証情報を保存し、OAuthフローとトークン更新を処理するため、エージェントがそれらを見ることはありません。
- 使用量、監査、およびトレースのログ記録 :すべての呼び出しはシステムテーブルに記録されるため、使用状況を監視し、時間の経過とともにアクティビティを監査できます。
要件
-
Unity Catalog が有効になっているワークスペース。
-
外部 MCP サーバーを MCP サービスとして管理するには、アカウントで Unity AI Gateway ベータ版および**マネージド MCP サーバー**プレビューが有効になっている必要があります。「Databricks プレビューの管理」を参照してください。
-
Model Serving がサポートされているリージョンのワークスペース。モデルサービング機能の利用可能性を参照してください。
Databricksが提供するMCPサービス
Databricksは、一般的なSaaSアプリケーション向けにsystem.aiスキーマですぐに使えるMCPサービスを提供しているため、エージェントは独自のMCPサーバーをホスティングまたは登録することなく、これらのツールにアクセスできます。それぞれが、Unity Catalog名でアドレス指定する組み込みのMCPサービスです。エージェントにアクセスを付与するには、サービスに対してEXECUTEを付与します(たとえば、system.ai.github)—接続設定は不要です。組み込みサービスには、プラットフォーム管理ツールと、書き込み操作をブロックするためのものなどの組み込みサービスポリシーが付属しています。それらは、カスタムツールの選択やポリシー関数ではなく、権限付与によって管理されます。
MCPサービス | 接続先 |
|---|---|
| Slack |
| GitHub |
| Jira と Confluence |
| Google Drive |
| Google カレンダー |
| Gmail |
| Microsoft SharePoint |
Googleドライブ、Gmail、Googleカレンダー、SharePointの場合、これらの組み込みサービスがOAuthを処理するため、アプリの登録は不要です。
外部MCPサーバーを登録する
独自の外部MCPサーバーをMCPサービスとして登録する5つのステップ:
- MCP サーバーへのUnity Catalog 接続を作成します。
- その接続からMCP サービスを作成します。
- 接続がユーザーごとのOAuthを使用する場合は、認証してください。
- チームメイトにアクセス権を付与します。
- サービスを呼び出し、その後、ツール選択とサービスポリシーを使用してそれを管理します。
外部のMCPサーバーは、ストリーミング可能なHTTPトランスポートメカニズムを使用する必要があります。これらの権限が必要です:
- **接続を作成する**には、接続を作成するスキーマで
CREATE CONNECTIONを実行します。 - MCPサービスを 作成 するには、親カタログとスキーマに対して
USE CATALOGとUSE SCHEMA、スキーマに対してCREATE SERVICE、およびMCPサービスが参照する接続に対してUSE CONNECTIONが必要です。 - MCPサービスを 呼び出す には、MCPサービスに対する
EXECUTE、その親カタログとスキーマに対するUSE CATALOGおよびUSE SCHEMA、そして、リクエストを発行するワークスペースへの割り当てが必要です。
EXECUTEMCPサービスを呼び出すには、基盤となる接続に対する**権限は不要**であり、MCPサービスに対する で十分です。エンドユーザーにUSE CONNECTIONを付与しないでください。そうすると、接続を介して外部サーバーを直接呼び出すか、独自のMCPサービスをそこに登録することが可能になり、MCPサービスのツール選択、サービスポリシー、および監査が回避されます。接続アクセスは、サービス作成者および管理者に限定してください。
接続を作成
MCPサービスは、外部サーバーのエンドポイントと資格情報を安全に保存するUnity Catalog HTTP接続を参照します。Databricks は、認証とトークンの更新を処理するためにその前にマネージドプロキシを動かしているので、エージェントまたはクライアントコードに資格情報を埋め込む必要はありません。
MCPサービスと並行して管理されるように、「**スキーマ**」レベルで接続を作成します。以下のステップで事前にセットアップすることも、またはMCPサービスを作成する 際に「**新しい接続を作成**」をクリックして作成することもできます。メタストアレベルの接続はサポートされていますが、推奨されません。
2つの方法から1つを選択してください:
- Create an HTTP connection
- Install from Marketplace
自己ホスト型またはサードパーティのサーバーを含む、任意のMCPサーバーについて:
- カタログ > 接続 > 接続の作成 に移動します。
- 接続タイプとして HTTP を選択してください。
- MCPサーバーURLを入力します。
- 認証タイプを選択してください:ベアラートークン、OAuth M2M、OAuth U2M、または動的クライアント登録。セットアップの詳細については、外部サービスへの接続を作成する を参照してください。
Glean、GitHub、Atlassian、SlackなどのマネージドOAuthプロバイダーの場合、Databricksが認証情報を管理するため、独自のOAuthアプリを登録する必要はありません。マネージドOAuthプロバイダーを参照してください。
Databricks Marketplace のキュレーションされた MCP サーバーを、事前構成済みの接続と併せてご利用ください。「外部MCPサーバーへのアクセス」を参照してください。
MCPサービスを作成する
MCPサービスは、UIまたはREST APIを使用して作成できます。ベータ版は、MCPサービスでSQL DDLをサポートしていません。
- UI
- REST API
- Databricksワークスペースで、**AI Gateway** > **MCP** > **MCPサーバーを登録する**に移動するか、**カタログ**に移動してスキーマを選択し、**作成** > **MCPサービス**をクリックします。
- カタログ、スキーマ、および MCP サービスの名前を入力してください。名前は作成後に変更することはできません。
- 既存のMCPサーバーへのHTTP接続を選択するか、**新しい接続を作成**をクリックして作成します。スキーマの下を参照してスキーマレベルの接続を選択します。メタストアレベルの接続を使用するには、**スキーマの下を参照** をオフにしてください。
- ツール の下で、利用可能にするツールを選択してください。公開されるツールを選択するを参照してください。
- オプションで、MCPサービスを説明するコメントを追加します。
- 作成 をクリックします。MCPサービスは、指定したカタログとスキーマに公開されます。
既存のUnity Catalog 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" }'
認証する
MCPサービスがユーザーごとのOAuthを使用する接続を参照する場合、最初の呼び出しの前に一度ログインを完了してください:
- Catalog Explorer で MCP サービスの詳細ページを開きます。
- 「 Login 」をクリックして、プロバイダーのOAuth同意フローを完了します。
- サインインすると、詳細ページに検出されたツールの一覧が自動的に表示されます。
Unity Catalogは、お客様のIDに対してトークンを保存します。ログインする前にMCPサービスを呼び出すと、AI Gatewayは認証を促すエラーを返します。
チームメイトへのアクセス権を付与する
デフォルトでは、MCPサービスオーナーのみがそれを呼び出すことができます。他のユーザー、グループ、またはサービスプリンシパルがそのサービスを呼び出せるように、EXECUTEを付与します。単一のEXECUTE付与により、そのサービスのすべてのツールがカバーされます。
- UI
- REST API
- Catalog Explorer で MCP サービスを開くか、または [AI Gateway] > [MCP] に移動してサービスを選択します。
- 権限 タブに移動します。
- 付与 をクリックします。
- アクセスを付与するユーザー、グループ、またはサービスプリンシパルを選択してください。
- EXECUTE 特権を選択してください。
- 付与 をクリックします。
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 Playground
- CURL
コードを記述せずにMCPサービスのツールをUIでテストする:
- DatabricksワークスペースのAI Playgroundに移動します。
- ツールが有効化された ラベルが付いたモデルを選択します。
- Tools > + Add tool をクリックし、 MCP Servers を選択します。
- **外部MCPサーバー**を選択し、MCPサービスを選択してください。
- モデルとチャットして、MCPサービスのツールがどのように呼び出されるかを確認します。
Genie Codeからもテストできます。詳細については、アシスタントにMCPサーバーを追加するを参照してください。
素早いコマンドラインチェックには、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":{'
エージェントコードまたはコーディングエージェントから使用
- エージェントコード (OpenAI Agents SDK、LangGraph、または Model Serving):エージェントでのMCPサーバーの使用を参照してください。
- AIアシスタントとコーディングエージェント (Claude、Claude Code、Cursor)については、MCPをAIアシスタントとコーディングエージェントに接続するを参照してください。
MCPサービスを管理する
どのツールが公開されるかを選択してください
デフォルトでは、MCPサービスはMCPサーバーが提供するすべてのツールを利用可能にします。一部のみを利用可能にするには、MCPサービスを作成する際にツールを選択するか、後で選択を更新してください。各セレクターはツール名と照合されます:*で終わるパターンはプレフィックス一致です(get_*はget_meとget_issueに一致します)、そして他の値はすべて完全一致です(search_repositoriesはそのツールのみに一致します)。
- UI
- REST API
作成フローで、 ツール の下:
- 各ツールを個別に選択するには、 手動で選択 を選択します。
- 上記で説明したプレフィックスおよび完全一致ルールを使用して選択パターンを入力するには、「詳細設定」を選択します。
- MCPサーバーが新しいツールを追加する際に、それらのツールを利用できるようにするには、 今後このサーバーに追加されるツールを自動的に含める をオンにします。
作成後にツール選択を変更するには、PATCHリクエストでinclude_tool_selectorsを設定します。サービスを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 CatalogにおけるAIガバナンスの一部です。
ポリシー関数を作成して MCP Service にアタッチする方法については、AI セキュリティ保護可能なオブジェクトのサービス ポリシーとサービス ポリシーを作成してアタッチするを参照してください。
レート制限を設定します
コストを管理し、外部サーバーを保護するために、エージェントが MCP サービスを呼び出す頻度を制限します。Unity AI Gateway を使用して AI サービスのレート制限を構成するを参照してください。
使用状況を監視する
Unity AI Gatewayは、すべてのMCPサービスに関するアクティビティをUnity Catalogシステムテーブルに記録します。
- 使用状況 :
system.ai_gateway.usageにおける呼び出し回数、エラー、レイテンシー(service_type = 'MCP_SERVICE'でフィルター)。Unity AI Gatewayサービスにおけるモデルの使用状況を参照してください。 - 監査 : コントロールプレーンの変更 (
createMcpService,updateMcpService,deleteMcpService) およびsystem.access.auditにおける各呼び出し (mcpCall)。監査ログシステムテーブルリファレンスを参照してください。 - トレース : ツール呼び出しのリクエスト、レスポンス、およびポリシー決定は、アカウントレベルで一度有効にされ、すべてのMCPサービスで共有されるトレースログによってキャプチャされます。
- ダッシュボード :外部MCPサーバーのトラフィックが、組み込みのUnity AI Gateway使用状況ダッシュボードに表示されます。組み込みの使用状況ダッシュボードを参照してください。
すべてのUnity Catalogシステムテーブルについては、システムテーブルのリファレンスを参照してください。AIトラフィックのガバナンスの概要については、Unity CatalogでのAIガバナンスを参照してください。
認証とセキュリティ
Databricks は、マネージド MCP プロキシと Unity Catalog HTTP 接続を使用して、外部 MCP サーバーへの認証を安全に処理します。
- 共有プリンシパル認証 : 外部サービスにアクセスする際、すべてのユーザーが同じ資格情報を共有します。これには、ベアラートークン、OAuthマシン間 (M2M)、およびOAuthユーザーマシン間共有認証が含まれます。これは、外部サービスがユーザー固有のアクセスを必要としない場合、または単一のサービスアカウントで十分な場合に使用します。
- ユーザーごとの認証 (OAuth U2M Per User) : 各ユーザーは独自の認証情報で認証します。外部サービスは個々のユーザーの代理でリクエストを受信し、ユーザー固有のアクセス制御、監査、および説明責任を可能にします。これは、ユーザーのGitHub リポジトリ、Slack メッセージ、カレンダーなど、ユーザー固有のリソースにアクセスする場合に使用します。
DatabricksがOAuthフローとトークン更新を処理するため、エンドユーザーはトークンを見る必要がありません。Unity AI Gatewayから、外部MCP接続とLLMエンドポイントを並行して表示および管理できます。各認証方法の詳細な構成手順については、HTTP接続を参照してください。
制限事項
ベータ版では、MCPサービスには以下の制限が適用されます:
- MCP サービス用の SQL DDL (例:
CREATE MCP SERVICE) は利用できません。UI または REST API を使用して MCP サービスを作成および管理します。 - 外部MCPサーバーのみを独自のMCPサービスとして登録できます。Genie、Apps、またはUnity CatalogエンティティソースをMCPサービスとして登録することは現在サポートされていません。Databricksは、一般的なSaaSアプリ向けに組み込みMCPサービスも提供しています。
- ツール選択では、プレフィックス (
get_*) と完全一致パターンをサポートしています。除外パターン(例:!delete_*)はサポートされていません。 - Unity Catalog のグローバル検索では、MCP サービスが表示されません。
外部MCPサーバー接続には、以下の制限事項もあります:
- 外部MCPサーバーは、Model Servingがサポートされているリージョンでのみ利用でき、AI Playground、Genie Code、およびGenieのチャットでの使用が含まれます。モデルサービング機能の利用可能性を参照してください。
- Private Service Connect を使用した、仮想プライベートクラウド(VPC)内のリソースへのプライベート接続はサポートされていません。この機能が必要な場合は、サポートチームにご連絡ください。
次のステップ
- エージェントコードからMCPサービスをプログラムで呼び出すには、エージェントでMCPサーバーを使用してください。
- MCP を AI アシスタントとコーディング エージェントに接続することで、コーディング エージェントと AI アシスタントを接続します。
- Unity AI Gatewayは、一元的な場所からMCPサービスとLLMエンドポイントを管理します。
- AIアセットとAIトラフィックのガバナンスの概要については、Unity CatalogでのAIガバナンスを参照してください。