次の方法で共有


外部 MCP サーバーを使用する

Important

この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Azure Databricks プレビューの管理を参照してください。

Databricks を外部モデル コンテキスト プロトコル (MCP) サーバーに接続して、Databricks の外部でホストされている幅広いツールにエージェントがアクセスできるようにします。 外部 MCP サーバーは、Databricks で管理されるプロキシを介して接続する Databricks の外部でホストされているサードパーティの MCP サーバーです。

認証とセキュリティ

Databricks では、マネージド MCP プロキシと Unity カタログ HTTP 接続 を使用して、ワークスペースへの認証を安全に処理します。

  • セキュリティで保護されたトークン管理: Databricks は、すべての OAuth フローとトークン更新を自動的に処理します
  • 公開された資格情報なし: トークンがエンド ユーザーに公開されることはありません
  • 一元化された認証: Unity カタログ接続を使用した一貫性のある認証パターン

Requirements

外部 MCP サーバーをインストールする

エージェントで使用する外部 MCP サーバーをインストールするには、3 つのオプションがあります。 すべての方法で Unity カタログ接続が作成され、MCP サーバーへのセキュリティで保護された認証済みアクセスが可能になります。

MCP サーバーに基づいてインストール方法を選択します。

Databricks Marketplace から

Important

この機能は パブリック プレビュー段階です。 プレビューの登録は、[ プレビュー ] ページで確認できます。 Azure Databricks プレビューの管理を参照してください。

Azure Databricks Marketplace から、キュレーションされた事前構成済みの MCP サーバーを直接インストールします。

  1. Azure Databricks ワークスペースで、 Marketplace>Agents>MCP サーバー タブに移動します。

  2. インストールする MCP サーバーを見つけて、[ インストール] をクリックします。

  3. インストール ダイアログで、接続を構成します。

    • 接続名: Unity カタログ接続の名前を入力します (例: github_connection)。
    • ホスト: ホスト ドメインは、キュレーションされたサーバー用に事前に設定されます。
    • ベース パス: ベース パスは、キュレーションされたサーバー用に事前に設定されます。

    資格情報: 認証資格情報を入力します。 必須フィールドは、サーバーの資格情報の種類によって異なります。

    • ベアラー トークン認証の場合: ベアラー トークンを指定します。
    • OAuth U2M 認証の場合: クライアント ID とクライアント シークレットを指定します。

    これらの資格情報を取得する手順については、MCP サーバー プロバイダーのドキュメントを参照してください。

  4. [ インストール ] をクリックして接続を作成します。

Marketplace のインストールの詳細については、「 外部 MCP サーバーへのアクセスを取得する」を参照してください。

カスタム HTTP 接続

Unity カタログ HTTP 接続を作成して、Marketplace で使用できないセルフホステッド サーバーやサード パーティ製サーバーなど、MCP サーバーをインストールします。

  1. HTTP 接続を作成します。 HTTP 接続を参照してください。

  2. HTTP 接続を作成するときに、 MCP 接続のチェックボックスをオンにして MCP 機能を有効にします。

  3. 接続 URL が有効な MCP サーバー エンドポイントを指していることを確認します。

動的クライアント登録 (試験段階)

Important

この機能は パブリック プレビュー段階です。 プレビューの登録は、[ プレビュー ] ページで確認できます。 Azure Databricks プレビューの管理を参照してください。

動的クライアント登録 (DCR) を使用して、OAuth 2.0 DCR (RFC7591) をサポートする MCP サーバーを自動的に登録してインストールします。

DCR は、手動の資格情報構成を必要とせずに、OAuth 検出、クライアント登録、Unity カタログ接続の作成を自動的に処理します。

DCR を使用するには、次の要件を満たす必要があります。

  • MCP サーバーは、DCR と OAuth 2.0 の承認をサポートする必要があります。
  • MCP サーバーは、OAuth メタデータ エンドポイントを公開する必要があります。
  1. databricks-mcp パッケージをインストールまたはアップグレードして、最新バージョンを入手します。

    %pip install -U databricks-mcp
    %restart_python
    
  2. DCR 登録関数を使用して、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 サーバー接続を共有する

MCP サーバー接続を使用する必要がある ID プリンシパルに USE CONNECTION 特権を付与します。

  1. ワークスペースで、[ Catalog>Connections> Your connection >Permissions] に移動します。
  2. Unity カタログ接続への適切なアクセス権を ID に付与します。

AI プレイグラウンドを使用して MCP サーバーをテストする

コードを記述せずに 、AI Playground で MCP サーバーを直接テストします。

  1. Databricks ワークスペースの AI Playground に移動します。

  2. ツールが有効なラベルを持つモデルを選択します。

  3. [ ツール > + 追加ツール ] をクリックし、使用可能なツール オプションから [MCP サーバー ] を選択します。

  4. [ MCP サーバー] セクションで 、[ 外部 MCP サーバー ] を選択して、使用可能な接続を参照します。

  5. 前にインストールした Unity カタログ接続 (たとえば、 github_connection) を選択します。

  6. 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 内のリソースへのプライベート接続はサポートされていません。 この機能が必要な場合は、サポート チームにお問い合わせください。

次のステップ