外部 MCP サーバーを使用する
プレビュー
この機能は パブリック プレビュー段階です。
外部ツールやサービスにアクセスするには、Databricks が管理するプロキシを介してエージェントをサードパーティのモデル コンテキスト プロトコル (MCP) サーバーに接続します。
Databricks は、外部 MCP サーバーに対して共有プリンシパル認証とユーザーごとの認証の両方をサポートしています。サポートされている認証方法を参照してください。
必要条件
- マネージド MCP サーバー のプレビューが有効になっているワークスペース。Databricks プレビューの管理を参照してください。
- MCP 接続情報を保存するUnity Catalogメタストアに対する
CREATE CONNECTION権限が必要です。 - MCPサーバーは、ストリーミング可能なHTTPトランスポートメカニズムを使用する必要があります。
外部MCPサーバーをインストールする
エージェントで使用する外部 MCP サーバーをインストールするには、3 つのオプションがあります。すべてのメソッドは、MCP サーバーへの安全で認証されたアクセスを可能にするUnity Catalog接続を作成します。
外部 MCP サーバーでは、プライベート接続で接続するときに Databricks データ転送料金が発生する場合があります。「サーバレス コンピュート プレーン ネットワーキング」を参照してください。
MCP サーバーに応じてインストール方法を選択します。
- From Databricks Marketplace
- Custom HTTP connection
- Dynamic Client Registration (Experimental)
プレビュー
この機能は パブリック プレビュー段階です。
厳選された MCP サーバーを Databricks Marketplace から直接インストールします。
-
Databricks ワークスペースで、 [Marketplace] > [エージェント] > [MCP サーバー] タブに移動します。
-
インストールする MCP サーバーを見つけて、 [インストール] をクリックします。
-
インストール ダイアログで、接続を構成します。
- 接続名 : Unity Catalog接続の名前を入力します (例:
github_connection)。 - ホスト : キュレートされたサーバーのホスト ドメインは事前に入力されています。
- ベース パス : キュレートされたサーバーのベース パスは事前に入力されています。
- 接続名 : Unity Catalog接続の名前を入力します (例:
-
資格情報を構成する: 認証資格情報を入力します。必須フィールドは、サーバーの資格情報の種類によって異なります。
- ベアラー トークン 認証の場合は、ベアラー トークンを提供します。
- OAuth U2M 認証の場合は、クライアント ID とクライアント シークレットを入力します。
これらの資格情報を取得する手順については、MCP サーバー プロバイダーのドキュメントを参照してください。
-
「インストール」を クリックして接続を作成します。
Marketplace のインストールの詳細については、 「外部 MCP サーバーにアクセスする」を参照してください。
Unity Catalog HTTP 接続を作成して、 Marketplaceで利用できない自己ホスト型サーバーやサードパーティ サーバーを含む任意の MCP サーバーをインストールします。
-
HTTP 接続を作成します。HTTP 接続を参照してください。
-
HTTP 接続を作成するときに、MCP 機能を有効にするには、 Is mcp connection チェックボックスをオンにします。
-
接続 URL が有効な MCP サーバーエンドポイントを指していることを確認します。
プレビュー
この機能は パブリック プレビュー段階です。
Dynamic Client Registration (DCR) を使用して、 OAuth 2.0 DCR ( RFC7591 ) をサポートする MCP サーバーを自動的に登録し、インストールします。
DCR は、手動での資格情報の構成を必要とせずに、OAuth の検出、クライアントの登録、Unity Catalog 接続の作成を自動的に処理します。
DCR を使用するには、次の要件を満たす必要があります。
- MCP サーバーは DCR と OAuth 2.0 認証をサポートする必要があります。
- MCP サーバーは OAuth メタデータ エンドポイントを公開する必要があります。
-
最新バージョンを取得するには、
databricks-mcpパッケージをインストールまたはアップグレードしてください。Python%pip install -U databricks-mcp
%restart_python -
DCR 登録機能を使用してUnity Catalog接続を作成します。
Pythonfrom databricks.sdk import WorkspaceClient
from databricks_mcp import register_mcp_server_via_dcr
# Initialize workspace client
workspace_client = WorkspaceClient()
# Register MCP server via DCR
connection_url = register_mcp_server_via_dcr(
connection_name="my_mcp_server",
mcp_url="https://mcp.example.com/api",
workspace_client=workspace_client
)
print(f"Connection created: {connection_url}")
いずれかのインストール方法を完了した後:
-
Unity Catalog接続はMCPサーバーの詳細を使用して作成されます
-
Databricksは、認証とトークン管理を安全に処理するマネージドプロキシエンドポイントをプロビジョニングします。
-
MCPサーバーはAI Playgroundで利用可能であり、エージェントでプログラム的に使用できます。
-
Unity Catalog権限を通じて他のユーザーに接続へのアクセスを許可することができます
-
プロキシエンドポイント URL は次の形式に従います。
https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}
MCPサーバーを表示するには、ワークスペース > エージェント > MCPサーバー に移動します。

MCPサーバー接続を共有する
MCP サーバー接続を使用する必要がある ID プリンシパルにUSE CONNECTION権限を付与します。
- ワークスペースで、 「カタログ」 > 「接続」 > 「接続」 > 「権限」 に移動します。
- ID にUnity Catalog接続への適切なアクセス権を付与します。
AI PlaygroundでMCPサーバーをテストする
コードを書かずにAI Playgroundで MCP サーバーを直接テストします。
-
Databricks ワークスペースの AI Playground に移動します。
-
ツールが有効になっている ラベルが付いたモデルを選択します。
-
[ツール] > [+ ツールの追加] をクリックし、利用可能なツール オプションから [MCP サーバー] を選択します。
-
MCP サーバー セクションで、 外部 MCP サーバーを 選択して、利用可能な接続を参照します。
-
以前にインストールしたUnity Catalog接続 (例:
github_connection) を選択します。 -
LLM とチャットして、MCP サーバー ツールとどのように対話するかをテストします。AI Playground は、MCP サーバーから利用可能なツールを自動的に検出し、LLM で利用できるようにします。
これにより、完全なエージェントを構築したり、本番運用に展開したりする前に、MCP サーバー統合のプロトタイプを迅速に作成してテストすることができます。
MCP サーバーをプログラムで使用する
MCP サーバーをインストールしたら、プロキシ URL に接続してエージェント コード内でプログラム的に使用します。Databricks プロキシは、外部サーバーを管理対象 MCP サーバーのように動作させ、認証とトークン管理を処理します。
- Databricks MCP Client
- Standard MCP SDK
推奨される方法では、プロキシ エンドポイントをMANAGED_MCP_SERVER_URLSリストに追加して、外部 MCP サーバーを Databricks 管理対象サーバーとして扱います。
from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksMCPClient
# Initialize workspace client
workspace_client = WorkspaceClient()
host = workspace_client.config.host
# External MCP servers are proxied as managed servers, allowing you
# to use the same API for both managed and external servers
MANAGED_MCP_SERVER_URLS = [
f"{host}/api/2.0/mcp/functions/system/ai", # Default managed MCP
f"{host}/api/2.0/mcp/external/github_connection" # External MCP proxy
]
エージェントで MCP サーバーを使用するには、プロキシ URL をmanaged_server_urlsに渡します。
# Use with agents - external servers work just like managed ones
import asyncio
from your_agent_code import create_mcp_tools # Your agent's tool creation function
# Create tools from both managed and external (proxied) servers
mcp_tools = asyncio.run(
create_mcp_tools(
ws=workspace_client,
managed_server_urls=MANAGED_MCP_SERVER_URLS
)
)
Databricks MCP クライアントを使用してツールを直接呼び出すこともできます。
# Direct tool call using DatabricksMCPClient
mcp_client = DatabricksMCPClient(
server_url=f"{host}/api/2.0/mcp/external/github_connection",
workspace_client=workspace_client
)
# List available tools
tools = mcp_client.list_tools()
print(f"Available tools: {[tool.name for tool in tools]}")
# Call a tool
response = mcp_client.call_tool(
"list_commits",
{"owner": "mlflow", "repo": "mlflow", "sha": "master"}
)
print(response.content[0].text)
標準の MCP SDK と async/await を使用して MCP サーバーに接続します。
%pip install -U databricks-sdk databricks_mcp tabulate databricks_ai_bridge
%restart_python
import json
from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksOAuthClientProvider
from databricks.sdk.credentials_provider import ModelServingUserCredentials
from mcp.client.streamable_http import streamablehttp_client as connect
from mcp import ClientSession
from tabulate import tabulate
async def main():
app_url = "https://<workspace-hostname>/api/2.0/mcp/external/github_connection"
client = WorkspaceClient()
async with connect(app_url, auth=DatabricksOAuthClientProvider(client)) as (
read_stream,
write_stream,
_,
):
async with ClientSession(read_stream, write_stream) as session:
init = await session.initialize()
print(json.dumps(init.model_dump(), indent=2))
tools = await session.list_tools()
print(json.dumps(tools.model_dump(), indent=2))
arguments = {
"owner": "mlflow",
"repo": "mlflow",
"sha": "master"
}
response = await session.call_tool(name="list_commits", arguments=arguments)
data = json.loads(response.content[0].text)
rows = []
for commit in data:
author = commit.get("commit", {}).get("author", {}).get("name")
message = commit.get("commit", {}).get("message", "").split("\n")[0]
html_url = commit.get("html_url", "")
rows.append([author, message, html_url])
# Print as table
print(tabulate(rows, headers=["Author", "Message", "Commit URL"], tablefmt="github"))
await main()
サンプルノートブック: Databricks MCP サーバーを使用してエージェントを構築する
次のノートブックは、Databricks プロキシ エンドポイントを介してアクセスされる外部 MCP サーバーを含む、MCP ツールを呼び出す LangGraph および OpenAI エージェントを作成する方法を示しています。
LangGraph MCP ツール呼び出しエージェント
OpenAI MCP ツール呼び出しエージェント
認証とセキュリティ
Databricks は、管理された MCP プロキシと Unity Catalog HTTP 接続を使用して、外部 MCP サーバーへの認証を安全に処理します。次の認証方法がサポートされています。
サポートされている認証方法
Databricks は、外部 MCP サーバーに対して次の種類の認証をサポートしています。
-
共有プリンシパル認証 : すべてのユーザーは、外部サービスにアクセスするときに同じ資格情報を共有します。これには、ベアラー トークン、OAuth マシン間 (M2M)、および OAuth ユーザー間共有認証が含まれます。外部サービスがユーザー固有のアクセスを必要としない場合、または単一のサービス アカウントで十分な場合にこれを使用します。
-
ユーザーごとの認証 (OAuth U2M Per User) : 各ユーザーは独自の資格情報を使用して認証します。外部サービスは個々のユーザーに代わってリクエストを受信し、ユーザー固有のアクセス制御、監査、およびアカウンタビリティを実現します。ユーザーの GitHub リポジトリ、Slack メッセージ、カレンダーなどのユーザー固有のリソースにアクセスするときに使用します。
各認証方法の詳細な構成手順については、 「HTTP 接続」を参照してください。
セキュリティ上の利点
- セキュリティで保護されたトークン管理 : Databricks は、すべての OAuth フローとトークンの更新を自動的に処理します
- 資格情報は公開されません : トークンがエンドユーザーに公開されることはありません
- 認証の集中管理 : Unity Catalog接続を使用した一貫した認証パターン
制限
- Databricks は、ストリーミング可能な HTTP トランスポート メカニズムを使用する外部 MCP サーバーのみをサポートします。
次のステップ
- 外部サーバーと管理対象MCPサーバーを併用する
- Databricks MCP インフラストラクチャにアクセスするためにクライアントを MCP サーバーに接続します
- 組織のニーズに合わせたカスタム MCP サーバーを構築する
- 外部 MCP サーバーを使用するエージェントをデプロイする