Externe MCP-Server in Agenten verwenden

Important

Dieses Feature befindet sich in der Public Preview.

Nachdem Sie einen externen MCP-Server in Ihrem Arbeitsbereich installiert haben, verwenden Sie ihn in Ihrem Agentcode, indem Sie eine Verbindung mit der Azure Databricks verwalteten Proxy-URL herstellen. Der Proxy bewirkt, dass sich externe Server wie verwaltete MCP-Server verhalten, die Authentifizierung und die Tokenverwaltung behandeln.

Informationen zum Installieren eines externen MCP-Servers finden Sie unter Installieren eines externen MCP-Servers.

Herstellen einer Verbindung mit einem externen MCP-Server

Das Proxy-URL-Muster ist https://<workspace-hostname>/api/2.0/mcp/external/<connection-name>, wobei <connection-name> die Unity Catalog-Verbindung ist, die Sie für den externen Dienst registriert haben.

Wählen Sie die Registerkarte aus, die Ihrem Agentframework und Ihrem Bereitstellungsziel entspricht:

OpenAI Agents SDK (Apps)

from agents import Agent, Runner
from databricks.sdk import WorkspaceClient
from databricks_openai.agents import McpServer

workspace_client = WorkspaceClient()
host = workspace_client.config.host

async with McpServer(
    url=f"{host}/api/2.0/mcp/external/<connection-name>",
    name="external-service",
    workspace_client=workspace_client,
) as external_server:
    agent = Agent(
        name="Connected agent",
        instructions="You are a helpful assistant with access to external services.",
        model="databricks-claude-sonnet-4-5",
        mcp_servers=[external_server],
    )
    result = await Runner.run(agent, "Send a Slack message to the team about the deployment")
    print(result.final_output)

Gewähren Sie der App Zugriff auf die Unity-Katalogverbindung in databricks.yml:

resources:
  apps:
    my_agent_app:
      resources:
        - name: 'my_connection'
          uc_securable:
            securable_full_name: '<connection-name>'
            securable_type: 'CONNECTION'
            permission: 'USE_CONNECTION'

LangGraph (Apps)

from databricks.sdk import WorkspaceClient
from databricks_langchain import ChatDatabricks, DatabricksMCPServer, DatabricksMultiServerMCPClient
from langgraph.prebuilt import create_react_agent

workspace_client = WorkspaceClient()
host = workspace_client.config.host

mcp_client = DatabricksMultiServerMCPClient([
    DatabricksMCPServer(
        name="external-service",
        url=f"{host}/api/2.0/mcp/external/<connection-name>",
        workspace_client=workspace_client,
    ),
])

async with mcp_client:
    tools = await mcp_client.get_tools()
    agent = create_react_agent(
        ChatDatabricks(endpoint="databricks-claude-sonnet-4-5"),
        tools=tools,
    )
    result = await agent.ainvoke(
        {"messages": [{"role": "user", "content": "Send a Slack message to the team about the deployment"}]}
    )
    print(result["messages"][-1].content)

Gewähren Sie der App Zugriff auf die Unity-Katalogverbindung in databricks.yml:

resources:
  apps:
    my_agent_app:
      resources:
        - name: 'my_connection'
          uc_securable:
            securable_full_name: '<connection-name>'
            securable_type: 'CONNECTION'
            permission: 'USE_CONNECTION'

Bereitstellung von Modellen

from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksMCPClient
import mlflow

workspace_client = WorkspaceClient()
host = workspace_client.config.host

mcp_client = DatabricksMCPClient(
    server_url=f"{host}/api/2.0/mcp/external/<connection-name>",
    workspace_client=workspace_client,
)

tools = mcp_client.list_tools()

mlflow.pyfunc.log_model(
    "agent",
    python_model=my_agent,
    resources=mcp_client.get_databricks_resources(),
)

Informationen zum Bereitstellen des Agents finden Sie unter Bereitstellen eines Agents für generative KI-Anwendungen (Model Serving). Ausführliche Informationen zum Protokollieren von Agents mit MCP-Ressourcen finden Sie unter Use Databricks managed MCP servers.

Untere Ebene: verwenden Sie das MCP SDK direkt

Wenn Sie kein von Databricks bereitgestelltes Framework-Hilfsprogramm verwenden, rufen Sie die Proxy-URL mit dem standardmäßigen MCP-SDK auf. Dieses Muster ist frameworkagnostisch – verwenden Sie es für benutzerdefinierte Orchestrierung oder wenn Sie direkte Kontrolle über die Sitzung benötigen.

%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 mcp.client.streamable_http import streamablehttp_client as connect
from mcp import ClientSession


async def main():
    app_url = "https://<workspace-hostname>/api/2.0/mcp/external/<connection-name>"
    client = WorkspaceClient()

    async with connect(app_url, auth=DatabricksOAuthClientProvider(client)) as (
        read_stream,
        write_stream,
        _,
    ):
        async with ClientSession(read_stream, write_stream) as session:
            await session.initialize()
            tools = await session.list_tools()
            response = await session.call_tool(name="<tool-name>", arguments={...})
            print(response.content[0].text)

await main()

Verwenden Sie DatabricksMCPClient für eine synchrone Alternative direkt:

from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksMCPClient

workspace_client = WorkspaceClient()
host = workspace_client.config.host

mcp_client = DatabricksMCPClient(
    server_url=f"{host}/api/2.0/mcp/external/<connection-name>",
    workspace_client=workspace_client,
)

tools = mcp_client.list_tools()
response = mcp_client.call_tool("<tool-name>", {...})
print(response.content[0].text)

Beispielnotizbücher: Erstellen eines Agents mit Databricks MCP-Servern

Die folgenden Notizbücher zeigen, wie LangGraph- und OpenAI-Agents erstellt werden, die MCP-Tools aufrufen, einschließlich externer MCP-Server, auf die über Databricks-Proxyendpunkte zugegriffen wird.

LangGraph MCP-Toolanruf-Agent

Notebook abrufen

OpenAI MCP-Werkzeugaufruf-Agent

Notebook abrufen

Nächste Schritte