Pular para o conteúdo principal

Usar servidores MCP em Agentes personalizados

info

Visualização

Esse recurso está em Pré-lançamento público.

Conecte seu código de agente a qualquer servidor MCP no Databricks: servidores gerenciados pelo Databricks, servidores MCP externos registrados como Serviços MCP e servidores personalizados hospedados como aplicativos Databricks. Todos eles expõem a mesma interface MCP, portanto, o código do agente é o mesmo. O que difere é a URL do servidor e como você se autentica .

A biblioteca Python databricks-mcp lida com a autenticação em servidores MCP do Databricks, portanto, o mesmo código de cliente funciona em todos os três tipos de servidor.

Obtenha a URL do seu servidor

Configure o servidor MCP primeiro e, em seguida, use seu URL nos exemplos a seguir:

Tipo de servidor

Padrão de URL

Configuração

Gerenciadas

https://<workspace-hostname>/api/2.0/mcp/<service>/<path>

Servidores gerenciados disponíveis

Externo (serviço MCP)

https://<workspace-hostname>/ai-gateway/mcp-services/<catalog>.<schema>.<mcp-service>

Conecte agentes a ferramentas com serviços MCP

Personalizada

https://<app-url>/mcp

Hospede seu próprio servidor MCP

Tipo de servidor

Padrão de URL

Configuração

Gerenciadas

https://<workspace-hostname>/api/2.0/mcp/<service>/<path>

Servidores gerenciados disponíveis

Externo (serviço MCP)

https://<workspace-hostname>/ai-gateway/mcp-services/<catalog>.<schema>.<mcp-service>

Conecte agentes a ferramentas com serviços MCP

Personalizada

https://<app-url>/mcp

Hospede seu próprio servidor MCP

Descubra servidores e ferramentas MCP disponíveis

Antes de escrever código de agente, descubra quais servidores e ferramentas você pode usar. Não codifique nomes de servidor, nomes de ferramenta ou formatos de argumento de memória; confirme-os no workspace.

  • Navegue pelos servidores no workspace. Vá para AI Gateway > MCPs para ver os servidores MCP disponíveis para você. O Databricks fornece servidores integrados prontos para uso: servidores MCP gerenciados para seus próprios dados e funções do Unity Catalog (Genie spaces, índices de Vector Search e funções do Unity Catalog), e system.ai serviços MCP integrados para ferramentas SaaS de terceiros, como Slack, GitHub, Google Drive, Google Calendar, Gmail e Microsoft 365.

  • Liste os serviços MCP programaticamente. Liste os serviços MCP em qualquer catálogo e esquema com a API REST do Unity Catalog. Por exemplo, os serviços integrados:

    Bash
    databricks api get "/api/2.1/unity-catalog/mcp-services?parent=schemas/system.ai&page_size=100"

    Substitua system.ai pelo seu próprio <catalog>.<schema> para encontrar serviços que você registrou. page_size é limitado a 100, e a resposta inclui um next_page_token quando existem mais serviços. Para enumerar todos os serviços em um esquema, repita a solicitação com page_token=<next_page_token> até que a resposta não retorne nenhum token:

    Bash
    token=""
    while :; do
    page=$(databricks api get "/api/2.1/unity-catalog/mcp-services?parent=schemas/system.ai&page_size=100&page_token=$token")
    echo "$page"
    token=$(echo "$page" | jq -r '.next_page_token // empty')
    [ -z "$token" ] && break
    done
  • Liste as ferramentas de um servidor a partir do código. Aponte um DatabricksMCPClient para qualquer URL de servidor e chame list_tools() para obter o nome, a descrição e o esquema de entrada de cada ferramenta em tempo de execução (runtime), conforme mostrado em Conectar e listar ferramentas. Esta é a maneira confiável de aprender as ferramentas e os argumentos exatos de um servidor.

Configure seu ambiente

  1. Use OAuth para autenticar no seu workspace:

    Bash
    databricks auth login --host https://<workspace-hostname>
  2. Quando solicitado, insira um nome de perfil e anote-o para uso posterior. O nome do perfil default é DEFAULT.

  3. Verifique se você possui um ambiente local com Python 3.12 ou acima e, em seguida, instale as dependências:

    Bash
    pip install -U "mcp>=1.9" "databricks-sdk[openai]" "mlflow>=3.1.0" "databricks-agents>=1.0.0" "databricks-mcp"

    Os exemplos de agent-framework abaixo precisam de seu próprio SDK. Adicione openai-agents databricks-openai para o OpenAI Agents SDK, ou databricks-langchain langgraph para o LangGraph.

Conectar e listar ferramentas

Crie um DatabricksMCPClient com a URL do servidor e liste suas ferramentas. O mesmo cliente funciona para URLs de servidor gerenciadas, externas (Serviço MCP) e personalizadas:

Python
from databricks_mcp import DatabricksMCPClient
from databricks.sdk import WorkspaceClient

workspace_client = WorkspaceClient(profile="DEFAULT")
host = workspace_client.config.host

# Use a managed, MCP Service, or custom server URL:
mcp_server_url = f"{host}/api/2.0/mcp/functions/system/ai"

mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)
tools = mcp_client.list_tools()
print(f"Available tools: {[t.name for t in tools]}")

Para chamar uma ferramenta diretamente:

Python
result = mcp_client.call_tool("system__ai__python_exec", {"code": "print('Hello, world!')"})
print(result.content)
nota

Serverless compute deve estar habilitado em seu workspace para a execução de ferramentas system.ai gerenciadas.

Autenticar

Selecione o método de autenticação que corresponde ao local de execução do seu agente. Para um serviço MCP externo, o chamador também deve ter EXECUTE no serviço. O Gateway de AI aplica essa permissão em cada chamada.

Autentique-se no seu workspace com OAuth (consulte Configurar seu ambiente) e passe o perfil para o cliente:

Python
workspace_client = WorkspaceClient(profile="DEFAULT")
mcp_client = DatabricksMCPClient(server_url=mcp_server_url, workspace_client=workspace_client)

Criar um agente

Use uma estrutura de agente para transformar as ferramentas do servidor MCP em um agente. Aponte o framework para a URL do servidor e passe seu WorkspaceClient autenticado.

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


async def main():
workspace_client = WorkspaceClient()
host = workspace_client.config.host

async with McpServer(
url=f"{host}/ai-gateway/mcp-services/main.default.github_mcp",
name="github-mcp",
workspace_client=workspace_client,
) as mcp_server:
agent = Agent(
name="Local agent",
instructions="You are a helpful assistant with access to external services.",
model="databricks-claude-sonnet-4-5",
mcp_servers=[mcp_server],
)
result = await Runner.run(agent, "List my open GitHub pull requests.")
print(result.final_output)


asyncio.run(main())

Notebooks de exemplo

Os seguintes Notebooks mostram como criar agentes LangGraph e OpenAI que chamam ferramentas MCP em servidores MCP gerenciados, externos e personalizados:

Agente de chamada de ferramentas LangGraph MCP

Agente de chamada de ferramenta OpenAI MCP

Agente de chamada de ferramenta MCP do SDK de agentes

Implante seu agente

O Databricks recomenda implantar agentes no Databricks Apps, o que permite gerenciar totalmente o código do agente, a configuração do servidor e o versionamento baseado em git. Alternativamente, implante no Model Serving.

Independentemente do que você selecionar, conceda ao agente acesso a todos os recursos dos quais seus servidores MCP dependem. Por exemplo, CAN_RUN em um Genie Agent ou SELECT em um Índice de Pesquisa de AI.

Declare cada recurso que seu agente usa, incluindo os recursos por trás de cada servidor MCP, em resources.apps.<app>.resources no databricks.yml, e então faça o deploy do pacote para conceder acesso ao service principal do Databricks do aplicativo. Por exemplo, para um agente que usa os servidores gerenciados Genie e AI Search:

YAML
resources:
apps:
my_agent_app:
name: 'my-agent-app'
source_code_path: ./
resources:
- name: 'llm'
serving_endpoint:
name: 'databricks-claude-sonnet-4-5'
permission: 'CAN_QUERY'
- name: 'genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
- name: 'vector_index'
uc_securable:
securable_full_name: '<catalog>.<schema>.<index-name>'
securable_type: 'TABLE'
permission: 'SELECT'
Bash
databricks bundle deploy
databricks bundle run my_agent_app

Para o fluxo de trabalho completo de criação e implantação, consulte Criar um agente e implantá-lo nos Databricks Apps. Para todos os tipos de recurso e valores de permissão, consulte Autenticação para agentes.

nota

Comece a partir de um padrão de agente: ele fornece o ponto de entrada AgentServer do MLflow (execução com uv run start-app), o auxiliar get_user_workspace_client() em nome de, e um databricks.yml. Pin o interpretador com requires-python = ">=3.12,<3.13" e faça commit de uv.lock para que a imagem de build do Databricks Apps não resolva um Python mais recente (por exemplo, 3.14) que não possua wheels pré-construídas para algumas dependências do agente. Para um serviço MCP, conceda também ao chamador acesso fora de banda (consulte Habilitar acesso por usuário (acesso em nome do usuário)); bundle validate passa sem isso.

Próximos passos