外部 MCP サーバーを使用する
ベータ版
この機能は ベータ版です。
Databricks を外部のモデル コンテキスト プロトコル (MCP) サーバーに接続して、エージェントが Databricks の外部でホストされているより幅広いツールにアクセスできるようにします。外部 MCP サーバーは、Databricks の外部でホストされ、Databricks が管理するプロキシを介して接続するサードパーティの MCP サーバーです。
認証とセキュリティ
Databricks は、マネージド MCP プロキシと Unity Catalog HTTP 接続を使用して、ワークスペースへの認証を安全に処理します。
- セキュリティで保護されたトークン管理 : Databricks は、すべての OAuth フローとトークンの更新を自動的に処理します
- 資格情報は公開されません : トークンがエンドユーザーに公開されることはありません
- 認証の集中管理 : Unity Catalog接続を使用した一貫した認証パターン
必要条件
- マネージド MCP サーバー のプレビューが有効になっているワークスペース。Databricks プレビューの管理を参照してください。
- MCP 接続情報を保存するUnity Catalogメタストアに対する
CREATE CONNECTION権限が必要です。 - MCPサーバーは、ストリーミング可能なHTTPトランスポートメカニズムを使用する必要があります。
外部MCPサーバーをインストールする
エージェントで使用する外部 MCP サーバーをインストールするには、2 つのオプションがあります。どちらの方法でも、MCP サーバーへの安全で認証されたアクセスを可能にするUnity Catalog接続が作成されます。
MCP サーバーに応じてインストール方法を選択します。
- From Databricks Marketplace
- Custom HTTP connection
プレビュー
この機能は パブリック プレビュー段階です。
キュレートされ事前構成された MCP サーバーを Databricks Marketplace から直接インストールします。
-
Databricks ワークスペースで、 [Marketplace] > [エージェント] > [MCP サーバー] タブに移動します。
-
インストールする MCP サーバーを見つけて、 [インストール] をクリックします。
-
インストール ダイアログで、接続を構成します。
- 接続名 : Unity Catalog接続の名前を入力します (例:
github_connection)。 - ホスト : キュレートされたサーバーのホスト ドメインは事前に入力されています。
- ベース パス : キュレートされたサーバーのベース パスは事前に入力されています。
資格情報 : 認証資格情報を入力します。必須フィールドは、サーバーの資格情報の種類によって異なります。
- ベアラー トークン 認証の場合: ベアラー トークンを提供します。
- OAuth U2M 認証の場合: クライアント ID とクライアント シークレットを入力します。
これらの資格情報を取得する手順については、MCP サーバー プロバイダーのドキュメントを参照してください。
- 接続名 : Unity Catalog接続の名前を入力します (例:
-
「インストール」を クリックして接続を作成します。
Marketplace のインストールの詳細については、 「外部 MCP サーバーにアクセスする」を参照してください。
Unity Catalog HTTP 接続を作成して、 Marketplaceで利用できない自己ホスト型サーバーやサードパーティ サーバーを含む任意の MCP サーバーをインストールします。
-
HTTP 接続を作成します。HTTP 接続を参照してください。
-
HTTP 接続を作成するときに、MCP 機能を有効にするには、 Is mcp connection チェックボックスをオンにします。
-
接続 URL が有効な MCP サーバーエンドポイントを指していることを確認します。
いずれかのインストール方法を完了したら、次の操作を実行します。
-
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 ツール呼び出しエージェント
制限
-
Private Link を使用した VPC 内のリソースへのプライベート接続はサポートされていません。この機能が必要な場合は、サポート チームにお問い合わせください。
-
Databricks は、ストリーミング可能な HTTP トランスポート メカニズムを使用する外部 MCP サーバーのみをサポートします。
次のステップ
-
外部サーバーと管理対象MCPサーバーを併用する
-
Databricks MCP インフラストラクチャにアクセスするためにクライアントを MCP サーバーに接続します
-
組織のニーズに合わせたカスタム MCP サーバーを構築する
-
外部 MCP サーバーを使用するエージェントをデプロイする