Claude Code já vem, “out of the box”, com a capacidade de ler arquivos locais, executar comandos no terminal e editar o código-fonte do projeto. No entanto, em tarefas reais de desenvolvimento, isso muitas vezes não é suficiente: surge a necessidade de obter informações de um banco de dados PostgreSQL, verificar Pull Requests abertos no GitHub, puxar documentação atualizada da nuvem ou enviar requisições para uma API corporativa interna.
É exatamente para resolver esse problema que foi criado o Model Context Protocol (MCP) — um padrão aberto que transforma o Claude Code de um simples assistente local em um centro completo de orquestração de sistemas e serviços externos.
Neste guia prático, analisaremos a arquitetura do MCP, aprenderemos a conectar servidores oficiais prontos, exploraremos a criação de um servidor próprio em TypeScript e consolidaremos as habilidades com tarefas práticas reais.
1. O que é um MCP Server
Model Context Protocol (MCP) — protocolo de comunicação aberto, desenvolvido pela Anthropic, que padroniza a interação entre modelos de linguagem (LLMs) e ferramentas externas ou fontes de dados.
Em vez de escrever plugins únicos separados para cada serviço, o MCP introduz uma interface cliente-servidor unificada.
Qualquer MCP Server fornece ao modelo três primitivos básicos:
- Tools (Ferramentas) — funções executáveis com esquema JSON tipado de parâmetros, que o Claude Code pode chamar autonomamente durante a resolução de uma tarefa (por exemplo,
create_issue,execute_query). - Resources (Recursos) — dados passivos ou esquemas que o assistente pode ler como contexto de entrada (arquivos, esquemas de BD, logs).
- Prompts (Templates de Prompts) — cenários de contexto prontos que simplificam a execução de tarefas típicas repetitivas.
Comparação das capacidades do Claude Code
| Cenário de trabalho | Sem MCP (Claude Code básico) | Com MCP Servers conectados |
|---|---|---|
| Trabalho com arquivos | Apenas dentro do diretório atual do projeto | Acesso a qualquer diretório permitido e notas |
| Dados do repositório | Arquivos locais via git diff / git log | Leitura de issues, PRs, code reviews e API do GitHub |
| Bancos de dados | Somente se um cliente CLI local estiver instalado | Leitura direta de esquemas, tabelas e execução de SQL |
| Busca de informações | grep / ripgrep local nos arquivos | Busca na web em tempo real via Brave/Tavily |
| Serviços internos | Inacessíveis sem escrever scripts bash complexos | Chamada de funções de APIs internas via SDK tipado |
2. Arquitetura e princípio de funcionamento do MCP
A arquitetura de interação baseia-se no padrão JSON-RPC 2.0. Na maioria dos cenários locais, a comunicação ocorre através dos fluxos padrão de entrada/saída (stdio), enquanto para servidores remotos usa-se Server-Sent Events (SSE) ou HTTP.
Ciclo de vida passo a passo de uma requisição
- Inicialização e Handshake: Ao iniciar uma sessão, o Claude Code lê o arquivo de configuração, inicia os processos dos servidores especificados e solicita a lista de ferramentas suportadas (
tools/list). - Publicação de capacidades: Cada MCP Server retorna uma lista de seus métodos junto com esquemas JSON de parâmetros e descrições detalhadas de propósito.
- Avaliação da intenção: Quando você define uma tarefa em linguagem natural, o Claude compara sua solicitação com as ferramentas disponíveis.
- Chamada da ferramenta: Se a tarefa exigir dados externos, o modelo envia uma requisição estruturada
tools/callao servidor com argumentos válidos. - Execução no lado do servidor: O servidor conecta-se à API externa, banco de dados ou disco e retorna o resultado ao cliente.
- Geração da resposta: Após receber os dados brutos, o Claude interpreta-os e fornece a resposta final estruturada.
A interação é transparente para o desenvolvedor: você não precisa lembrar nomes de funções ou sintaxe de API. O Claude escolhe autonomamente a ferramenta mais adequada com base no contexto da tarefa.
3. Como conectar um MCP Server ao Claude Code
A conexão de servidores é feita através de configuração JSON no bloco mcpServers. O Claude Code suporta dois níveis de configuração:
- Configuração do projeto (
.claude/settings.json) — aplica-se exclusivamente ao diretório atual e pode ser salva no repositório para toda a equipe. - Configuração global (
~/.claude/settings.json) — disponível para todos os projetos do usuário atual no computador.
json{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@anthropic-ai/mcp-filesystem", "./docs" ] } } }
Estrutura dos parâmetros de configuração
Cada registro de servidor na seção mcpServers consiste em três campos principais:
| Parâmetro | Tipo | Obrigatório | Descrição e propósito | Exemplos de valores |
|---|---|---|---|---|
command | string | Sim | Comando executável para iniciar o processo do servidor | "npx", "node", "uvx", "docker" |
args | string[] | Sim | Array de argumentos de inicialização (nome do pacote, caminhos, parâmetros) | ["-y", "@anthropic-ai/mcp-filesystem", "/path"] |
env | object | Não | Dicionário de variáveis de ambiente para autorização e chaves de API | {"GITHUB_TOKEN": "ghp_...", "DEBUG": "1"} |
Se você usar ferramentas em Python, em vez de npx pode usar uvx (do gerenciador de pacotes uv), por exemplo: "command": "uvx", "args": ["mcp-server-git"].
4. Catálogo de MCP Servers prontos
A Anthropic e a comunidade open-source desenvolveram servidores prontos para as ferramentas mais populares. Você não precisa escrever código do zero — basta conectar o pacote npm ou python correspondente.
| Servidor | Pacote oficial | Acesso / Autenticação | Principais funcionalidades |
|---|---|---|---|
| Filesystem | @anthropic-ai/mcp-filesystem | Caminhos para pastas locais permitidas | Leitura, escrita e busca em diretórios externos |
| GitHub | @anthropic-ai/mcp-github | Personal Access Token (GITHUB_TOKEN) | Busca em repositórios, análise de issues, abertura de PRs |
| PostgreSQL | @anthropic-ai/mcp-postgres | String de conexão (connectionString) | Inspeção de esquemas, leitura de tabelas, execução de consultas SQL |
| Brave Search | @anthropic-ai/mcp-brave-search | Chave de API de busca (BRAVE_API_KEY) | Acesso a informações atuais da internet sem alucinações |
1. Filesystem Server
Fornece ao Claude Code acesso a diretórios fora do repositório atual (por exemplo, pasta global de documentação ou notas do Obsidian).
2. GitHub Server
Permite que o assistente trabalhe diretamente com repositórios da organização: ler issues, deixar comentários em PRs e verificar status de pipelines.
3. PostgreSQL Server
Possibilita que o Claude execute consultas analíticas ou diagnósticas diretamente no seu banco de dados local ou remoto.
4. Brave Search Server
Integra o motor de busca web, permitindo que o assistente encontre documentação fresca, soluções para bugs recentes ou mudanças em bibliotecas.
5. Como o Claude Code usa o MCP no diálogo
Após adicionar o servidor à configuração, você não precisa inserir comandos especiais ou prefixos. O Claude Code analisa sua solicitação em linguagem natural e decide autonomamente quando chamar uma ferramenta.
Exemplo de cenário: trabalho com GitHub
Solicitação do usuário:
"Verifique quais issues abertas estão atribuídas a mim no repositório acme/platform e liste as mais prioritárias."
Processo interno do Claude Code:
- O modelo reconhece que arquivos locais são insuficientes para responder.
- Ele forma uma chamada
mcp__github__search_issuescom filtrosrepo:acme/platform state:open assignee:@me. - Recebe uma resposta JSON estruturada do servidor GitHub.
- Formata a resposta em um layout conveniente.
6. Criando seu próprio MCP Server em TypeScript
Se as soluções prontas forem insuficientes e você precisar de uma ferramenta específica para lógica de negócio ou microsserviços internos, um MCP Server pode ser escrito em poucos minutos usando o SDK oficial @modelcontextprotocol/sdk.
Passo 1. Inicialização e instalação de dependências
Crie um diretório separado e instale as bibliotecas:
Passo 2. Implementação do servidor (server.ts)
Crie o arquivo server.ts com a definição do servidor e uma ferramenta customizada:
Passo 3. Conectando o servidor ao Claude Code
Adicione o servidor criado ao .claude/settings.json do seu projeto:
O uso da utilidade tsx permite executar arquivos TypeScript diretamente, sem necessidade de build prévio via tsc.
7. Segurança e isolamento ao trabalhar com MCP
O MCP aumenta significativamente a autonomia do Claude Code, mas dá ao código a capacidade de interagir com seu sistema operacional e serviços externos. Para manter a segurança do ambiente de trabalho, siga estas regras:
1. O servidor executa com suas permissões de sistema
O MCP Server roda no contexto do usuário atual do sistema operacional. Se o servidor tiver erros ou contiver código malicioso, ele poderá ler arquivos aos quais seu usuário tem acesso.
2. Proteção de segredos e chaves de API
Nunca armazene chaves de produção no repositório. Use a configuração global ~/.claude/settings.json para tokens sensíveis ou passe variáveis de ambiente via arquivos .env incluídos no .gitignore.
3. Verificação de pacotes de terceiros antes da conexão
Sempre audite o repositório ou pacote npm de um MCP Server de terceiros antes de adicioná-lo à configuração:
- Certifique-se de que o código-fonte é aberto.
- Verifique o número de downloads e a atividade do repositório.
- Observe as requisições de rede que o servidor faz durante a inicialização.
4. Separação dos níveis de configuração
Evite conectar servidores com permissão de escrita em bancos de dados de produção (Production DB) em modo de desenvolvimento. Para testes, use réplicas Read-Only separadas ou containers Docker locais.
8. Workshop prático: configuração passo a passo
Execute duas tarefas práticas para consolidar o material e verificar a correção da conexão dos servidores.
Tarefa 1. Conectando o GitHub MCP Server
- Crie um novo Personal Access Token (classic ou fine-grained) no GitHub na seção
Settings→Developer settingscom permissõesrepoeread:org. - Abra ou crie o arquivo de configuração
~/.claude/settings.json:
- Inicie uma nova sessão do Claude Code e execute o prompt de verificação:
Prompt para teste:
"Mostre meus 5 últimos repositórios atualizados no GitHub e seu status."
- O Claude Code chamou a ferramenta GitHub com sucesso, sem erros de autenticação.
- Foi obtida uma lista atualizada de repositórios.
Tarefa 2. Conectando o Filesystem Server para notas externas
Dê ao Claude acesso a uma pasta externa com documentação ou notas de arquitetura:
- Adicione o servidor
filesystemao.claude/settings.json:
- Teste o funcionamento com uma consulta ao Claude:
Prompt para teste:
"Encontre na pasta external-docs todos os arquivos markdown que descrevem a arquitetura da API e faça um resumo breve deles."
- O Claude leu arquivos fora do diretório de trabalho do projeto.
- Resumiu as informações encontradas sem perda de contexto.
9. Autoavaliação rápida de conhecimentos
Verifique quão bem você assimilou os princípios fundamentais da arquitetura do Model Context Protocol.
Questão 1. Qual é o propósito básico de um MCP Server?
- A. Máquina virtual na nuvem para hospedar modelos Claude
- B. Programa adaptador que fornece ao modelo de linguagem acesso padronizado a ferramentas e dados externos
- C. Biblioteca para compressão automática de embeddings vetoriais
- D. Web server para publicar código compilado do projeto
Resposta correta: B.
Um MCP Server é um processo local ou remoto que atua como ponte entre o modelo e serviços de terceiros, fornecendo ao modelo Tools, Resources e Prompts padronizados.
Questão 2. Em qual arquivo fica a configuração de servidores destinada apenas a um repositório específico?
- A.
~/.claude/settings.json - B.
package.json - C.
.claude/settings.jsonna raiz do projeto - D.
CLAUDE.md
Resposta correta: C.
Para configuração no nível de um projeto individual, usa-se .claude/settings.json. O arquivo no diretório home ~/.claude/settings.json é responsável pelas ferramentas globais do desenvolvedor.
Questão 3. Como o Claude Code sabe qual ferramenta usar para responder a uma pergunta?
- A. O usuário deve explicitamente indicar a flag
--tool=nameantes de cada requisição - B. É necessário chamar previamente o comando
/mcp select - C. O modelo analisa a semântica da requisição e as descrições dos esquemas JSON das ferramentas, escolhendo a relevante autonomamente
- D. Todas as ferramentas são chamadas simultaneamente e resultados extras são descartados
Resposta correta: C.
Graças às descrições e esquemas de parâmetros padronizados, o Claude avalia a intenção do usuário e chama autonomamente a ferramenta necessária, passando argumentos válidos.
10. Conclusões e checklist de arquitetura
O Model Context Protocol torna o Claude Code um ambiente agentic flexível. Em vez de copiar manualmente conteúdo de arquivos ou esquemas de banco de dados para o diálogo, você configura canais de comunicação permanentes uma única vez.
Checklist de prontidão do seu ambiente
- Níveis de configuração: Serviços globais (GitHub, Web Search) movidos para
~/.claude/settings.json, enquanto específicos do projeto (BD, documentação) ficam em.claude/settings.json. - Segurança: Tokens e senhas não são commitados em repositórios públicos; bancos de dados conectados com privilégios mínimos necessários (Read-Only para análise).
- Teste de ferramentas: O funcionamento dos servidores foi verificado com consultas direcionadas após o início da sessão.
- Extensibilidade: Para tarefas internas específicas, foi criado um template de servidor próprio em TypeScript via
@modelcontextprotocol/sdk.