Voltar ao blog

MCP explicado: o protocolo que conecta seu agente de IA às ferramentas

O que é o Model Context Protocol, como funcionam servidores, ferramentas e transportes, e quando vale a pena montar um servidor MCP próprio em vez de usar function calling.

C
Caio Braga
22 de agosto de 2026 · 6 min de leitura
Sumário do artigo
MCP explicado: o protocolo que conecta seu agente de IA às ferramentas

MCP é a sigla de Model Context Protocol, um protocolo aberto que padroniza como um modelo de IA conversa com ferramentas e fontes de dados externas. A Anthropic anunciou o protocolo em novembro de 2024, e hoje ele aparece em Claude, ChatGPT, Cursor, VS Code, Zed e Replit.

O problema que o MCP resolve tem nome: integração M por N. Se você tem 5 aplicações de IA e 20 ferramentas para conectar, o mundo antes do protocolo pedia 100 integrações diferentes, cada uma com seu formato de autenticação e seu jeito de descrever o que a ferramenta faz. Com um protocolo comum, são 5 clientes e 20 servidores.

Os três papéis

A arquitetura tem três peças, e confundir elas atrapalha a leitura de qualquer documentação.

O host é a aplicação onde o modelo roda: o app do Claude, o Cursor, seu próprio produto.

O client é o componente dentro do host que fala o protocolo. Um client por conexão com servidor.

O server é quem expõe as capacidades: ler um arquivo, consultar um banco, criar uma tarefa no gerenciador de projetos. Pode rodar como processo local na sua máquina ou como serviço remoto atrás de HTTPS.

Toda a comunicação é JSON-RPC 2.0. Requisição, resposta e notificação em JSON, e nada mais que isso.

As primitivas do servidor

O servidor expõe três tipos de coisa, e a diferença entre elas é quem decide usar.

Primitiva O que é Quem decide usar
Tool Ação executável, como criar registro ou rodar consulta O modelo, durante a conversa
Resource Dado somente leitura identificado por URI, como um arquivo ou registro A aplicação, que injeta no contexto
Prompt Modelo de prompt reutilizável que o servidor oferece O usuário, geralmente via menu ou comando

A maioria das integrações que você vê por aí usa só tools. Resources fazem sentido quando o dado é grande e você quer que a aplicação escolha o que entra no contexto, em vez de deixar o modelo pedir tudo.

Do lado do cliente existem outras três primitivas: sampling (o servidor pede uma geração ao modelo do host), roots (o cliente informa quais diretórios ou escopos estão disponíveis) e elicitation (o servidor pede uma informação ao usuário no meio de uma operação).

Os dois transportes

Transporte Quando usar Como funciona
stdio Servidor local, mesma máquina O cliente sobe o servidor como subprocesso e troca mensagens por stdin e stdout
Streamable HTTP Servidor remoto, vários clientes Um endpoint HTTP único que aceita POST e GET, com SSE opcional para streaming

O Streamable HTTP entrou na revisão de março de 2025 e substituiu o transporte HTTP+SSE original. Em stdio existe uma regra que quebra muita implementação nova: o servidor não pode escrever nada no stdout que não seja mensagem MCP válida. Um console.log de depuração perdido no código derruba a conexão. Log vai para stderr.

Como isso aparece na prática

Conectar um servidor local a um host costuma ser um bloco de configuração assim:

{
  "mcpServers": {
    "meu-banco": {
      "command": "node",
      "args": ["/caminho/servidor-mcp/index.js"],
      "env": {
        "DATABASE_URL": "postgres://..."
      }
    }
  }
}

O host sobe esse processo, pergunta quais capacidades ele tem e passa a lista de ferramentas para o modelo junto do resto do contexto. Cada ferramenta chega ao modelo com nome, descrição e um schema de entrada:

{
  "name": "buscar_pedido",
  "description": "Busca um pedido pelo número. Use quando o usuário citar um número de pedido explícito.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "numero": { "type": "string", "description": "Número do pedido, formato PED-0000" }
    },
    "required": ["numero"]
  }
}

Essa descrição é a documentação que o modelo lê para decidir. Descrição vaga gera ferramenta chamada na hora errada, e isso não se conserta com mais instrução no system prompt.

A linha do tempo das revisões

O MCP usa versionamento por data, e a data marca a última mudança incompatível.

Revisão O que trouxe
2024-11-05 Modelo cliente-servidor e as primitivas tools, resources e prompts
2025-03-26 Transporte Streamable HTTP e autorização com OAuth 2.1
2025-06-18 Saída estruturada, elicitation e remoção do batching de JSON-RPC
2025-11-25 Refino na descoberta de autorização, tasks experimental, JSON Schema 2020-12
2026-07-28 (release candidate) Núcleo do protocolo sem estado, MCP Apps, extensão Tasks e política formal de depreciação

A negociação de versão existe justamente para implementações antigas e novas continuarem conversando. Antes de seguir tutorial encontrado por aí, confira de qual revisão ele fala.

MCP não substitui function calling

Function calling é o mecanismo do modelo para pedir a execução de uma função. MCP é o protocolo que padroniza como essas funções são descobertas, descritas e executadas por processos externos.

Se o seu agente chama duas funções que vivem no mesmo código do app, function calling direto resolve e MCP só adiciona camada. O protocolo compensa quando alguma destas condições aparece:

A mesma capacidade precisa ser usada por mais de um host, por exemplo pelo seu produto e pelo Claude no seu computador.

Quem mantém a ferramenta não é quem mantém o app, e um contrato estável entre os dois evita quebra a cada deploy.

Você quer aproveitar servidores prontos de terceiros em vez de escrever integração para cada API.

Erros comuns em servidor MCP próprio

Erro Efeito Correção
Ferramentas com nome parecido (buscar e buscar_dados) Modelo escolhe a errada Nomes distintos e descrição dizendo quando usar cada uma
Retornar payload gigante Contexto estourado e custo alto Paginar, resumir, devolver só campos usados
Devolver exceção crua no erro Modelo trava ou repete a chamada Devolver texto explicando o que falhou e o que fazer
Credencial dentro do arquivo de configuração versionado Chave exposta Variáveis de ambiente, arquivo fora do repositório
Escrever log no stdout em servidor stdio Conexão cai Log em stderr

Por onde começar

Instale um servidor pronto antes de escrever o seu. Conectar um servidor de sistema de arquivos ou de banco no app do Claude leva poucos minutos e mostra o ciclo completo: o host lista as ferramentas, o modelo escolhe uma, o servidor executa, o resultado volta para a conversa.

Depois disso, o servidor próprio vira uma questão de escrever três ou quatro ferramentas com descrição honesta e schema apertado. A parte difícil não é o protocolo. É decidir o que o modelo tem permissão de fazer no seu sistema.

Tags
#mcp#agentes de ia#model context protocol#claude#integrações
● Não perca essa chance

Não perca a próxima edição.

Toda quinta, 9h. Direto na sua caixa.

  • Ferramentas que economizam horas do seu trabalho
  • Agentes e automações que funcionam
  • Bastidores do que estamos construindo

100% gratuito. Cancele quando quiser.

Compartilhar