MCP Servers
Model Context Protocol — protocolo padrão aberto para conectar LLMs a ferramentas externas. Permite que Claude acesse bancos de dados, APIs, sistemas de arquivos remotos, e muito mais.
Configuração em settings.json
Adicione servidores MCP na chave mcpServers do seu settings.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/user/Documents"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_CONNECTION_STRING": "postgresql://..."
}
}
}
}Servidores MCP oficiais (Anthropic)
| Pacote | Descrição |
|---|---|
@modelcontextprotocol/server-filesystem | Acesso a arquivos locais |
@modelcontextprotocol/server-github | GitHub API (issues, PRs, repos) |
@modelcontextprotocol/server-postgres | PostgreSQL queries |
@modelcontextprotocol/server-sqlite | SQLite queries |
@modelcontextprotocol/server-fetch | HTTP requests |
@modelcontextprotocol/server-brave-search | Brave Search API |
@modelcontextprotocol/server-puppeteer | Controle de browser |
@modelcontextprotocol/server-slack | Slack API |
@modelcontextprotocol/server-memory | Memória KV persistente |
Adicionando MCP server via CLI
# Adicionar servidor filesystem
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem ~/docs
# Adicionar servidor github
claude mcp add github npx @modelcontextprotocol/server-github
# Listar servidores configurados
claude mcp list
# Remover servidor
claude mcp remove filesystem
# Adicionar servidor remoto via HTTP
claude mcp add --transport http vercel https://mcp.vercel.comCriando seu próprio MCP server (TypeScript)
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({
name: "meu-server",
version: "1.0.0",
}, {
capabilities: { tools: {} }
});
// Registrar ferramenta
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{
name: "consultar_api",
description: "Consulta nossa API interna",
inputSchema: {
type: "object",
properties: {
endpoint: { type: "string" },
params: { type: "object" }
}
}
}]
}));
// Implementar ferramenta
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "consultar_api") {
const result = await fetch(
`https://api.minha-empresa.com/${request.params.arguments.endpoint}`
);
return { content: [{ type: "text", text: JSON.stringify(await result.json()) }] };
}
});
const transport = new StdioServerTransport();
await server.connect(transport);As 3 Primitivas do MCP
Todo servidor MCP expõe dados e ações através de três primitivas distintas. Entender quando usar cada uma é fundamental para criar servidores bem projetados.
| Primitiva | Controlado por | Uso | Exemplo |
|---|---|---|---|
| Tools | Modelo (Claude decide quando chamar) | Ações e chamadas externas — qualquer coisa que executa | create_issue(), query_db(), send_email() |
| Resources | Aplicação (a app decide o que expor) | Dados somente-leitura — arquivos, registros, configurações | file://readme.md, db://users/123 |
| Prompts | Usuário (invocado explicitamente) | Templates pré-elaborados para fluxos comuns | /review-pr, /summarize-ticket |
Regra prática: Use Tools para tudo que faz algo (criar, modificar, consultar). Use Resources para expor dados que o Claude lê passivamente. Use Prompts para encapsular fluxos de trabalho frequentes que o usuário ativa explicitamente.
MCP Inspector — testando seu servidor
O SDK Python inclui o MCP Inspector, uma interface visual para testar e depurar servidores MCP sem precisar conectar o Claude:
# Instalar o MCP Inspector
npx @modelcontextprotocol/inspector
# Rodar seu servidor e abrir o inspector
npx @modelcontextprotocol/inspector python server.py
# O Inspector abre em http://localhost:5173
# Permite testar tools, resources e prompts interativamenteServidores MCP populares da comunidade
| Servidor | Descrição |
|---|---|
| Vercel MCP | Deployments, logs, projetos Vercel |
| Linear MCP | Issues e projetos Linear |
| Jira MCP | Tickets Atlassian |
| Figma MCP | Design tokens e componentes |
| AWS MCP | Recursos AWS |
Exercício
Configure o servidor @modelcontextprotocol/server-filesystem para acessar ~/Documents e peça ao Claude: "liste todos os PDFs em meus documentos". Observe como o Claude usa a ferramenta MCP para executar a tarefa.