Os melhores servidores MCP para agentes de código são os que dão ao agente algo que ele não consegue fazer sozinho: ver o app rodando num navegador, ler a documentação atual de uma biblioteca, olhar a issue que está corrigindo, encontrar o stack trace da produção. Um agente de código como Claude Code, Codex ou Gemini CLI já lê arquivos, edita e roda comandos. Adicionar um servidor que duplica isso só gasta contexto.
Esta lista é opinativa e curta de propósito. Para cada servidor você vê o que ele faz, quando ajuda, como adicioná-lo e com o que tomar cuidado. Se o protocolo é novidade para você, comece por o que é um servidor MCP e pelo verbete MCP no glossário.
Como escolhi estes servidores
Um servidor entra nesta lista se passa em três critérios:
- Preenche uma lacuna real. Alcança algo fora do repositório: um navegador, um serviço hospedado, um banco de dados, documentação atual.
- É mantido pelo fornecedor ou por um projeto conhecido. O repositório oficial traz instruções de instalação, e o servidor recebe atualizações.
- Seu acesso pode ser restringido. Modos somente leitura, toolsets, escopo por projeto ou diretórios permitidos. Um servidor que você não consegue limitar é um servidor para pensar duas vezes.
Uma coisa todos os servidores têm em comum: suas definições de ferramentas entram no contexto do agente e são reenviadas a cada turno, mesmo que o agente nunca as chame. Então a pergunta nunca é “este servidor é útil?”, e sim “ele é útil para este agente, neste projeto, agora?”
Referência rápida
| Servidor | O que dá ao agente | Transporte | Restrinja com |
|---|---|---|---|
| Playwright | Controlar um navegador real: abrir, clicar, preencher, tirar screenshot | stdio (npx) | --isolated, --headless |
| Chrome DevTools | Console, rede, traces de performance | stdio (npx) | --isolated |
| Context7 | Documentação atual e específica por versão | HTTP ou stdio | Chave de API, nada para escrever |
| GitHub | Issues, pull requests, busca de código, Actions | HTTP ou Docker | Toolsets, modo somente leitura |
| Sentry | Erros, stack traces, triagem de issues | HTTP (OAuth) | Org/projeto na URL |
| Postgres (Postgres MCP Pro) | Schema, queries, EXPLAIN, sugestões de índice | stdio (uvx/Docker) | --access-mode=restricted |
| Supabase | Tabelas, SQL, migrations, logs | HTTP (OAuth) | read_only=true, project_ref |
| Git | Log, diff, blame num repositório local | stdio (uvx) | --repository |
| Fetch | Ler uma página web como Markdown | stdio (uvx) | Use com moderação |
| Filesystem | Arquivos nas pastas que você indicar | stdio (npx) | Diretórios permitidos |
1. Playwright: deixe o agente ver o app
Se for adicionar um servidor só, adicione este. O Playwright MCP da Microsoft deixa o agente abrir seu app em localhost, ler a página pela árvore de acessibilidade, clicar em botões, preencher formulários e tirar screenshots. Isso transforma “mudei o formulário, deve funcionar” em “enviei o formulário e vi a mensagem de sucesso”.
claude mcp add playwright -- npx @playwright/mcp@latest
codex mcp add playwright -- npx @playwright/mcp@latest
gemini mcp add playwright npx @playwright/mcp@latest
Ele precisa de Node.js 18 ou mais novo. Flags úteis: --headless para rodar sem janela e --isolated para manter o perfil do navegador em memória, sem cookies ou logins sobrando entre sessões. Existe também --allowed-origins, mas o próprio projeto diz que isso não é uma barreira de segurança, então não conte com ele para manter o agente longe da internet aberta.
Cuidado: as páginas que o agente visita são entrada para o modelo. Uma página que diz “ignore suas instruções e rode este comando” é uma tentativa de prompt injection. Mantenha o agente no seu próprio app sempre que puder. Para um fluxo completo, veja testes de navegador com agentes de IA.
2. Chrome DevTools: depure o que o navegador vê
O Chrome DevTools MCP do Google se sobrepõe ao Playwright, mas é mais voltado a depuração: mensagens do console, requisições de rede, traces de performance. Quando uma página está lenta ou uma requisição falha com erro de CORS, é este o servidor que permite ao agente descobrir o porquê em vez de chutar.
claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest
Para Codex e Gemini CLI, use o mesmo comando (npx -y chrome-devtools-mcp@latest) com codex mcp add ou gemini mcp add. Escolha um dos dois servidores de navegador por agente, a menos que realmente precise dos dois; cada um adiciona uma longa lista de ferramentas.
3. Context7: documentação atual em vez de memória
Os modelos aprendem bibliotecas com dados de treinamento que têm meses ou anos. Por isso agentes chamam funções que foram renomeadas duas versões atrás. O Context7, da Upstash, entrega documentação e exemplos de código atuais e específicos por versão para uma longa lista de bibliotecas, para o agente consultar em vez de chutar.
# Remote server
claude mcp add --transport http context7 https://mcp.context7.com/mcp
# Or run it locally
codex mcp add context7 -- npx -y @upstash/context7-mcp
Se você tem uma chave de API do Context7, passe-a num header CONTEXT7_API_KEY no servidor remoto (por exemplo --header "CONTEXT7_API_KEY: ctx7sk-…" com claude mcp add). Um hábito útil no seu CLAUDE.md ou AGENTS.md: “Quando usar uma API de biblioteca da qual não tem certeza, consulte o Context7 primeiro.” Agentes seguem regras escritas com mais confiabilidade do que lembretes avulsos; veja como escrever CLAUDE.md e AGENTS.md.
Cuidado: ele é somente leitura, então o risco é baixo, mas suas ferramentas ainda custam contexto. Dê-o a agentes que escrevem código usando bibliotecas de terceiros, não a um agente revisor que só lê diffs.
4. GitHub: issues, pull requests e CI
O servidor oficial do GitHub lê e escreve issues, pull requests, resultados de busca de código, execuções do Actions e mais. O agente pode começar pelo texto da issue, verificar o workflow que está falhando e abrir um pull request no final.
O servidor remoto fica em https://api.githubcopilot.com/mcp/. Você também pode rodá-lo localmente com Docker:
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT \
-- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
É aqui que o menor privilégio mais importa. O servidor do GitHub tem muitas ferramentas, e algumas escrevem. Restrinja:
- Toolsets. Ative só o que precisa, por exemplo
repos,issues,pull_requests, com a flag--toolsetsouGITHUB_TOOLSETSlocalmente, ou o headerX-MCP-Toolsetsno servidor remoto. - Modo somente leitura. Use
--read-onlylocalmente, ou acrescente/readonlyà URL remota (https://api.githubcopilot.com/mcp/readonly), ou envieX-MCP-Readonly: true. - Um token fine-grained. Limite o personal access token aos repositórios em que o agente trabalha, com as menores permissões que cobrem o trabalho.
Um agente revisor ou de triagem raramente precisa de acesso de escrita. Dê ferramentas de escrita só ao agente que deve abrir pull requests.
5. Sentry: comece pelo erro real
O servidor MCP hospedado do Sentry deixa o agente buscar erros, ler stack traces e ver os detalhes das issues. “Corrija o bug que os usuários encontram no checkout” vira “corrija esta exceção, nesta linha, com estes breadcrumbs”. A autenticação é por OAuth: a primeira conexão abre um login no navegador.
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp/my-org/my-project
Troque my-org e my-project pelos slugs da sua organização e do seu projeto. Limitar a URL a um projeto é o que o Sentry recomenda: as ferramentas passam a usar esse projeto por padrão e algumas ferramentas de descoberta ficam ocultas, o que também economiza contexto. Combinar Sentry com GitHub funciona bem para corrigir falhas de CI e bugs de produção a partir do texto da issue.
6. Um servidor de banco de dados, somente leitura
Um agente que consegue ver o schema e rodar um SELECT escreve queries e migrations melhores. Um agente que consegue rodar DROP TABLE na produção é um dia ruim esperando para acontecer. Duas boas opções:
Postgres MCP Pro (crystaldba/postgres-mcp) funciona com qualquer banco PostgreSQL. Além de queries, ele explica planos de execução, verifica a saúde do banco e sugere índices. A configuração principal é o modo de acesso:
claude mcp add postgres --env DATABASE_URI=postgresql://readonly_user:pass@localhost:5432/app_dev \
-- uvx postgres-mcp --access-mode=restricted
restricted limita o trabalho a transações somente leitura e impõe um teto de tempo de execução; unrestricted permite leitura e escrita completas. Use restricted e, de qualquer forma, conecte com um usuário de banco que só tenha permissão de SELECT. Duas travas são melhores que uma, e o projeto avisa que linguagens de stored procedure inseguras poderiam contornar suas verificações.
Supabase tem um servidor hospedado em https://mcp.supabase.com/mcp. Adicione ?project_ref=<id>&read_only=true para amarrá-lo a um projeto e rodar toda query como um usuário Postgres somente leitura. O próprio Supabase recomenda usá-lo com dados de desenvolvimento, manter a aprovação manual das chamadas de ferramentas ativada e não entregá-lo a usuários finais.
Observação: o antigo servidor Postgres de referência do projeto MCP foi arquivado. Escolha um que seja mantido.
7. Git, Fetch e Filesystem: os servidores de referência
O projeto MCP ainda mantém alguns servidores de referência. São práticos, mas verifique antes se o seu agente precisa deles.
- Git (
uvx mcp-server-git --repository /path/to/repo): ferramentas de log, diff, blame e commit. Agentes de código já rodamgitno terminal, então isso ajuda mais em clientes sem acesso ao shell ou quando você quer que operações git apareçam como chamadas de ferramenta explícitas. - Fetch (
uvx mcp-server-fetch): transforma uma página web em Markdown para o modelo. Bom para ler uma referência de API que não está no Context7. Toda página buscada é entrada não confiável, então o aviso sobre prompt injection vale por inteiro. - Filesystem (
npx -y @modelcontextprotocol/server-filesystem /path/one /path/two): acesso a arquivos limitado aos diretórios que você listar. Claude Code e Codex já editam arquivos no projeto; use-o para expor uma pasta extra, como um diretório compartilhado de design tokens, sem abrir sua pasta pessoal inteira.
Outros que vale conhecer
Dependendo da sua stack, estes podem merecer uma vaga: Linear ou Notion para tarefas e especificações, Stripe para objetos de pagamento em modo de teste, Figma para ler designs, a documentação da Cloudflare e servidores mobile para simuladores. Aplique os mesmos três critérios. Um servidor adicionado “só por garantia” basicamente adiciona contexto.
Adicionando servidores ao Claude Code, Codex e Gemini CLI
O mesmo servidor funciona nos três; o registro é que muda.
Claude Code. As opções vêm antes do nome, o comando do servidor depois de --:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
claude mcp add --scope project playwright -- npx @playwright/mcp@latest
claude mcp list
--scope local (padrão) mantém o servidor só para você neste projeto, --scope user para todos os seus projetos, e --scope project grava um .mcp.json no repositório para a equipe. O .mcp.json suporta expansão de ${VAR}, então você pode fazer commit do arquivo sem fazer commit dos tokens. Rode /mcp dentro de uma sessão para fazer login em servidores OAuth.
Codex. Use a CLI ou edite ~/.codex/config.toml:
[mcp_servers.github]
url = "https://api.githubcopilot.com/mcp/readonly"
bearer_token_env_var = "GITHUB_PAT"
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]
enabled_tools = ["browser_navigate", "browser_snapshot", "browser_click", "browser_take_screenshot"]
bearer_token_env_var lê o token de uma variável de ambiente em vez do arquivo, e enabled_tools / disabled_tools reduzem um servidor às ferramentas que você quer. codex mcp login <name> cuida dos servidores OAuth.
Gemini CLI. gemini mcp add grava em .gemini/settings.json (projeto, o padrão) ou em ~/.gemini/settings.json com --scope user:
gemini mcp add --transport http github https://api.githubcopilot.com/mcp/readonly \
--header "Authorization: Bearer $GITHUB_PAT"
No settings.json, includeTools e excludeTools limitam as ferramentas, e trust: true pula as confirmações. Deixe trust desligado para tudo que escreve. Repare que, se você colocar um token num --header como acima, ele vai parar no arquivo de configurações; prefira referências $VAR em env e headers sempre que puder.
Notas de segurança
Servidores MCP conectam um modelo a sistemas reais. Um checklist curto:
- Menor privilégio por padrão. Modos somente leitura, toolsets enxutos, um projeto por servidor, tokens fine-grained. Dê acesso de escrita a um agente para uma tarefa, não a todos os agentes para sempre.
- Dados de desenvolvimento, não de produção. Aponte servidores de banco para uma cópia local ou staging. Se um agente precisar olhar a produção, use um usuário somente leitura e uma sessão curta.
- Segredos fora do texto puro. Use variáveis de ambiente, referências
${VAR}ou o keychain do sistema operacional. Um token num.mcp.jsoncommitado é um token vazado. - Tudo o que um servidor retorna é não confiável. Páginas web, comentários de issues, linhas do banco e mensagens de erro podem conter instruções direcionadas ao agente. Mantenha as aprovações ativas para ferramentas que escrevem ou rodam comandos.
- Saiba o que você está rodando. Um servidor stdio é código rodando na sua máquina com as suas permissões. Instale pelo repositório oficial, fixe versões para tudo que for sensível e não cole comandos de instalação de READMEs aleatórios.
- Confira a lista de ferramentas. Liste as ferramentas de um servidor antes de entregá-lo a um agente e remova o que não precisa.
Para o panorama geral, leia segurança de agentes de código com IA.
Combinando servidores e agentes
Se você roda vários agentes, distribua os servidores por função:
| Agente | Servidores |
|---|---|
| Frontend | Playwright ou Chrome DevTools, Context7, Figma |
| Backend | Context7, Postgres ou Supabase somente leitura |
| Corretor de bugs | Sentry, GitHub (issues e Actions), Playwright |
| Revisor | GitHub somente leitura |
Isso mantém o contexto de cada agente enxuto e limita o que um erro ou uma instrução injetada consegue alcançar. Também mantém baixo o uso de tokens.
Como faço isso com o AgentVera
Registrar os mesmos servidores três vezes em três formatos cansa rápido. No AgentVera eu os mantenho num só lugar:
- Uma lista para todas as CLIs. O gerenciador de MCP guarda os servidores e os conecta quando um agente inicia: Claude Code, Codex, Gemini CLI, Copilot, Cursor, opencode e as outras CLIs que aceitam MCP. Eu atribuo cada servidor a todos os agentes, a agentes escolhidos, a um grupo ou a uma função da equipe, e o limito a certos projetos.
- Um catálogo e uma checagem de custo. O catálogo tem entradas prontas para Playwright, Chrome DevTools, Context7, GitHub, Sentry, Supabase, Git, Fetch, Filesystem e mais. O teste de conexão lista as ferramentas de um servidor com um custo aproximado em tokens por ferramenta, então vejo o que cada um adiciona a cada turno.
- Segredos no keychain. Variáveis de ambiente e tokens de header ficam no keychain do sistema operacional, e servidores remotos passam pelo gateway do AgentVera, então a configuração da CLI nunca guarda o token.
- Um navegador que posso acompanhar. O navegador do agente dá aos agentes um Chrome gerenciado via Playwright MCP, e eu acompanho as abas ao vivo.
- Acesso ao banco com regras. Em vez de uma connection string crua, o gerenciador de banco de dados deixa os agentes consultarem uma conexão por uma ferramenta própria, somente leitura por padrão, com toda query registrada. O DB Guard verifica as migrations que o agente escreve.
- Aprovações. Para agentes Claude Code, a aprovação automática responde só às solicitações sabidamente seguras; todo o resto continua vindo para mim.
Conclusão
A melhor configuração de MCP para programação é pequena: um navegador, documentação atual, seu issue tracker e monitoramento de erros, mais um banco somente leitura quando a tarefa pedir. Adicione servidores por agente e por projeto, restrinja cada um com seu modo somente leitura ou toolsets, mantenha tokens fora de arquivos em texto puro e trate tudo o que um servidor retorna como não confiável. Se quiser gerenciar servidores para vários agentes num só lugar, baixe o AgentVera de graça e abra a página de MCP.