Claude Code: MCP (Model Context Protocol)
Última atualização: 2026-08-31
O MCP permite que o Claude Code vá além de ler/escrever arquivos locais — através de servidores MCP, pode conectar a bancos de dados, operar browsers, chamar APIs, com expansão de capacidade ilimitada.
📋 Pré-requisitos: Capítulo 11 - Configuração de Permissões
1. O Que Você Vai Aprender
- Conceitos e arquitetura central do MCP
- Configuração de servidor MCP
- Práticas com servidores MCP comuns
- Servidores MCP customizados
- Segurança e permissões do MCP
2. Conceitos Centrais do MCP
(1) Visão Geral da Arquitetura
graph LR
CC[Claude Code] <--> MCP[MCP Client]
MCP <--> S1[Filesystem Server]
MCP <--> S2[Database Server]
MCP <--> S3[GitHub Server]
MCP <--> S4[Browser Server]
| Conceito | Descrição | Analogia |
|---|---|---|
| MCP Host | Programa que executa o modelo de IA | Browser |
| MCP Client | Comunica-se com o Server | HTTP Client |
| MCP Server | Fornece ferramentas e dados | HTTP Server |
| Tool | Operação exposta pelo Server | API Endpoint |
| Resource | Dados expostos pelo Server | API Resource |
(2) Capacidades do MCP
| Capacidade | Sem MCP | Com MCP |
|---|---|---|
| Ler arquivos locais | ✅ Integrado | ✅ Integrado |
| Escrever arquivos locais | ✅ Integrado | ✅ Integrado |
| Executar Shell | ✅ Integrado | ✅ Integrado |
| Consultar banco de dados | ❌ | ✅ PostgreSQL MCP |
| Operar GitHub | ❌ (apenas CLI) | ✅ GitHub MCP |
| Automação de browser | ❌ | ✅ Browser MCP |
| Buscar na web | ❌ | ✅ Search MCP |
▶ Exemplo 1: Fluxo de Trabalho com MCP
# Sem MCP: Consulta manual ao banco
> Check how many records are in the users table
Claude Code: I can't access the database directly. Run:
psql -c "SELECT COUNT(*) FROM users"
# Com MCP (PostgreSQL Server): Consulta direta
> Check how many records are in the users table
Claude Code: [Query via PostgreSQL MCP]
users table has 12,450 records.
Active users: 8,920 (71.6%),
Registered in last 7 days: 342.
3. Configuração de Servidor MCP
(1) Configuração Global
// ~/.claude/mcp_settings.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-filesystem", "/home/user/projects"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
}
(2) Configuração em Nível de Projeto
// .claude/mcp_settings.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxxxx"
}
}
}
}
4. Servidores MCP Comuns
(1) Servidores MCP Oficiais
| Server | Função | Comando de Instalação |
|---|---|---|
| Filesystem | Operações de arquivo aprimoradas | npx -y @anthropic/mcp-filesystem |
| PostgreSQL | Consultas de banco de dados | npx -y @anthropic/mcp-postgres |
| GitHub | Operações de API do GitHub | npx -y @anthropic/mcp-github |
| GitLab | Operações de API do GitLab | npx -y @anthropic/mcp-gitlab |
| Browser | Automação de browser | npx -y @anthropic/mcp-browser |
| Brave Search | Busca na web | npx -y @anthropic/mcp-brave-search |
▶ Exemplo 2: Prática com PostgreSQL MCP
> Query user registrations in the last 7 days, grouped by day
Claude Code: [Using PostgreSQL MCP]
→ Executing SQL query...
Results: 7-day breakdown with daily counts
5. Servidor MCP Customizado
▶ Exemplo 3: Criar Servidor MCP Simples
import { Server } from "@anthropic/mcp";
const server = new Server({
name: "weather",
version: "1.0.0",
});
server.tool("get_weather", "Get current weather for a city", {
city: { type: "string", description: "City name" },
}, async ({ city }) => {
const response = await fetch(
`https://api.weather.com/current?city=${city}`
);
const data = await response.json();
return {
content: [{
type: "text",
text: `${city}: ${data.temperature}°C, ${data.condition}`
}]
};
});
server.start();
6. Segurança e Permissões do MCP
| Prática | Descrição |
|---|---|
| Menor privilégio | Apenas configure servidores MCP necessários |
| Variáveis de ambiente | Tokens/senhas via env vars, não hardcodados |
| Somente leitura primeiro | MCP de banco prefere conexões somente leitura |
| Logs de auditoria | Registrar histórico de chamadas de ferramentas MCP |
| Isolamento de rede | Não expor bancos de dados de produção ao MCP |
❓ Perguntas Frequentes
P: Diferença entre MCP e chamadas de API? R: MCP é um protocolo padronizado fornecendo descoberta e invocação unificada de ferramentas. Chamadas de API precisam de código hardcodado; MCP permite ao Claude Code descobrir e usar ferramentas dinamicamente.
P: Servidores MCP deixam o Claude Code mais lento? R: Levemente mais lento na inicialização (carregando config MCP), mas apenas chamadas de ferramentas MCP consomem tempo durante execução. Operações regulares não são afetadas.
P: Como debugar problemas de conexão MCP? R: Execute
claude /mcppara ver servidores conectados e ferramentas. Verifique caminhos de arquivo de config e variáveis de ambiente.
P: MCP pode conectar a bancos de dados de produção? R: Tecnicamente sim, mas fortemente não recomendado. Use réplicas somente leitura ou bancos de desenvolvimento.
📖 Resumo
- MCP permite ao Claude Code conectar ao mundo exterior: bancos de dados, GitHub, browsers, etc.
- Configure via
mcp_settings.json - Servidores oficiais: Filesystem, PostgreSQL, GitHub, Browser, etc.
- Servidores MCP customizados podem expandir capacidades
- Segurança primeiro: menor privilégio, preferência por somente leitura, env vars para credenciais
📝 Exercícios
- Básico (⭐): Configure o servidor Filesystem MCP, verifique que operações de arquivo aprimoradas funcionam.
- Intermediário (⭐⭐): Configure PostgreSQL MCP, consulte e analise resultados de banco de dados com o Claude Code.
- Avançado (⭐⭐⭐): Crie um servidor MCP customizado fornecendo funcionalidade de negócio específica, integre ao Claude Code.