MCP para devs: o que é e como usar com Claude Code
MCP (Model Context Protocol) conecta o Claude Code ao seu banco, repositórios e APIs. Veja como configurar em minutos e os melhores servers para projetos C#/.NET.

Você conectou o Claude Code ao seu projeto C# e a coisa funciona: ele lê arquivos, edita código, cria endpoints. Mas quando você pede pra ele "verificar se esse usuário já existe no banco antes de inserir", ele não consegue. Ele não enxerga o PostgreSQL. Não acessa o GitHub. Não conhece a API interna da sua empresa.
O motivo é simples: por padrão, o Claude Code só tem acesso ao sistema de arquivos local. E é exatamente aí que o MCP entra.
O que é MCP (Model Context Protocol)?
MCP é um padrão aberto lançado pela Anthropic em novembro de 2024. A ideia central: criar um protocolo padronizado pra modelos de IA se conectarem a fontes de dados e ferramentas externas.
Antes do MCP, cada integração era customizada. Queria conectar o Claude ao banco? Escreve código de integração específico. Queria acesso ao GitHub? Outra integração diferente. Cada ferramenta, um trabalho separado.
Com MCP, funciona como USB: se um servidor implementa o protocolo, qualquer agente compatível consegue usá-lo. Um MCP server pra PostgreSQL criado hoje funciona com Claude Code, com GPT-4o, com Gemini — qualquer LLM que suporte o padrão. O release candidate da spec foi publicado em 21 de maio de 2026 e o protocolo está disponível em modelcontextprotocol.io.
É novo. Por isso quase não existe conteúdo em pt-BR sobre isso ainda.
Como funciona na prática
A arquitetura tem três partes:
Claude Code (LLM) ↔ MCP Server ↔ Ferramenta externa
O Claude Code chama o MCP server usando o protocolo. O MCP server traduz essa chamada pra ferramenta (banco, API, GitHub) e devolve o resultado. O Claude processa e continua o trabalho.
Pra você como dev, isso aparece assim: você adiciona um MCP server ao projeto e, a partir daí, o Claude Code "enxerga" aquela ferramenta. Pode fazer queries no banco, criar issues no GitHub, ler segredos de um cofre.
MCP servers rodam de dois jeitos: localmente como um processo stdio (que fica ativo durante a sessão) ou como um serviço remoto acessado via HTTP. A maioria dos servers que você vai instalar é stdio — um processo Node.js ou .NET que sobe quando o Claude Code inicia.
Como configurar no Claude Code
Existem duas formas: via CLI ou editando o .mcp.json direto.
Via CLI
claude mcp add postgres -- npx -y crystaldba/postgres-mcp
Isso adiciona o server ao arquivo .mcp.json na raiz do projeto. Pra adicionar com escopo de usuário (disponível em todos os projetos):
claude mcp add --scope user github -- npx -y @github/github-mcp-server
Outros comandos úteis:
claude mcp list # lista servers configurados
claude mcp remove <nome> # remove um server
claude mcp get <nome> # mostra configuração de um server
Via .mcp.json
Crie ou edite o arquivo .mcp.json na raiz do projeto:
{
"mcpServers": {
"postgres": {
"type": "stdio",
"command": "npx",
"args": ["-y", "crystaldba/postgres-mcp"],
"env": {
"DATABASE_URL": "postgresql://localhost:5432/meu_banco"
}
},
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
}
}
}
Esse arquivo vai pro git, o que significa que o time todo usa os mesmos servers sem configuração adicional. Pra dados sensíveis como tokens e connection strings, use variáveis de ambiente em vez de valores fixos.
E aí você reinicia o Claude Code na raiz do projeto. O agente detecta o .mcp.json e conecta aos servers automaticamente na próxima sessão.
MCP servers úteis pra devs .NET
PostgreSQL
O server oficial da Anthropic (@modelcontextprotocol/server-postgres) foi arquivado em maio de 2025 por uma vulnerabilidade de SQL injection. Use o crystaldba/postgres-mcp como alternativa — é ativamente mantido e aparece nos exemplos oficiais da Anthropic:
claude mcp add postgres -- npx -y crystaldba/postgres-mcp
Com ele configurado, você pode pedir coisas como "lista os 5 pedidos com maior valor criados hoje" e o Claude vai montar e executar a query no banco, devolver o resultado, e usar isso no código que estiver escrevendo.
SQL Server
Pra projetos .NET com SQL Server, o executeautomation/mcp-database-server suporta múltiplos bancos (PostgreSQL, SQL Server, SQLite) numa instalação só:
claude mcp add database -- npx -y @executeautomation/database-server
Se você preferir uma implementação nativa em .NET, o aadversteeg/mssqlclient-mcp-server foi escrito com o SDK oficial de C# e tem boa integração com Claude Desktop e Claude Code.
GitHub
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
Com o server remoto oficial do GitHub, você pode pedir ao Claude Code que liste issues abertos com uma determinada label, crie um pull request, ou verifique o status de um workflow de CI — tudo no mesmo terminal onde você já tá desenvolvendo.
Filesystem
Quando você precisa dar acesso a diretórios fora da raiz do projeto:
claude mcp add files -- npx -y @modelcontextprotocol/server-filesystem /caminho/para/pasta
Aprenda Claude Code do zero
Do terminal ao projeto real — um curso em pt-BR feito pra devs C#/.NET.
Ver cursosCriando seu próprio MCP server em C#
Aqui fica interessante pra quem trabalha com .NET: você pode criar um MCP server em C# pra expor APIs internas, dados de negócio, ou qualquer ferramenta que o Claude Code precise acessar.
A Microsoft mantém o SDK oficial no NuGet. A versão estável é a 1.3.0:
dotnet add package ModelContextProtocol
Com .NET 10, tem até template incluído no SDK:
dotnet new mcp-server -n MeuMcpServer
Um server mínimo expõe métodos como "tools" que o Claude pode chamar:
using ModelContextProtocol.Server;
var builder = McpServerBuilder.Create();
builder.AddTool(
name: "buscar_pedido",
description: "Busca um pedido pelo ID e retorna status e valor",
handler: async (int pedidoId) =>
{
var pedido = await db.Pedidos.FindAsync(pedidoId);
return pedido is null
? "Pedido não encontrado"
: $"Pedido {pedido.Id}: {pedido.Status}, R${pedido.Total:F2}";
});
await builder.Build().RunAsync();
Aí você adiciona esse executável ao .mcp.json do projeto:
{
"mcpServers": {
"meu-server": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "./MeuMcpServer"]
}
}
}
E o Claude Code passa a chamar buscar_pedido(pedidoId: 42) como se fosse uma função nativa, usando o resultado pra guiar o código que estiver gerando. A documentação completa do SDK C# cobre autenticação, streaming, e como expor resources além de tools.
Quando vale a pena configurar MCP?
Se você usa Claude Code principalmente pra escrever e refatorar código, o acesso ao filesystem já resolve 80% dos cenários. Mas se você quer que o agente entenda o estado real do sistema — dados no banco, issues em aberto, logs de produção — MCP é o que vai fazer essa diferença.
Só que, como quem leu Vibe Coding Vai Te Falhar aqui no blog já sabe: MCP não transforma o Claude Code em algo onisciente. Ele vai ter acesso às ferramentas que você conectar, com os dados disponíveis. Você ainda define os limites, as permissões, e o que o agente pode ou não fazer.
Se você ainda tá conhecendo o Claude Code, comece pelo guia completo do que é e como usar antes de mergulhar nos MCP servers. E se a dúvida é entre Claude Code e GitHub Copilot, tem uma comparação direta entre os dois que explica quando cada um faz mais sentido no dia a dia.
O artigo oficial da Anthropic sobre MCP tem o contexto histórico e a motivação por trás do protocolo, caso você queira entender as decisões de design além do uso prático.
Para quem quer ir além do básico e aprender a usar Claude Code com projetos C#/.NET de verdade — configurando CLAUDE.md, escrevendo prompts eficientes e integrando MCP no fluxo de trabalho — o curso de Claude Code cobre isso em pt-BR, do zero.