O Model Context Protocol (MCP) é um padrão aberto que define como as aplicações de IA se conectam a ferramentas e fontes de dados externas. A Anthropic o apresentou em novembro de 2024, e desde então ele foi adotado em assistentes de IA, ferramentas de programação e frameworks de agentes.
O problema que o MCP resolve
Um modelo de linguagem sozinho só consegue produzir texto. Para ser útil no trabalho real, ele precisa ler arquivos, consultar bancos de dados, pesquisar e chamar APIs. Antes do MCP, cada aplicação de IA definia sua própria maneira de conectar tudo isso, então uma ferramenta criada para um assistente tinha de ser refeita para o próximo.
O MCP substitui isso por um único protocolo. Um provedor de ferramentas escreve um servidor MCP uma vez, e qualquer aplicação compatível com MCP pode usá-lo. A comparação comum é com um conector universal: uma tomada padrão em vez de um cabo diferente para cada dispositivo.
Como o MCP funciona
O MCP tem três papéis.
- Host: a aplicação de IA que a pessoa usa, como um aplicativo de chat, uma IDE ou um agente.
- Cliente: um componente dentro do host que mantém a conexão com um servidor.
- Servidor: um programa que expõe capacidades ao host.
Host application (assistant, IDE, agent)
| one MCP client per server
v
MCP server ---> files, databases, APIs, or pure computation
As mensagens são JSON-RPC 2.0. Quando uma conexão é aberta, cliente e servidor trocam suas capacidades, e o cliente pergunta ao servidor o que ele oferece. O host repassa essas definições de ferramentas ao modelo. Quando o modelo decide usar uma ferramenta, o cliente envia a chamada ao servidor e devolve o resultado.
Os blocos de construção
Os servidores podem oferecer três tipos de capacidade.
| Primitiva | O que é | Quem decide usá-la |
|---|---|---|
| Ferramentas (tools) | Funções que o modelo pode chamar, com nome, descrição e esquema de entrada | O modelo |
| Recursos (resources) | Dados somente leitura identificados por um URI, como um arquivo ou um registro | A aplicação ou o usuário |
| Prompts | Modelos de prompt reutilizáveis fornecidos pelo servidor | O usuário |
As ferramentas são as mais usadas. A definição de uma ferramenta é assim:
{
"name": "estimate_tokens",
"description": "Count the tokens in a prompt for a given model.",
"inputSchema": {
"type": "object",
"properties": {
"prompt": { "type": "string" },
"model": { "type": "string" }
},
"required": ["prompt"]
}
}
A descrição e o esquema são lidos pelo modelo, então são prompts por si mesmos. Descrições de ferramentas claras são o maior fator para que um agente use uma ferramenta corretamente. Veja os prompts para agentes de IA.
Transportes
O MCP define como as mensagens trafegam.
- stdio: o host inicia o servidor como um processo local e se comunica pela entrada e saída padrão. Simples, e nada é exposto na rede.
- HTTP transmitível (Streamable HTTP): o servidor roda como um serviço web que os clientes alcançam por HTTP, o que serve a servidores remotos e compartilhados e traz a autenticação para o escopo.
MCP, chamada de funções e APIs
São camadas, não concorrentes.
- Uma API é a forma como o software conversa com um serviço.
- A chamada de funções é a forma como um modelo pede que uma função seja executada.
- O MCP padroniza como as funções são descritas, descobertas e entregues a qualquer aplicação de IA.
Um servidor MCP muitas vezes envolve uma API existente. Se você só vai atender uma aplicação que controla, a chamada de funções simples basta. O MCP se justifica quando você quer que uma ferramenta funcione com muitos clientes.
Configurando um servidor
Os hosts são configurados com uma lista de servidores a iniciar. Um servidor stdio local precisa de um comando e seus argumentos:
{
"mcpServers": {
"promptflow": {
"command": "node",
"args": ["/absolute/path/to/packages/mcp-server/dist/bin.js"]
}
}
}
Os nomes das chaves variam um pouco entre os hosts, mas a forma é a mesma.
Considerações de segurança
Conectar um modelo a ferramentas é poderoso e amplia a superfície de ataque.
Resultados de ferramentas são entrada não confiável. Um servidor que busca páginas web ou lê tickets devolve texto que um atacante pode ter escrito. O modelo pode seguir instruções contidas nele. Veja a injeção de prompt.
O modelo confia nas descrições das ferramentas. Um servidor malicioso pode descrever uma ferramenta de forma enganosa para direcionar o modelo. Instale servidores apenas de fontes em que você confia e revise o que eles declaram.
Capacidades combinadas multiplicam o risco. Uma sessão que pode ler dados privados, ler conteúdo não confiável e enviar dados para fora pode virar um caminho de exfiltração. Evite dar as três a uma mesma sessão.
Vale o privilégio mínimo. Prefira servidores que façam uma só coisa, use acesso somente leitura quando possível e exija confirmação para ações com efeitos colaterais.
Servidores locais rodam com as suas permissões. Um servidor stdio é um programa na sua máquina. Trate a instalação de um como a de qualquer outro software.
Projetando um bom servidor MCP
- Ofereça poucas ferramentas, bem nomeadas e com propósitos distintos.
- Escreva descrições que digam quando usar uma ferramenta e o que ela retorna.
- Valide cada argumento e retorne erros sobre os quais o modelo possa agir.
- Mantenha os resultados compactos, pois eles consomem o contexto do modelo.
- Marque como somente leitura as ferramentas que apenas leem, para que os hosts possam tratá-las de acordo.
- Nunca retorne segredos em resultados ou logs.
Um exemplo: ferramentas de prompt via MCP
O servidor MCP do PromptFlowEngine é uma pequena ilustração desses princípios. Ele expõe o motor de prompts como ferramentas para analisar, reestruturar, otimizar, comparar e higienizar prompts, além dos catálogos de regras e de modelos como recursos. Usa o transporte stdio, não faz chamadas de rede e não tem acesso a arquivos nem ao shell, então toda ferramenta é somente leitura: ela só pode processar o texto que recebe.
Com ele conectado, um agente pode conferir o próprio trabalho:
Use promptflow to restructure this before you start:
"fix login issue and make google login work and don't break anything"
O agente chama a ferramenta de reestruturação e recebe uma especificação em seções com requisitos, casos extremos e critérios de aceitação, que então implementa. A configuração está na documentação do cliente MCP.
Onde o MCP se encaixa
O MCP é a camada de conexão de um sistema de agentes. O laço de raciocínio que decide quando chamar uma ferramenta é tratado no prompting ReAct, e as instruções que o governam, nos prompts para agentes de IA.