外部 MCP サーバーを使用する
ベータ版
この機能は ベータ版です。
Databricks を外部のモデル コンテキスト プロトコル (MCP) サーバーに接続して、エージェントが Databricks の外部でホストされている幅広いツールにアクセスできるようにします。
Databricks では、マネージド MCP プロキシと Unity Catalog HTTP 接続 を使用して、ワークスペースへの認証を安全に処理します。
必要条件
- 管理対象MCPサーバー のプレビューが有効になっているワークスペース。「 Databricks プレビューの管理」を参照してください。
- 外部 MCP サーバーに接続するには、Unity Catalog HTTP 接続を使用する必要があります。Unity Catalog 接続を作成するには、ワークスペースにアタッチされた Unity Catalog メタストアに対する CREATE CONNECTION 特権が必要です。詳細については、「 Unity Catalog HTTP 接続を作成する 」を参照してください。
Unity Catalog HTTP 接続を作成する
Unity Catalog 接続のドキュメントに従って、 HTTP 接続 を作成します。Unity Catalog 接続では、複数の認証メカニズムがサポートされています。ユースケースに適したメカニズムを選択します。
- ベアラー トークン : 単純なトークン ベースの認証用のベアラー トークンを取得します。
- OAuth 2.0 マシン間 : ユーザーの関与なしに 2 つのシステムまたはサービス間の認証を有効にするアプリを作成および構成します。これは、サービスまたはバックエンドが独自の ID のみを使用してサーバー間で安全に通信する必要がある場合に使用します。
- OAuth 2.0 ユーザーとマシンの共有 : ユーザー操作で認証を行い、共有ユーザー ID (1 人の管理者やサービスプリンシパルなど) でサービスまたはマシンを承認します。これは、1 人のユーザー アカウント (サービスプリンシパルや管理者など) を一度承認し、すべてのマシンまたはサービスのすべてのユーザーが使用できる場合に使用します。
- OAuth 2.0 ユーザーからマシンへのユーザーごとの 接続: 個々のユーザー操作で認証し、各ユーザーの ID とマシンまたはサービス間のアクセスを確立します。これは、各ユーザーが個人 ID で外部サービスにアクセスするために、ログインして独自の資格情報で認証する必要がある場合に使用します。注: 各ユーザーは、認証のために Databricks アカウントでログインする必要があります。
HTTP 接続を作成するときは、次のことを確認してください。
- MCP 機能を有効にするには、[ MCP 接続です] チェックボックスを選択します。
- 接続 URL が有効な MCP サーバーエンドポイントを指していることを確認します。
OAuthを使用すると、Databricks が自動的に処理します トークン交換 有効期限が切れると、ユーザーはトークンを手動で管理する必要はありません。
UC 接続が作成されると、Databricks によってプロキシ エンドポイントが自動的にプロビジョニングされます。このエンドポイントは、外部 MCP サーバーへのトラフィックを安全にプロキシし、トークンの挿入と更新を内部で管理します。
- トークンがエンドユーザーに公開されることはありません。
- Databricks は、OAuth フローやトークン更新など、すべてのトークン ライフサイクル操作を管理します。
これにより、ノートブック、エージェント、ワークフローから外部 MCP サービスへの安全で摩擦の少ないアクセスが保証されます。
プロキシエンドポイントの URL は、次の形式に従います。
https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}
AI Playground と接続する
コードを記述することなく、 AI Playground で外部 MCP サーバーを直接簡単にテストできます。
-
AI Playground を開く: Databricks ワークスペースの AI Playground に移動します。
-
ツール呼び出しモデルを選択する: [ツールが有効] ラベルが付いたモデルを選択します。
-
MCPツールの追加: [ツール] > [ツールの追加 ] をクリックし、使用可能なツール オプションから [MCP サーバー] を選択します。
-
外部 MCP サーバーの選択: [MCP サーバー] セクションで、[ 外部 MCP サーバー] を選択して、利用可能な外部接続を参照します。
-
接続を選択する: 外部 MCP サーバーに接続するには、前に作成した Unity Catalog HTTP 接続 (
github_u2m_connection
など) を選択して、外部 MCP サーバーに接続します。 -
対話形式でテストする: LLM とのチャットを開始して、LLM が外部 MCP サーバー ツールとどのように対話するかをテストします。AI Playground は、外部 MCP サーバーから利用可能なツールを自動的に検出し、LLM で使用できるようにします。
これにより、完全なエージェントを構築したり、本番運用にデプロイしたりする前に、外部の MCP サーバー統合のプロトタイプを迅速に作成してテストできます。
オープンソースのMCP SDKを使用する
接続のプロキシエンドポイントURLを使用すると、オープンソースのPython SDK for Model Context Protocolサーバーおよびクライアントを使用して、外部MCPサーバーに接続できます。これにより、Databricks エージェントは、外部 MCP サーバーによって公開されているツールを呼び出すことができます。
次の例は、 github_u2m_connection
という名前の Unity Catalog 接続を使用して GitHub MCP サーバーに接続し、使用可能なツールを一覧表示し、 list_commits
ツールを呼び出して最近のコミットを取得する方法を示しています。
%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_u2m_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 は、すべての OAuth フローとトークンの更新を自動的に処理します
- 資格情報が公開されていない : トークンがエンドユーザーに公開されることはありません
- 一元化された認証 : Unity Catalog 接続を使用して一貫した認証パターンを実現する
制限
- Private Link を使用した VPC 内のリソースへのプライベート接続 は、外部 MCP 接続ではサポートされていません。アクセスを許可するには、VPC セキュリティ構成で Databricks コントロール プレーンの IP アドレスを許可リストに登録する必要があります。
次のステップ
- 管理対象MCPサーバーを 外部サーバーと併用する
- Databricks MCP インフラストラクチャにアクセスするためにクライアントを MCP サーバーに接続します
- 組織のニーズに合わせたカスタム MCP サーバーを構築する
- 外部 MCP サーバーを使用するエージェントをデプロイする