Do Prompt ao Prático: Integrando seu Próprio Servidor MCP ao Claude Desktop

03 de abril de 2026
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:

  1. Você dá um comando em linguagem natural.
  2. O Claude identifica a intenção e chama uma tool (ferramenta) do seu servidor.
  3. Seu código Go executa a lógica e devolve um JSON.
  4. 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.log

Você 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=delivered

No 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?