
Anatomia do Agente de Código (23): Conectando ao Ecossistema de Ferramentas Externas do MCP
Apresentando o Problema
Os métodos de extensão abordados nos dois artigos anteriores eram todos "faça você mesmo": escreva sua própria classe de ferramenta, escreva seu próprio arquivo Skill.
Mas existem muitos serviços de ferramentas prontos no mundo: Tavily pode pesquisar na web, Context7 pode consultar a documentação mais recente, GitHub CLI pode gerenciar repositórios... se o agente pudesse chamar esses serviços diretamente, não haveria necessidade de reinventar a roda.
MCP (Modelo de Protocolo de Contexto) é o padrão de protocolo que resolve esse problema. Ele define um conjunto de especificações: provedores de serviços de ferramentas expõem ferramentas nesse formato, frameworks de agentes as chamam nesse formato, e ambos os lados concordam com a interface sem precisar escrever um adaptador dedicado para cada serviço.
A Conclusão Primeiro
Conectar um serviço de ferramenta MCP requer apenas duas etapas:
| Etapa | O que Fazer |
|---|---|
1. Configurar mcp_servers.json
|
Diga ao framework onde o serviço MCP está e como iniciá-lo |
| 2. Habilitar MCP |
--enable-mcp parâmetro de inicialização, ou ENABLE_MCP=true variável de ambiente |
O framework se conectará automaticamente aos serviços, descobrirá a lista de ferramentas e registrará cada ferramenta remota como uma ferramenta local — depois disso, a cadeia de chamadas é idêntica às ferramentas integradas.
I. O Modelo Básico do MCP
Primeiro entenda como o MCP funciona, depois olhe para o código.
O MCP define o conceito de um "servidor de ferramentas": um processo independente (ou serviço HTTP remoto) que possui várias ferramentas registradas, cada uma com seu próprio nome, descrição e esquema de parâmetros.
O fluxo de comunicação entre o agente (cliente) e o servidor de ferramentas tem apenas três etapas:
1. Aperto de Mão: conectar ao servidor
↓
2. Descoberta: list_tools() → obter a lista de ferramentas (nome + descrição + inputSchema)
↓
3. Invocação: call_tool(nome, params) → obter o resultado
É isso — três etapas, nada mais complexo. O valor do protocolo está na "padronização" — qualquer servidor MCP suporta essas três etapas, e qualquer cliente MCP pode se comunicar com qualquer servidor MCP.
MyCodeAgent implementa o lado do cliente do MCP, encapsulando essas três operações com MCPClient.
II. O Arquivo de Configuração: mcp_servers.json
Para configurar um servidor MCP, basta criar (ou modificar) mcp_servers.json na raiz do projeto:
{
"mcpServers": {
"tavily": {
"command": "uvx",
"args": ["mcp-server-tavily"],
"env": {
"TAVILY_API_KEY": "tvly-xxxxx"
}
},
"context7": {
"command": "uvx",
"args": ["--from", "context7-mcp", "context7-mcp"],
"env": {
"CTX7_API_KEY": "sua-chave"
}
}
}
}
Dois campos principais:
-
command: o comando para iniciar o servidor de ferramentas (uvxé um executor de pacotes Python que executa pacotes diretamente sem instalação) -
args: argumentos passados para o comando -
env: variáveis de ambiente necessárias pelo servidor de ferramentas (chaves de API, etc.)
Há também uma opção de configuração para servidores HTTP remotos:
{
"mcpServers": {
"remote-tool": {
"transport": "http",
"url": "https://seu-servidor-mcp.com/v1"
}
}
}
extensions/mcp/config.py é responsável por ler este arquivo e é compatível com o formato de wrapper da aplicação de desktop Claude {"mcpServers": {...}}, permitindo que arquivos de configuração sejam reutilizados em diferentes agentes.
III. Conexão e Descoberta: O que register_mcp_servers Faz
Quando o agente inicia (com --enable-mcp), register_mcp_servers() é chamado:
# extensions/mcp/bootstrap.py
def register_mcp_servers(tool_registry, project_root):
# 1. Ler mcp_servers.json
servers = load_mcp_servers(project_root)
# 2. Criar um MCPClient para cada servidor (ainda não conectado)
for server_name, spec in servers.items():
config = _build_client_config(project_root, spec, O protocolo MCP permite que empresas brasileiras integrem facilmente serviços externos em suas aplicações de IA, aumentando a eficiência e reduzindo o tempo de desenvolvimento. Isso pode ser crucial para empresas que buscam inovação e agilidade em suas operações. A padronização promovida pelo MCP também facilita a colaboração entre diferentes ferramentas e serviços.
Noticias relacionadas

Desenvolvi três ferramentas para auditar servidores MCP
Três ferramentas CLI foram criadas para verificar falhas em servidores MCP, encontrando bugs em si mesmas durante o processo. Cada ferramenta foca em aspectos diferentes da documentação e segurança.

Quando Você Não Precisa do MCP
O artigo discute quando o uso do Model Context Protocol (MCP) pode não ser necessário, apresentando alternativas como chamadas de função e CLI. Ele explora a percepção do MCP como um protocolo pesado e as opções disponíveis para desenvolvedores de agentes de IA.

MCP Sem Boilerplate: Servidor e Cliente Auto-Curativo da Solon AI
O artigo explora como a Solon AI transforma código Java em serviços MCP, permitindo a descoberta e invocação de ferramentas de forma padronizada, sem a necessidade de codificação manual.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.