🔌 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, fontes de dados e serviços externos. Antes do MCP, cada integração de IA era uma implementação personalizada e pontual. O MCP padroniza como clientes de IA se comunicam com capacidades externas — assim uma integração funciona 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 querem 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 telefone não funcionava com um laptop, um cabo de vídeo não funcionava com dispositivos de armazenamento. 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
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: Cliente conecta ao servidor, troca versão do protocolo e capacidades
- Descobrir: 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 a raciocinar
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/cloud, equipes compartilhadas | Servidor roda de forma independente; 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 incorporado em APIs de IA específicas — OpenAI, Anthropic, Google — que permite definir funções personalizadas que o modelo pode invocar. MCP é uma camada por cima ou ao lado do function calling que padroniza como essas funções são descobertas e conectadas.
| Function Calling | MCP | |
|---|---|---|
| Scope | Específico da API, por requisição | Multiplataforma, padronizado |
| Discovery | Hardcoded na sua chamada de API | Dinâmico — 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 provedor único | Sistemas de produção multi-ferramenta, multi-modelo |
Na prática, servidores MCP frequentemente usam function calling internamente — 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 Dá Suporte ao 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 no Claude.ai e Claude Code
- Cursor — servidores MCP para assistência de IA com consciência de código
- VS Code (GitHub Copilot) — integração MCP em modo agente
- Windsurf (Codeium) — suporte a servidor MCP
- Continue.dev — assistente de IDE open-source com MCP
Servidores MCP populares
- Filesystem — leitura/escrita 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 de ferramentas de produtividade
🚀 Começando com MCP
Opção 1: Use servidores MCP existentes (5 minutos)
A maneira 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 em resultados de ferramentas manipula a IA | Sanitize a saída das ferramentas; use modelos separados para raciocínio e para ação |
| Servidores com privilégios excessivos | O servidor MCP tem mais permissões do que o necessário | Princípio do menor privilégio; somente leitura onde possível |
| Confused deputy | A IA age em nome do atacante sem o conhecimento do usuário | Confirmação HITL para ações destrutivas/irreversíveis |
| Cadeia de fornecimento 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 de IA — incluindo como a injeção de prompt pode ser armazenada através de resultados de ferramentas MCP — veja nosso guia: Explicação sobre Injeção de Prompt.