Do Prompt ao Prático: Integrando seu Próprio Servidor MCP ao Claude Desktop
Eu sempre fui o tipo de desenvolvedor que adora uma automação (preguiçoso). Quando comecei a estudar ferramentas de IA achava que para conectar uma ferramenta externa eu precisaria de uma infraestrutura complexa, APIs expostas e camadas de segurança infinitas. Confesso que já perdi noites tentando "enfiar" dados no contexto de um LLM via copiar e colar, o que, convenhamos, é o oposto de ser produtivo.
Porém batendo cabeça dia após dia, acabei descobrindo que o segredo não é complexidade, mas sim o Model Context Protocol (MCP). Hoje vamos colocar esse servidor para rodar "dentro" do Claude Desktop.
O que acontece por baixo dos panos?
Antes de sair configurando arquivos, é importante entender a filosofia da coisa. O MCP não é mágica; é apenas um processo local conversando via JSON-RPC através do stdio (entrada e saída padrão).
Imagine que o Claude Desktop é o cliente e seu binário em Go é o servidor. Quando você faz uma pergunta, o fluxo segue este caminho:
- Você dá um comando em linguagem natural.
- O Claude identifica a intenção e chama uma tool (ferramenta) do seu servidor.
- Seu código Go executa a lógica e devolve um JSON.
- O Claude interpreta esse JSON e te responde de forma humana.
Configurando o Claude Desktop
A integração acontece em um arquivo de configuração específico.
- No macOS, ele fica escondido em:
~/Library/Application Support/Claude/claude_desktop_config.json - Se você estiver no Windows, procure por:
%APPDATA%\Claude\claude_desktop_config.json - No Linux a integração acontece no diretório de configuração padrão do usuário. O arquivo geralmente fica em:
~/.config/Claude/claude_desktop_config.json
O arquivo de configuração
Você precisará registrar seu servidor no objeto mcpServers. Veja como fica a estrutura:
{
"mcpServers": {
"meu-servidor-mcp": {
"command": "/home/seu-usuario/projetos/mcp-server/bin/mcp-server",
"args": []
}
}
}O pulo do gato aqui:
- Caminhos Absolutos: O Claude não entende o símbolo ~. Você precisa colocar o caminho completo (ex:
/home/malka/...). - Permissões: Garanta que seu binário seja executável (
chmod +x). - Restart: Sempre que alterar esse JSON, você precisa reiniciar o Claude Desktop completamente para que as mudanças surtam efeito.
Cenário Real: Uma ferramenta de Consulta a Banco de Dados
Em vez do clássico "Hello World", vamos imaginar que você criou uma ferramenta para consultar o status de pedidos em um banco de dados.
Quando você diz ao Claude: "Veja como está o pedido 4502", ele decide chamar a ferramenta get_order_status.
Exemplo de Log do Servidor
Para debugar, eu costumo deixar o log rodando no terminal para ver a comunicação em tempo real:
tail -f ~/Library/Logs/Claude/mcp-server-meu-servidor-mcp.logVocê verá algo assim quando a mágica acontece:
time=2026-05-11T10:00:00Z level=INFO msg="tool call started" tool=get_order_status id=4502
time=2026-05-11T10:00:00Z level=INFO msg="query success" status=deliveredNo final, o Claude te responde: "Malka, o pedido 4502 já foi entregue!". É a união perfeita entre lógica de negócio e interface conversacional.
Cuidados que você (provavelmente) vai esquecer
Eu mesmo já bati cabeça com isso. Existem duas regras de ouro para o seu servidor Go não "travar" o Claude:
Stdout é Sagrado: O stdout deve ser usado apenas para mensagens JSON-RPC. Se você der um fmt.Println("Iniciando servidor..."), o Claude vai tentar interpretar isso como JSON, vai falhar e fechar a conexão.
Logs no Stderr: Todas as suas mensagens de log, debug e erros devem ser enviadas para o stderr. No Go, garanta que seu logger (como o slog ou logrus) esteja configurado para os.Stderr.
Nomes das Ferramentas: Use apenas letras, números, underscores e hifens. Esqueça o ponto (ex: db.query é inválido; use db_query).
Conclusão: Aliança, não Ameaça
Configurar seu próprio servidor MCP é o primeiro passo para criar um assistente de engenharia personalizado. Em vez de lutar contra a IA, você está dando "braços" a ela para que ela possa acessar seus bancos de dados, APIs internas e scripts de automação.
A minha maior lição ao virar líder técnico foi entender que meu papel é facilitar a vida do time. Ter ferramentas que respondem dúvidas técnicas ou operacionais instantaneamente através do Claude é exatamente isso: escala através de autonomia.
E você, já pensou em qual tarefa repetitiva do seu dia a dia poderia ser resolvida com uma ferramenta customizada no Claude?
