外部MCPサーバーを登録する
このページでは、セルフホスト型またはサードパーティのMCPサーバーをUnity CatalogのMCPサービスとして登録し、AI Playground、コマンドライン、またはエージェントコードから呼び出す方法について説明します。サーバーをUnity Catalogのセキュリティ保護可能オブジェクトとして登録すると、Unity Gatewayが管理された資格情報ですべての呼び出しをプロキシできるようになるため、エージェントがサーバーのトークンを直接扱うことはありません。サービスが公開するツールを制限し、個々の呼び出しを管理するには、MCPサービスの管理を参照してください。
ホストするサーバーが不要な、すぐに使用可能なワークスペースまたはSaaSツールについては、代わりにDatabricks提供のMCPサービスを使用してください。
要件
-
Unity Catalog が有効になっているワークスペース。
-
インターネット経由またはプライベート接続経由で、ワークスペースの Serverless コンピュートプレーンから到達可能なMCPサーバー。ワークスペースが制限付きアクセスモードでServerless ネットワークポリシーを使用している場合、そのサーバーの完全修飾ドメイン名は、そのポリシーで許可された宛先である必要があります。「ネットワーク」を参照してください。
-
Model Serving がサポートされているリージョンのワークスペース。モデルサービング機能の利用可能性を参照してください。
外部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、そして、リクエストを発行するワークスペースへの割り当てが必要です。
MCPサービスを呼び出すには、 基盤となる接続に対する権限は不要 であり、MCPサービスに対するEXECUTEで十分です。エンドユーザーにUSE CONNECTIONを付与しないでください。そうすると、接続を介して外部サーバーを直接呼び出すか、独自のMCPサービスをそこに登録することが可能になり、MCPサービスのツール選択、サービスポリシー、および監査が回避されます。接続アクセスは、サービス作成者および管理者に限定してください。
ステップ 1: 接続を作成する
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サーバーへのアクセス」を参照してください。
ステップ 2: MCP サービスを作成する
UI から、または REST API、Databricks CLI、Databricks SDK、もしくは Terraform を使用して、MCP サービスを作成できます。MCP サービスに対する SQL DDL はサポートされていません。
- UI
- REST API
- CLI
- Terraform
- Python SDK
- Go SDK
- Java SDK
- JS SDK
- Databricksワークスペースで、 AI Gateway > MCP > MCPサーバーを登録するに移動するか、 カタログ に移動してスキーマを選択し、 作成 > MCPサービス をクリックします。
- カタログ、スキーマ、および MCP サービスの名前を入力してください。名前は作成後に変更することはできません。
- 既存のMCPサーバーへのHTTP接続を選択するか、 新しい接続を作成 をクリックして作成します。スキーマの下を参照してスキーマレベルの接続を選択します。メタストアレベルの接続を使用するには、 スキーマの下を参照 をオフにしてください。
- ツール の下で、利用可能にするツールを選択してください。公開されるツールを選択するを参照してください。
- オプションで、MCPサービスを説明するコメントを追加します。
- 作成 をクリックします。MCPサービスは、指定したカタログとスキーマに公開されます。
/api/2.1/unity-catalog/mcp-services に POST を送信します。parent および mcp_service_id をクエリーパラメーターとして渡します。config.source_connection.name は、MCPサーバーをホストするUnity CatalogのHTTP接続です。サービスが公開するツールを制限するには、include_tool_selectors 許可リストを追加します。すべてのツールを公開する場合は、省略してください。公開するツールの選択を参照してください。
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": {
"source_connection": {
"name": "connections/main.default.my_connection"
}
}
}'
既存の Unity Catalog HTTP 接続を参照する MCP サービスを作成します。親スキーマとリーフ名を渡し、--json を設定に指定します。サービスが公開するツールを制限するには、include_tool_selectors 許可リストを追加します。省略した場合はすべてのツールが公開されます。CLI をインストールするには、Databricks CLI のインストールまたは更新を参照してください。
databricks ai-gateway create-mcp-service schemas/main.default my_mcp --json '{
"comment": "External MCP server",
"config": {
"source_connection": {
"name": "connections/main.default.my_connection"
}
}
}'
Databricks Terraform プロバイダーと databricks_ai_gateway_mcp_service リソースを使用して、MCP サービスを作成および管理します:
resource "databricks_ai_gateway_mcp_service" "example" {
parent = "schemas/main.default"
mcp_service_id = "my_mcp"
comment = "External MCP server"
config = {
source_connection = {
name = "connections/main.default.my_connection"
}
}
}
Databricks SDK for Pythonを使用してMCPサービスを作成および管理します:
from databricks.sdk.service import catalog as c
mcp_service = w.ai_gateway.create_mcp_service(
parent="schemas/main.default",
mcp_service_id="my_mcp",
mcp_service=c.McpService(
comment="External MCP server",
config=c.McpServiceConfig(
source_connection=c.McpServiceConfigSourceConnection(
name="connections/main.default.my_connection"
),
),
),
)
Databricks SDK for Go を使用してMCPサービスを作成および管理します:
mcpService, err := w.AiGateway.CreateMcpService(ctx, catalog.CreateMcpServiceRequest{
Parent: "schemas/main.default",
McpServiceId: "my_mcp",
McpService: catalog.McpService{
Comment: "External MCP server",
Config: &catalog.McpServiceConfig{
SourceConnection: &catalog.McpServiceConfigSourceConnection{
Name: "connections/main.default.my_connection",
},
},
},
})
Databricks SDK for Javaを使用してMCPサービスを作成および管理します:
McpService mcpService =
w.aiGateway()
.createMcpService(
new CreateMcpServiceRequest()
.setParent("schemas/main.default")
.setMcpServiceId("my_mcp")
.setMcpService(
new McpService()
.setComment("External MCP server")
.setConfig(
new McpServiceConfig()
.setSourceConnection(
new McpServiceConfigSourceConnection()
.setName("connections/main.default.my_connection")))));
Databricks AI Gateway SDK for JavaScript を使用して MCP サービスを作成および管理します:
const created = await client.createMcpService({
parent: 'schemas/main.default',
mcpServiceId: 'my_mcp',
mcpService: {
comment: 'External MCP server',
config: {
source: {
$case: 'sourceConnection',
sourceConnection: { name: 'connections/main.default.my_connection' },
},
},
},
});
ステップ3. 認証
MCPサービスがユーザーごとのOAuthを使用する接続を参照する場合、最初の呼び出しの前に一度ログインを完了してください:
- Catalog Explorer で MCP サービスの詳細ページを開きます。
- 「 Login 」をクリックして、プロバイダーのOAuth同意フローを完了します。
- サインインすると、詳細ページに検出されたツールの一覧が自動的に表示されます。
Unity Catalogは、お客様のIDに対してトークンを保存します。ログインする前にMCPサービスを呼び出すと、AI Gatewayは認証を促すエラーを返します。
Consumer access を持つユーザーは、 ワークスペース access を必要とするユーザーごとのOAuthログインを使用できません。エンタイトルメントの管理を参照してください。
ステップ 4: MCP サービスへのアクセス権を付与する
defaultでは、MCPサービスの所有者のみがそれを呼び出すことができます。他のユーザーがMCPサービスを呼び出せるようにするには、そのサービスに対するEXECUTE、およびそのカタログとスキーマに対するUSE CATALOGとUSE SCHEMAを付与します。1つのEXECUTE権限付与で、そのサービスのすべてのツールが対象となります。
- UI
- REST API
- CLI
- Terraform
- Python SDK
- Go SDK
- Java SDK
- 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"] }
]
}'
Databricks CLI を使用して EXECUTE を付与します。CLI をインストールするには、「Databricks CLI のインストールまたは更新」を参照してください。
databricks grants update mcp_service main.default.my_mcp \
--json '{"changes": [{"principal": "data-team", "add": ["EXECUTE"]}]}'
Databricks Terraform プロバイダー と databricks_grant リソースを使用して EXECUTE を付与します:
resource "databricks_grant" "example" {
mcp_service = "main.default.my_mcp"
principal = "data-team"
privileges = ["EXECUTE"]
}
Databricks SDK for Python を使用して EXECUTE を付与します:
from databricks.sdk.service import catalog as c
w.grants.update(
securable_type="mcp_service",
full_name="main.default.my_mcp",
changes=[c.PermissionsChange(principal="data-team", add=[c.Privilege.EXECUTE])],
)
Databricks SDK for Go を使用して EXECUTE を付与します:
_, err := w.Grants.Update(ctx, catalog.UpdatePermissions{
SecurableType: "mcp_service",
FullName: "main.default.my_mcp",
Changes: []catalog.PermissionsChange{{
Principal: "data-team",
Add: []catalog.Privilege{catalog.PrivilegeExecute},
}},
})
Databricks SDK for Java を使用して EXECUTE を付与します:
w.grants().update(
new UpdatePermissions()
.setSecurableType("mcp_service")
.setFullName("main.default.my_mcp")
.setChanges(Arrays.asList(
new PermissionsChange().setPrincipal("data-team").setAdd(Arrays.asList(Privilege.EXECUTE)))));
ステップ5:MCPサービスを呼び出します。
AI Playgroundで、コマンドラインから、またはエージェントやクライアントコードからMCPサービスを試します。
Consumer access を持つユーザーは、共有されたMCPサービスを呼び出すことはできますが、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サービスを更新する
所有者であるか、MANAGE を持っている必要があります。
- UI
- REST API
- CLI
- Terraform
- Python SDK
- Go SDK
- Java SDK
- JS SDK
Unity Gateway UIまたはカタログエクスプローラーからMCPサービスの構成を編集します。変更はインプレースで適用されます。
databricks api patch \
"/api/2.1/unity-catalog/mcp-services/main.default.my_mcp?update_mask=comment" \
--json '{"comment": "Updated: governs an MCP server"}'
databricks ai-gateway update-mcp-service mcp-services/main.default.my_mcp comment \
--json '{"comment": "Updated: governs an MCP server"}'
databricks_ai_gateway_mcp_serviceリソース上のcomment(またはその他の変更可能なフィールド)を編集し、再適用します。変更はインプレースで適用されます。
from databricks.sdk.service import catalog as c
from google.protobuf.field_mask_pb2 import FieldMask
updated = w.ai_gateway.update_mcp_service(
name="mcp-services/main.default.my_mcp",
update_mask=FieldMask(paths=["comment"]),
mcp_service=c.McpService(comment="Updated: governs an MCP server"),
)
updated, err := w.AiGateway.UpdateMcpService(ctx, catalog.UpdateMcpServiceRequest{
Name: "mcp-services/main.default.my_mcp",
UpdateMask: *fieldmask.New([]string{"comment"}),
McpService: catalog.McpService{Comment: "Updated: governs an MCP server"},
})
McpService updated =
w.aiGateway()
.updateMcpService(
new UpdateMcpServiceRequest()
.setName("mcp-services/main.default.my_mcp")
.setUpdateMask(FieldMask.newBuilder().addPaths("comment").build())
.setMcpService(new McpService().setComment("Updated: governs an MCP server")));
import { mcpServiceFieldMask } from '@databricks/sdk-aigateway/v1';
const updated = await client.updateMcpService({
mcpService: {
name: 'mcp-services/main.default.my_mcp',
comment: 'Updated: governs an MCP server',
},
updateMask: mcpServiceFieldMask('comment'),
});
MCPサービスを削除する
所有者であるか、MANAGE を持っている必要があります。
- UI
- REST API
- CLI
- Terraform
- Python SDK
- Go SDK
- Java SDK
- JS SDK
Unity Gateway UI または Catalog Explorer で MCP サービスを開き、ケバブメニューから [ 削除 ] を選択します。
databricks api delete "/api/2.1/unity-catalog/mcp-services/main.default.my_mcp"
databricks ai-gateway delete-mcp-service mcp-services/main.default.my_mcp
terraform destroyを実行するか、リソースブロックを削除して再適用します。
w.ai_gateway.delete_mcp_service(name="mcp-services/main.default.my_mcp")
err := w.AiGateway.DeleteMcpService(ctx, catalog.DeleteMcpServiceRequest{
Name: "mcp-services/main.default.my_mcp",
})
w.aiGateway().deleteMcpService(new DeleteMcpServiceRequest().setName("mcp-services/main.default.my_mcp"));
await client.deleteMcpService({ name: 'mcp-services/main.default.my_mcp' });
次のステップ
- MCPサービスを統制し、サービスが公開するツールを制限し、サービスポリシーを適用します。
- MCPサービスとDatabricks提供サービスの概要については、「MCPサービスを使用してエージェントをツールに接続する」を参照してください。
- 統合トレーステーブルを使用したすべてのAIアクティビティの監視を行い、すべてのMCPアクティビティを一元的に監視、デバッグ、監査します。
- Unity GatewayによるAIガバナンス。MCPサーバーとLLMエンドポイントを一元管理します。