Utilizar servidores MCP externos em agentes
Visualização
Este recurso está em Pré-visualização Pública.
Após instalar um servidor MCP externo em seu workspace, utilize-o em seu código de agente conectando-se ao URL do proxy Databricks-gerenciar. O proxy faz com que servidores externos se comportem como servidores MCP, gerenciando a autenticação e os tokens.
Para instalar um servidor MCP externo, consulte Instalar um servidor MCP externo.
Conecte-se a um servidor MCP externo.
O padrão de URL do proxy é https://<workspace-hostname>/api/2.0/mcp/external/<connection-name>, onde <connection-name> é a conexão do Unity Catalog que você registrou para o serviço externo.
Selecione a tab que corresponde à sua estrutura de agente e destino de implantação:
- OpenAI Agents SDK (Apps)
- LangGraph (Apps)
- Model Serving
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)
Conceda ao aplicativo acesso à conexão Unity Catalog em databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_connection'
uc_securable:
securable_full_name: '<connection-name>'
securable_type: 'CONNECTION'
permission: 'USE_CONNECTION'
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)
Conceda ao aplicativo acesso à conexão Unity Catalog em databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_connection'
uc_securable:
securable_full_name: '<connection-name>'
securable_type: 'CONNECTION'
permission: 'USE_CONNECTION'
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(),
)
Para implantar o agente, consulte implantado um agente para aplicações generativas AI (servindo modelo). Para obter detalhes sobre agentes de registro com recursos MCP, consulte Usar Databricks para gerenciar servidores MCP.
Nível inferior: utilize o SDK do MCP diretamente.
Se você não estiver usando um auxiliar de framework fornecido pelo Databricks, chame a URL do proxy com o SDK MCP padrão. Esse padrão é independente de frameworks — use-o para orquestração personalizada ou quando precisar de controle direto sobre a sessão.
%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()
Para uma alternativa síncrona, use DatabricksMCPClient diretamente:
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)
Notebook de exemplo: Criar um agente com servidores Databricks MCP
O seguinte Notebook mostra como criar agentes LangGraph e OpenAI que chamam ferramentas MCP, incluindo servidores MCP externos acessados por meio do endpoint proxy Databricks .
Agente de chamada de ferramentas LangGraph MCP
Agente de chamada de ferramenta OpenAI MCP
Próximos passos
-
Conecte agentes a serviços externos para obter uma visão geral de todas as abordagens para conectar agentes a serviços externos.
-
Utilize servidores MCP juntamente com servidores externos.
-
Utilize servidores MCP personalizados em agentes para ferramentas específicas da organização.
-
Agentes implantados que utilizam servidores MCP externos