Important
この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Azure Databricks プレビューの管理を参照してください。
Databricks を外部モデル コンテキスト プロトコル (MCP) サーバーに接続して、Databricks の外部でホストされている幅広いツールにエージェントがアクセスできるようにします。 外部 MCP サーバーは、Databricks で管理されるプロキシを介して接続する Databricks の外部でホストされているサードパーティの MCP サーバーです。
認証とセキュリティ
Databricks では、マネージド MCP プロキシと Unity カタログ HTTP 接続 を使用して、ワークスペースへの認証を安全に処理します。
- セキュリティで保護されたトークン管理: Databricks は、すべての OAuth フローとトークン更新を自動的に処理します
- 公開された資格情報なし: トークンがエンド ユーザーに公開されることはありません
- 一元化された認証: Unity カタログ接続を使用した一貫性のある認証パターン
Requirements
- Managed MCP Servers プレビューが有効になっているワークスペース。 Azure Databricks プレビューの管理を参照してください。
- MCP 接続情報を格納する Unity カタログ メタストアに対する
CREATE CONNECTION特権が必要です。 - MCP サーバーは、Streamable HTTP トランスポート メカニズムを使用する必要があります
外部 MCP サーバーをインストールする
エージェントで使用する外部 MCP サーバーをインストールするには、3 つのオプションがあります。 すべての方法で Unity カタログ接続が作成され、MCP サーバーへのセキュリティで保護された認証済みアクセスが可能になります。
MCP サーバーに基づいてインストール方法を選択します。
Databricks Marketplace から
Important
この機能は パブリック プレビュー段階です。 プレビューの登録は、[ プレビュー ] ページで確認できます。 Azure Databricks プレビューの管理を参照してください。
Azure Databricks Marketplace から、キュレーションされた事前構成済みの MCP サーバーを直接インストールします。
Azure Databricks ワークスペースで、 Marketplace>Agents>MCP サーバー タブに移動します。
インストールする MCP サーバーを見つけて、[ インストール] をクリックします。
インストール ダイアログで、接続を構成します。
-
接続名: Unity カタログ接続の名前を入力します (例:
github_connection)。 - ホスト: ホスト ドメインは、キュレーションされたサーバー用に事前に設定されます。
- ベース パス: ベース パスは、キュレーションされたサーバー用に事前に設定されます。
資格情報: 認証資格情報を入力します。 必須フィールドは、サーバーの資格情報の種類によって異なります。
- ベアラー トークン認証の場合: ベアラー トークンを指定します。
- OAuth U2M 認証の場合: クライアント ID とクライアント シークレットを指定します。
これらの資格情報を取得する手順については、MCP サーバー プロバイダーのドキュメントを参照してください。
-
接続名: Unity カタログ接続の名前を入力します (例:
[ インストール ] をクリックして接続を作成します。
Marketplace のインストールの詳細については、「 外部 MCP サーバーへのアクセスを取得する」を参照してください。
カスタム HTTP 接続
Unity カタログ HTTP 接続を作成して、Marketplace で使用できないセルフホステッド サーバーやサード パーティ製サーバーなど、MCP サーバーをインストールします。
HTTP 接続を作成します。 HTTP 接続を参照してください。
HTTP 接続を作成するときに、 MCP 接続のチェックボックスをオンにして MCP 機能を有効にします。
接続 URL が有効な MCP サーバー エンドポイントを指していることを確認します。
動的クライアント登録 (試験段階)
Important
この機能は パブリック プレビュー段階です。 プレビューの登録は、[ プレビュー ] ページで確認できます。 Azure Databricks プレビューの管理を参照してください。
動的クライアント登録 (DCR) を使用して、OAuth 2.0 DCR (RFC7591) をサポートする MCP サーバーを自動的に登録してインストールします。
DCR は、手動の資格情報構成を必要とせずに、OAuth 検出、クライアント登録、Unity カタログ接続の作成を自動的に処理します。
DCR を使用するには、次の要件を満たす必要があります。
- MCP サーバーは、DCR と OAuth 2.0 の承認をサポートする必要があります。
- MCP サーバーは、OAuth メタデータ エンドポイントを公開する必要があります。
databricks-mcpパッケージをインストールまたはアップグレードして、最新バージョンを入手します。%pip install -U databricks-mcp %restart_pythonDCR 登録関数を使用して、Unity カタログ接続を作成します。
from 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}")
インストール方法を完了した後:
MCP サーバーの詳細を使用して Unity カタログ接続が作成される
Azure Databricks は、認証とトークンの管理を安全に処理するマネージド プロキシ エンドポイントをプロビジョニングします
MCP サーバーは AI Playground で使用でき、エージェントでプログラムで使用できます
Unity カタログのアクセス許可を使用して、他のユーザーに接続へのアクセス権を付与できます
プロキシ エンドポイント URL は、次の形式に従います。
https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}
MCP サーバーを表示するには、ワークスペース >Agents>MCP サーバーに移動します
MCP サーバー接続を共有する
MCP サーバー接続を使用する必要がある ID プリンシパルに USE CONNECTION 特権を付与します。
- ワークスペースで、[ Catalog>Connections> Your connection >Permissions] に移動します。
- Unity カタログ接続への適切なアクセス権を ID に付与します。
AI プレイグラウンドを使用して MCP サーバーをテストする
コードを記述せずに 、AI Playground で MCP サーバーを直接テストします。
Databricks ワークスペースの AI Playground に移動します。
ツールが有効なラベルを持つモデルを選択します。
[ ツール > + 追加ツール ] をクリックし、使用可能なツール オプションから [MCP サーバー ] を選択します。
[ MCP サーバー] セクションで 、[ 外部 MCP サーバー ] を選択して、使用可能な接続を参照します。
前にインストールした Unity カタログ接続 (たとえば、
github_connection) を選択します。LLM とチャットして、MCP サーバー ツールとの対話方法をテストします。 AI Playground は、MCP サーバーから使用可能なツールを自動的に検出し、LLM で使用できるようにします。
これにより、完全なエージェントを構築したり、運用環境にデプロイしたりする前に、MCP サーバー統合のプロトタイプ作成とテストをすばやく行うことができます。
MCP サーバーをプログラムで使用する
MCP サーバーをインストールしたら、プロキシ URL に接続して、エージェント コードでプログラムで使用します。 Databricks プロキシは、外部サーバーを管理対象の MCP サーバーと同様に動作させ、認証とトークン管理を処理します。
Databricks MCP クライアント
推奨される方法では、プロキシ エンドポイントを 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)
Standard MCP SDK
async/await を使用して標準の MCP SDK を使用して 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 では、 Streamable HTTP トランスポート メカニズムを使用する外部 MCP サーバーのみがサポートされます。
次のステップ
- マネージド MCP サーバー を外部サーバーと共に使用する
- Databricks MCP インフラストラクチャにアクセスするためにクライアントを MCP サーバーに接続する
- 組織のニーズに合わせてカスタム MCP サーバーを構築する
- 外部 MCP サーバーを使用するエージェントを展開する