🔌 O que é MCP?
The Model Context Protocol (MCP) é um padrão aberto publicado pela Anthropic em dezembro de 2024 que define uma interface universal para conectar modelos de IA a ferramentas externas, fontes de dados e serviços. Antes do MCP, cada integração de IA era uma implementação personalizada e pontual. O MCP padroniza como os clientes de IA se comunicam com capacidades externas — para que uma integração funcione com qualquer sistema de IA compatível.
MCP é um protocolo cliente-servidor: Clientes MCP são sistemas de IA (como Claude, Cursor, VS Code com Copilot) que desejam usar capacidades externas. Servidores MCP são serviços que expõem essas capacidades (GitHub, um banco de dados, um sistema de arquivos, um navegador) através de uma API padronizada que qualquer cliente MCP pode consumir.
🔋 A metáfora USB-C
Antes do USB-C, cada dispositivo tinha seu próprio conector proprietário — um carregador de celular não funcionava com um laptop, um cabo de vídeo não funcionava com dispositivos de armazenamento. O USB-C resolveu isso com um padrão universal: uma porta, um cabo, dispositivos infinitos.
As integrações de IA antes do MCP eram o mesmo caos. Conectar Claude ao GitHub exigia código personalizado. Conectar GPT-4 à mesma API do GitHub exigia outro código personalizado. Adicionar uma nova ferramenta significava reconstruir integrações do zero para cada plataforma de IA.
MCP é o USB-C para IA. Um padrão:
- Construa um servidor MCP uma vez — qualquer cliente MCP pode usá-lo
- Adote um novo modelo de IA — seus servidores MCP existentes funcionam imediatamente
- O ecossistema de servidores MCP cresce independentemente do desenvolvimento de modelos de IA
⚙️ Como o MCP funciona
O MCP usa um protocolo JSON-RPC 2.0 sobre uma camada de transporte (stdio para servidores locais, HTTP/SSE para servidores remotos). A comunicação segue um ciclo de vida de inicialização, descoberta de capacidades e tratamento de requisições.
Três primitivas principais
| Primitive | O que ele expõe | Example |
|---|---|---|
| Tools | Funções que a IA pode chamar (controladas pelo modelo) | search_github_issues, run_sql_query, send_email |
| Resources | Dados que a IA pode ler (controlados pela aplicação) | file:///workspace/src, db://customers/schema |
| Prompts | Modelos de prompt reutilizáveis (controlados pelo usuário) | code-review, summarize-pr, explain-error |
O fluxo de comunicação
- Inicializar: O cliente conecta-se ao servidor, troca versão do protocolo e capacidades
- Descobrir: O cliente solicita a lista de ferramentas, recursos e prompts disponíveis
- Invocar: O modelo de IA decide chamar uma ferramenta; o cliente envia a requisição ao servidor
- Retornar: O servidor executa a ação e retorna resultados estruturados ao cliente
- Continuar: O modelo de IA incorpora os resultados e continua raciocinando
Opções de transporte
| Transport | Melhor para | Notes |
|---|---|---|
| stdio | Ferramentas locais, integrações CLI | Cliente inicia o servidor como subprocesso; configuração mais simples |
| HTTP + SSE | Serviços remotos/em nuvem, equipes compartilhadas | Servidor executa independentemente; suporta cabeçalhos de autenticação |
| WebSocket | Bidirecional em tempo real (rascunho) | Proposto para casos de uso de streaming |
🔄 MCP vs Function Calling
Function calling (uso de ferramenta) é um recurso integrado em APIs específicas de IA — OpenAI, Anthropic, Google — que permite definir funções personalizadas que o modelo pode invocar. MCP é uma camada sobre ou ao lado do function calling que padroniza como essas funções são descobertas e conectadas.
| Function Calling | MCP | |
|---|---|---|
| Scope | Específico de API, por requisição | Multiplataforma, padronizado |
| Discovery | Codificado diretamente na sua chamada de API | Dinâmico — o servidor anuncia capacidades |
| Portability | Vinculado a um provedor de IA | Funciona com qualquer cliente compatível com MCP |
| Resources | Não padronizado | Primitiva de primeira classe (arquivos, DBs, URIs) |
| Melhor para | Casos simples, de um único provedor | Sistemas de produção com múltiplas ferramentas e múltiplos modelos |
Na prática, servidores MCP frequentemente usam function calling internamente — o MCP fornece a camada de descoberta e conexão, enquanto o function calling lida com a invocação real do LLM para a ferramenta.
🏢 Quem suporta MCP
A adoção do MCP cresceu rapidamente desde seu lançamento em dezembro de 2024. Em abril de 2026, o ecossistema inclui:
Clientes de IA com suporte a MCP
- Claude (Anthropic) — suporte nativo a MCP em Claude.ai e Claude Code
- Cursor — servidores MCP para assistência de IA com conhecimento de código
- VS Code (GitHub Copilot) — integração MCP em modo agent
- Windsurf (Codeium) — suporte a servidor MCP
- Continue.dev — assistente IDE open-source com MCP
Servidores MCP populares
- Filesystem — leitura/gravação de arquivos locais (oficial Anthropic)
- GitHub — repositórios, PRs, issues, busca de código
- PostgreSQL / SQLite — consulta de banco de dados e exploração de schema
- Brave Search / Exa — busca web sem chaves de API
- Puppeteer / Playwright — automação de navegador
- Slack / Linear / Notion — integrações com ferramentas de produtividade
🚀 Começando com MCP
Opção 1: Usar servidores MCP existentes (5 minutos)
A forma mais rápida de experimentar MCP é usando Claude Desktop com servidores pré-construídos. Edite sua configuração do Claude Desktop em ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
}
}
} Opção 2: Construir um servidor MCP (30 minutos)
SDKs oficiais estão disponíveis para TypeScript, Python e Kotlin:
// TypeScript MCP server example
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({ name: "my-server", version: "1.0.0" });
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: { city: { type: "string" } },
required: ["city"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
const { city } = request.params.arguments;
// ... fetch weather data
return { content: [{ type: "text", text: `Weather in ${city}: sunny, 22°C` }] };
});
const transport = new StdioServerTransport();
await server.connect(transport); 🔐 Considerações de Segurança do MCP
O poder do MCP — dar aos modelos de IA acesso a ferramentas, arquivos e serviços — também introduz riscos de segurança que os desenvolvedores devem projetar contra.
| Risk | Description | Mitigation |
|---|---|---|
| Injeção de prompt via MCP | Conteúdo malicioso nos resultados das ferramentas manipula a IA | Sanitizar a saída das ferramentas; usar modelos separados para raciocínio e ação |
| Servidores com privilégios excessivos | Servidor MCP tem mais permissões do que o necessário | Princípio do menor privilégio; leitura apenas quando possível |
| Confused deputy | IA age em nome do atacante sem o conhecimento do usuário | Confirmação HITL para ações destrutivas/irreversíveis |
| Cadeia de suprimentos do servidor | Servidor MCP de terceiros malicioso exfiltra dados | Use apenas servidores confiáveis e auditados; revise o código do servidor |
Para um mergulho mais profundo nas vulnerabilidades de segurança em IA — incluindo como a injeção de prompt pode ser armazenada através dos resultados das ferramentas MCP — veja nosso guia: Injeção de Prompt Explicada.