MCP Hot-Reload
Um servidor proxy de Hot Module Replacement (HMR) para servidores MCP que reinicia automaticamente em alterações de arquivos, armazena mensagens em buffer e gerencia conexões.
Documentação
mcpmon
Monitor de hot-reload para servidores MCP - como o nodemon, mas para o Model Context Protocol
Faça alterações no código do seu servidor MCP e veja-as instantaneamente sem reiniciar seu cliente MCP. Assim como o nodemon reinicia automaticamente aplicações Node.js, o mcpmon reinicia automaticamente servidores MCP.
O que é
O mcpmon é um proxy transparente que fica entre seu cliente MCP (Claude Code, Claude Desktop, MCP Inspector, etc.) e seu servidor MCP. Quando você modifica o código do seu servidor, o mcpmon reinicia automaticamente o servidor enquanto mantém seu cliente conectado.
Principais benefícios:
- Como nodemon, mas para MCP - Interface de linha de comando simples que você já conhece
- Zero configuração - Basta envolver seu comando de servidor com o mcpmon
- Desenvolvimento sem interrupções - Seu cliente MCP permanece conectado enquanto o servidor recarrega
- Zero perda de mensagens - Requisições são armazenadas em buffer durante a reinicialização do servidor
- Compatibilidade universal - Funciona com qualquer servidor MCP (Node.js, Python, Deno, etc.)
- Suporte a biblioteca - Importe como dependência para soluções de monitoramento personalizadas
Início Rápido
-
Instale globalmente:
npm install -g mcpmon -
Use com seu servidor MCP:
# Instead of: node server.js mcpmon node server.js # Instead of: python server.py mcpmon python server.py # Instead of: deno run --allow-all server.ts mcpmon deno run --allow-all server.ts -
Use com clientes MCP:
# MCP Inspector npx @modelcontextprotocol/inspector mcpmon node server.js # For existing Claude Code/Desktop servers, use setup: mcpmon setup my-serverA configuração automática prepara seus servidores MCP existentes para hot-reload! ✨
É isso! Seu servidor MCP agora tem hot-reload habilitado. Edite o código do seu servidor e as alterações serão aplicadas instantaneamente.
Exemplos de Uso
Uso Básico
# Node.js server
mcpmon node server.js
# Python server
mcpmon python -m mcp_server
# Python with args
mcpmon python server.py --port 3000
# Deno server
mcpmon deno run --allow-all server.ts
# With debugging
mcpmon node --inspect server.js
Com MCP Inspector
# Direct command
npx @modelcontextprotocol/inspector mcpmon node server.js
# With environment variables
API_KEY=your-key npx @modelcontextprotocol/inspector mcpmon node server.js
Com Claude Code ou Claude Desktop
Forma mais fácil: Use o comando de configuração automática para servidores existentes:
# Setup hot-reload for an existing server
mcpmon setup my-server
# Setup all stdio servers for hot-reload
mcpmon setup --all
# List available servers
mcpmon setup --list
# Restore original config if needed
mcpmon setup --restore
O comando de configuração automaticamente:
- ✅ Faz backup da sua configuração original
- ✅ Detecta e usa versões modernas do Node.js para compatibilidade
- ✅ Envolve o comando do seu servidor com o mcpmon
- ✅ Preserva todas as variáveis de ambiente e argumentos
- ✅ Habilita hot-reload instantaneamente
- ✅ Idempotente - seguro para executar várias vezes
🔥 Dicas de Hot-Reload para Claude Desktop
Após configurar o hot-reload:
- Alterações de código: Seu servidor reinicia automaticamente - nenhuma ação necessária!
- Alterações de esquema (novas ferramentas/recursos): Alterne o servidor MCP desligado/ligado nas configurações do Claude Desktop
- Vá para Configurações do Claude Desktop → Recursos → Model Context Protocol
- Alterne seu servidor para desligado e depois para ligado
- Nenhuma reinicialização necessária - apenas o alternar!
- Alterações de configuração: Reinicie o Claude Desktop somente se você modificar o arquivo de configuração diretamente
Dica profissional: Para a melhor experiência de desenvolvimento, faça alterações de código primeiro e depois alterações de esquema. O Claude Desktop captará chamadas de ferramentas do código hot-reloaded mais recente mesmo após atualizações de esquema!
Configuração manual: Você também pode atualizar sua configuração manualmente:
Claude Code (~/.claude_code_config):
{
"mcpServers": {
"my-server": {
"command": "mcpmon",
"args": ["node", "server.js"],
"env": {
"API_KEY": "your-key"
}
}
}
}
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"my-server": {
"command": "/Users/username/.nvm/versions/node/v22.15.0/bin/node",
"args": ["/usr/local/bin/mcpmon", "python", "server.py"],
"env": {
"PYTHONPATH": "/path/to/your/modules"
}
}
}
}
Nota: O comando de configuração detecta automaticamente sua versão mais recente do Node.js e o caminho do mcpmon. O exemplo acima mostra como a configuração gerada se parece - raramente você precisará escrever isso manualmente!
Configuração
O mcpmon funciona perfeitamente com zero configuração. Ele detecta automaticamente o arquivo do seu servidor e começa a monitorar alterações.
Para monitorar arquivos adicionais:
# Watch multiple files
MCPMON_WATCH="server.js,config.json" mcpmon node server.js
É isso! O mcpmon foi projetado para funcionar com zero configuração.
Variáveis de Ambiente
MCPMON_WATCH- Substitui arquivos/diretórios a monitorar (separados por vírgula)MCPMON_DELAY- Atraso de reinicialização em milissegundos (padrão: 1000)MCPMON_VERBOSE- Habilita registro detalhado (verbose)
Como Funciona
O mcpmon atua como um proxy transparente entre seu cliente MCP e servidor, fornecendo capacidades automáticas de hot-reload:
sequenceDiagram
participant Client as MCP Client
participant mcpmon
participant Server as MCP Server
Client->>mcpmon: Request
mcpmon->>Server: Request
Server->>mcpmon: Response
mcpmon->>Client: Response
Server->>Server: File changed
Note right of Server: Auto restart
Client->>mcpmon: Request
mcpmon->>Server: Request
Server->>mcpmon: Response
mcpmon->>Client: Response
A mágica: Seu cliente MCP permanece conectado enquanto seu servidor recarrega. Sem necessidade de reconectar o Claude Code ou reiniciar o MCP Inspector!
| Recurso | Sem mcpmon | Com mcpmon |
|---|---|---|
| Alterações de arquivos | Reinicialização manual necessária | Reinicialização automática |
| Conexão do cliente | Deve reconectar | Permanece conectado |
| Mensagens perdidas | Possível | Nunca (buffer) |
| Complexidade de configuração | Alterações manuais de configuração | Apenas adicione mcpmon |
Precisa de Ajuda?
Habilite o registro detalhado (verbose) para ver o que está acontecendo:
MCPMON_VERBOSE=1 mcpmon node server.js
Problemas comuns:
- "ReadableStream is not defined"? O mcpmon requer Node.js 16+. Use
mcpmon setuppara detectar automaticamente versões modernas do Node.js - O servidor não inicia? Verifique as mensagens de erro para dependências ausentes
- Sem hot-reload? Verifique se o arquivo do seu servidor está sendo detectado nos logs
- Alterações de esquema não visíveis? Alterne seu servidor MCP desligado/ligado nas configurações do Claude Desktop
- Precisa de ajuda? Veja nosso Guia de Solução de Problemas
Desenvolvimento
# Run tests (includes clean and build)
npm test
# Development mode
npm run dev
Veja o Guia de Contribuição para mais detalhes.
Instalação
Requisitos: Node.js 16+ (detectado automaticamente pelo comando de configuração)
# Install globally (recommended)
npm install -g mcpmon
# Or use without installing
npx mcpmon node server.js
Contribuindo
Aceitamos contribuições! Veja o Guia de Contribuição para detalhes.
Documentação
- Documentação da API - Uso da biblioteca e recursos avançados
- Guia de Arquitetura - Como o mcpmon funciona internamente
- Guia de Testes - Arquitetura e padrões de teste
- Guia de Solução de Problemas - Problemas comuns e soluções
- Guia de Contribuição - Como contribuir
- Changelog - Histórico de versões e alterações
Licença
Licença MIT - veja o arquivo LICENSE para detalhes.
Gosta do nodemon? Você vai adorar o mcpmon. Hot-reload simples, rápido e confiável para desenvolvimento MCP.