MCP Hot-Reload

Un servidor proxy de reemplazo de módulos en caliente (HMR) para servidores MCP que se reinicia automáticamente ante cambios en archivos, almacena mensajes en búfer y gestiona conexiones.

Documentación

mcpmon

Node.js License: MIT Tests Code Style

Monitor de recarga en caliente para servidores MCP: como nodemon, pero para el Protocolo de Contexto de Modelo

Haz cambios en el código de tu servidor MCP y míralos al instante sin reiniciar tu cliente MCP. Así como nodemon reinicia automáticamente las aplicaciones Node.js, mcpmon reinicia automáticamente los servidores MCP.

Qué es

mcpmon es un proxy transparente que se sitúa entre tu cliente MCP (Claude Code, Claude Desktop, MCP Inspector, etc.) y tu servidor MCP. Cuando modificas el código de tu servidor, mcpmon reinicia automáticamente el servidor mientras mantiene tu cliente conectado.

Beneficios clave:

  • Como nodemon, pero para MCP - Interfaz de línea de comandos simple que ya conoces
  • Cero configuración - Solo envuelve tu comando de servidor con mcpmon
  • Desarrollo sin interrupciones - Tu cliente MCP permanece conectado mientras tu servidor se recarga
  • Cero pérdida de mensajes - Las solicitudes se almacenan en búfer durante el reinicio del servidor
  • Compatibilidad universal - Funciona con cualquier servidor MCP (Node.js, Python, Deno, etc.)
  • Soporte de biblioteca - Importa como dependencia para soluciones de monitoreo personalizadas

Inicio rápido

  1. Instalar globalmente:

    npm install -g mcpmon
    
  2. Usar con tu 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
    
  3. Usar con clientes MCP:

    # MCP Inspector
    npx @modelcontextprotocol/inspector mcpmon node server.js
    
    # For existing Claude Code/Desktop servers, use setup:
    mcpmon setup my-server
    

    La configuración automáticamente prepara tus servidores MCP existentes para la recarga en caliente. ✨

¡Eso es todo! Tu servidor MCP ahora tiene recarga en caliente habilitada. Edita el código de tu servidor y los cambios se aplican al instante.

Ejemplos 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

Con 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

Con Claude Code o Claude Desktop

La forma más fácil: Usa el comando de configuración 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

El comando de configuración automáticamente:

  • ✅ Hace una copia de seguridad de tu configuración original
  • ✅ Detecta y usa versiones modernas de Node.js para compatibilidad
  • ✅ Envuelve tu comando de servidor con mcpmon
  • ✅ Preserva todas las variables de entorno y argumentos
  • ✅ Habilita la recarga en caliente al instante
  • ✅ Idempotente - seguro de ejecutar varias veces

🔥 Consejos de recarga en caliente para Claude Desktop

Después de configurar la recarga en caliente:

  • Cambios de código: Tu servidor se reinicia automáticamente: ¡no se necesita acción!
  • Cambios de esquema (nuevas herramientas/recursos): Alterna el servidor MCP de apagado a encendido en la configuración de Claude Desktop
    • Ve a Configuración de Claude Desktop → Funciones → Protocolo de Contexto de Modelo
    • Alterna tu servidor a apagado y luego a encendido
    • No se necesita reinicio - ¡solo el alternador!
  • Cambios de configuración: Reinicia Claude Desktop solo si modificas el archivo de configuración directamente

Consejo profesional: Para la mejor experiencia de desarrollo, primero haz cambios de código y luego cambios de esquema. ¡Claude Desktop recogerá las llamadas a herramientas del código recargado más reciente incluso después de las actualizaciones de esquema!

Configuración manual: También puedes actualizar tu configuración 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: El comando de configuración detecta automáticamente tu versión más reciente de Node.js y la ruta de mcpmon. Lo anterior muestra cómo se ve la configuración generada: ¡rara vez necesitas escribir esto manualmente!

Configuración

mcpmon funciona de fábrica con cero configuración. Detecta automáticamente tu archivo de servidor y comienza a vigilar los cambios.

Para vigilar archivos adicionales:

# Watch multiple files
MCPMON_WATCH="server.js,config.json" mcpmon node server.js

¡Eso es todo! mcpmon está diseñado para funcionar con cero configuración.

Variables de entorno

  • MCPMON_WATCH - Sobrescribe archivos/directorios a vigilar (separados por comas)
  • MCPMON_DELAY - Retraso de reinicio en milisegundos (predeterminado: 1000)
  • MCPMON_VERBOSE - Habilita el registro detallado

Cómo funciona

mcpmon actúa como un proxy transparente entre tu cliente MCP y el servidor, proporcionando capacidades automáticas de recarga en caliente:

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

La magia: Tu cliente MCP permanece conectado mientras tu servidor se recarga. ¡No es necesario reconectar Claude Code ni reiniciar MCP Inspector!

CaracterísticaSin mcpmonCon mcpmon
Cambios de archivoReinicio manual requeridoReinicio automático
Conexión del clienteDebe reconectarsePermanece conectado
Mensajes perdidosPosibleNunca (almacenados en búfer)
Complejidad de configuraciónCambios manuales de configuraciónSolo agrega mcpmon

¿Necesitas ayuda?

Habilita el registro detallado para ver lo que está sucediendo:

MCPMON_VERBOSE=1 mcpmon node server.js

Problemas comunes:

  • ¿"ReadableStream is not defined"? mcpmon requiere Node.js 16+. Usa mcpmon setup para detectar automáticamente versiones modernas de Node.js
  • ¿El servidor no arranca? Revisa los mensajes de error para ver las dependencias faltantes
  • ¿Sin recarga en caliente? Verifica que tu archivo de servidor se esté detectando en los registros
  • ¿Los cambios de esquema no son visibles? Alterna tu servidor MCP de apagado a encendido en la configuración de Claude Desktop
  • ¿Necesitas ayuda? Consulta nuestra Guía de solución de problemas

Desarrollo

# Run tests (includes clean and build)
npm test

# Development mode
npm run dev

Consulta la Guía de contribución para más detalles.

Instalación

Requisitos: Node.js 16+ (detectado automáticamente por el comando de configuración)

# Install globally (recommended)
npm install -g mcpmon

# Or use without installing
npx mcpmon node server.js

Contribución

¡Agradecemos las contribuciones! Consulta la Guía de contribución para más detalles.

Documentación

Licencia

Licencia MIT - consulta el archivo LICENCIA para más detalles.


¿Te gusta nodemon? Te encantará mcpmon. Recarga en caliente simple, rápida y confiable para el desarrollo de MCP.