O que é MCP
MCP (Model Context Protocol) é um protocolo aberto que padroniza como assistentes de IA se conectam a dados e ferramentas externas. Em vez de uma integração separada para cada serviço (GitHub, banco de dados, CRM, sistema de arquivos), você executa um servidor MCP e o cliente - Cursor, Claude Desktop, Zed e outros - conecta por um contrato único. Abaixo: o que é MCP, como funciona a arquitetura e por que o protocolo importa em produção.
Definição em termos simples
O Model Context Protocol é uma especificação de troca entre um aplicativo de IA (host) e uma fonte externa de contexto (servidor). O servidor pode expor:
- Resources - dados legíveis: arquivos, linhas de BD, documentos de API
- Tools - ações que o modelo pode chamar: requisições API, SQL, busca em índice
- Prompts - modelos de prompt prontos para cenários comuns
O protocolo é aberto e não está ligado a um único fornecedor de LLM. O host escolhe o modelo; o servidor MCP escolhe quais dados e ferramentas oferecer. A comunicação usa JSON-RPC 2.0 com transporte por stdio, HTTP ou SSE.
A ideia da Anthropic (novembro de 2024): substituir um «zoológico» de plugins customizados por uma forma única de conectar contexto aos agentes.
Arquitetura: host, client, server
Esquema típico de três papéis:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MCP Host │────▶│ MCP Client │────▶│ MCP Server │
│ (Cursor, │ │ (dentro do │ │ (GitHub, │
│ Claude) │ │ app) │ │ Postgres…) │
└─────────────┘ └─────────────┘ └─────────────┘
- MCP Host - aplicativo com LLM: IDE, cliente de chat, plataforma de agentes. Gerencia a sessão, chama o modelo e decide quando invocar um tool.
- MCP Client - componente dentro do host que fala com um ou mais servidores via MCP.
- MCP Server - processo ou serviço que expõe resources, tools e prompts. Pode ser local (arquivos em disco) ou remoto (API corporativa).
Um host pode ter vários clientes - um por servidor MCP. No Cursor, por exemplo, servidores de sistema de arquivos, navegador, GitHub e MCP customizados do config podem rodar ao mesmo tempo.
O que o MCP entrega na prática
Um contrato em vez de N integrações
Antes do MCP, cada produto escrevia seus conectores: formato próprio para «ler arquivo», outro para «chamar API». O MCP define:
- como as ferramentas são declaradas (nome, esquema de parâmetros, descrição)
- como os resultados são devolvidos
- como resources são solicitados e assinaturas de mudança funcionam
O mesmo servidor MCP de PostgreSQL pode atender Claude Desktop e outro host se este suportar o protocolo.
Segurança e limites de acesso
O servidor roda em processo ou contêiner separado. O host não acessa o sistema inteiro - só o que o servidor expõe explicitamente. Em enterprise isso importa: dá para dar ao agente acesso somente leitura a um datamart sem acesso total à BD de produção.
Cenários locais e em nuvem
- Local - transporte stdio: o host inicia o binário do servidor como processo filho (típico em IDE e clientes desktop).
- Remoto - HTTP/SSE: servidor MCP compartilhado em VPN ou nuvem para o time inteiro.
Ambos estão na especificação; a escolha depende da política de segurança e de onde os dados ficam.
MCP e function calling
Function calling (tool use) é o mecanismo do lado do LLM: o modelo retorna um pedido estruturado de «chamar função X com argumentos Y». MCP é uma camada inferior e mais ampla: padroniza de onde vêm essas funções e dados, como se registram e como o host se comunica com elas.
Fluxo de interação:
- O host conecta ao servidor MCP e obtém a lista de tools.
- A lista vai ao modelo no formato do provedor (OpenAI tools, Anthropic tools, etc.).
- O modelo escolhe um tool; o host executa a chamada via MCP client → server.
- O resultado volta ao contexto do modelo para o próximo passo.
O MCP não substitui o raciocínio do modelo - unifica o «cabeamento» entre o agente e o mundo externo.
Onde o MCP já é usado
| Ambiente | Papel do MCP |
|---|---|
| Cursor | Servidores MCP integrados e customizados: arquivos, terminal, navegador, APIs de terceiros |
| Claude Desktop | Conectores oficiais e servidores da comunidade via claude_desktop_config.json |
| Zed, Continue, Cline | Suporte MCP para ampliar contexto no editor |
| Agentes enterprise | Servidores próprios sobre APIs internas, tickets, wikis |
A comunidade publica servidores prontos: GitHub, Google Drive, Slack, Puppeteer, SQLite, Postgres, Brave Search e centenas mais em registros como modelcontextprotocol/servers no GitHub.
Como criar ou conectar um servidor MCP
Caminho mínimo para desenvolvedores:
- Escolher SDK: há bibliotecas oficiais para TypeScript, Python, C#, Java e outros.
- Descrever tools e resources no código do servidor (nome,
inputSchema, handler). - Executar o servidor com transporte stdio ou HTTP.
- Adicionar config no host (no Cursor -
.cursor/mcp.jsonou configurações do IDE).
Exemplo de lógica de tool em Python (simplificado):
@server.tool()
async def get_weather(city: str) -> str:
"""Clima atual para uma cidade."""
return await weather_api.fetch(city)
Ao iniciar a sessão o host pede as capabilities do servidor; o modelo vê get_weather com descrição e esquema JSON do parâmetro city.
Times sem desenvolvimento próprio costumam bastar com um servidor do registro mais config e segredos (API keys por env, não no repositório).
Limitações e o que observar
O MCP resolve padronização de conexões, mas não:
- qualidade do raciocínio do modelo
- orquestração de workflows complexos de vários passos (território de frameworks de agentes)
- autorização entre usuários (é preciso OAuth/RBAC separado no servidor)
Na prática, considere:
- Latência - cada tool call é um round-trip; cadeias de 10+ chamadas precisam de orçamento de tempo e tokens.
- Versionamento - servidores e hosts devem alinhar na versão da spec (2025-03 e posteriores evoluem ativamente).
- Confiabilidade - servidor MCP fora do ar corta acesso a dados; em produção precisam de health checks e fallback.
MCP vs RAG vs APIs customizadas
| Abordagem | Força | Fraqueza |
|---|---|---|
| MCP | Tools/resources padrão para qualquer host | Exige suporte MCP no cliente |
| RAG | Busca em grandes corpus sem carregar tudo no contexto | Não dá ações arbitrárias (write, mutar API) |
| API customizada | Controle total | Duplicar trabalho para cada cliente de IA |
Em sistemas maduros costuma-se usar MCP + RAG: RAG para conhecimento documental, MCP tools para consultas ao vivo em BD, tickets, deploys.
Resumo
MCP é um protocolo aberto de contexto para agentes de IA: o host conecta a servidores, obtém resources e tools, e o modelo os invoca por um contrato único. Isso reduz custo de integração, facilita portar cenários entre Cursor, Claude Desktop e outros clientes, e define limites claros de acesso a dados.
Ordem prática para desenvolvedores: começar com servidores da comunidade para seu stack e depois envolver APIs internas em servidor MCP próprio quando as mesmas tools forem necessárias em vários apps host.
Perguntas frequentes
Como o MCP difere de uma API REST comum?
Uma API REST é a interface de um serviço específico para suas chamadas HTTP. MCP é um protocolo entre o host de IA e um «adaptador» a esses serviços: descreve como o host descobre tools, as chama e lê resources em formato amigável ao agente. Um servidor MCP pode envolver APIs REST do GitHub ou Jira; o host não escreve integração separada por produto.
Preciso de MCP se uso só um chat (por exemplo ChatGPT)?
Se todo o fluxo vive em um produto fechado com plugins integrados - não necessariamente. O MCP compensa quando você usa vários hosts (IDE + desktop + agente próprio), quer reutilizar as mesmas tools ou mantém dados sensíveis no seu servidor com controle explícito de acesso.
É seguro conectar servidores MCP a dados de trabalho?
Depende do servidor e da configuração. Servidores confiáveis da comunidade com código aberto, acesso somente leitura e segredos por variáveis de ambiente são um mínimo. Em produção: processo separado, mínimos privilégios, auditoria de tool calls, sem acesso de escrita do agente sem aprovação humana.
Posso usar MCP com modelos locais (Ollama, LM Studio)?
Sim, se o host suporta MCP e seu provedor local. O MCP não está ligado a API na nuvem - fornece contexto e tools; o modelo pode ser local. O limite está no host: nem todos os clientes combinam igualmente bem LLM local e o conjunto completo de MCP tools.
Por onde começo a configurar MCP no Cursor?
- Abra as configurações MCP no Cursor (ou
.cursor/mcp.jsonno projeto). - Adicione um servidor pronto da documentação (ex.: filesystem, GitHub) com comando de inicialização e env para tokens.
- Reinicie o Cursor e verifique se o servidor aparece como connected.
- No chat do agente, peça explicitamente para usar um tool - confirme que a chamada funciona e o resultado entra na resposta.
Depois vale adicionar um servidor customizado para sua API interna - assim você entende o ciclo completo sem reescrever a lógica de integração para cada ferramenta.