MCP Server Health Monitor
Monitoreo de salud para todos tus servidores MCP: sondas, seguimiento de SLA, gráficos de dependencias, reinicio automático
Documentación
MCP Server Health Monitor
Paquete npm mcp-server-health-monitor
Monitoreo de salud nativo de MCP que habla el protocolo, no solo HTTP. En lugar de hacer ping a un puerto, llama a list_tools en cada servidor — el mismo protocolo de negociación que usa tu agente — por lo que un estado verde significa que el servidor está realmente listo para atender solicitudes MCP. Todo el historial de salud permanece local en SQLite; no se requiere ningún servicio de monitoreo externo.
Referencia de herramientas | Configuración | Contribuciones | Solución de problemas
Características principales
- Autodetección: Lee tus archivos de configuración MCP existentes (Claude Desktop, Cursor, VS Code) sin configuración adicional.
- Sondeo no intrusivo: Solo llama a
list_toolsen los servidores objetivo — solo lectura, sin efectos secundarios. - Detección de desviación de versión: Compara los esquemas de herramientas entre comprobaciones para detectar cuándo se ha actualizado un servidor.
- Tendencias históricas: Almacena el historial de latencia en SQLite; p50/p95 se calculan bajo demanda a partir del historial almacenado para detectar regresiones antes de que se conviertan en interrupciones.
- Panel HTML: Genera un panel de salud autocontenido con minigráficos de disponibilidad por servidor.
- Sondeo en segundo plano: Se ejecuta como un demonio para que los datos de salud estén siempre actualizados cuando los solicites.
¿Por qué esto en lugar de monitores de disponibilidad genéricos?
Los monitores de disponibilidad genéricos (UptimeRobot, Pingdom, BetterStack) verifican si un puerto está abierto o si un endpoint HTTP devuelve 200. Eso no es suficiente para los servidores MCP: un servidor puede estar en ejecución pero fallar al negociar el protocolo MCP o devolver un esquema de herramientas roto.
| mcp-server-health-monitor | Monitores de disponibilidad genéricos | |
|---|---|---|
| Método de sondeo | Llamada MCP list_tools — prueba el protocolo real | Ping HTTP o verificación de puerto TCP |
| Detección de desviación de esquema | Detecta cuando las firmas de herramientas cambian entre versiones | No es posible sin conocimiento del protocolo |
| Autodetección de configuración | Lee automáticamente las configuraciones de Claude Desktop, Cursor y VS Code | Entrada manual de URL por servidor |
| Residencia de datos | SQLite local; sin servicio externo | Datos de salud almacenados en la nube del proveedor |
| Costo | Gratuito, autoalojado | Nivel gratuito limitado; de pago para historial/alertas |
Si quieres saber que tus servidores MCP están genuinamente saludables — no solo «el proceso está en ejecución» — esta es la herramienta adecuada.
Requisitos
- Node.js v20.19 o superior.
- npm.
Primeros pasos
Añade la siguiente configuración a tu cliente MCP:
{
"mcpServers": {
"health-monitor": {
"command": "npx",
"args": ["-y", "mcp-server-health-monitor@latest"]
}
}
}
El monitor autodetecta otros servidores MCP del mismo archivo de configuración en el que está registrado. No se requiere configuración adicional.
Configuración del cliente MCP
Amp · Claude Code · Cline · Cursor · VS Code · Windsurf · Zed
Tu primer prompt
Introduce lo siguiente en tu cliente MCP para verificar que todo funciona:
Check the health of all my MCP servers.
Tu cliente debería devolver una tabla de estado que muestre cada servidor con su latencia actual y estado de salud.
Herramientas
Comprobaciones de salud (3 herramientas)
health_check_all— sondea todos los servidores configurados en paralelo mediantelist_tools, mide la latencia y almacena los resultados. Acepta un parámetro opcionaltimeout_ms(predeterminado: 5000).get_server_status— devuelve el detalle por servidor, incluidos latencia, hora de última vista, recuento de errores de 24 horas, último mensaje de error y percentiles de latencia p50/p95. Requiereserver_name.list_degraded— filtra los servidores que están fuera de línea o que tienen una latencia superior al umbral. Acepta una anulación opcionallatency_threshold.
Historial (1 herramienta)
get_history— devuelve el historial bruto de comprobaciones de salud de un servidor específico, ordenado del más reciente al más antiguo. Requiereserver_name; aceptalimitopcional (predeterminado: 50, máximo: 500).
Registro de servidores (2 herramientas)
configure_server— registra un nuevo servidor MCP para monitorear. Los servidores añadidos de esta manera se almacenan en~/.mcp/extra-servers.jsony se fusionan con los servidores autodetectados. Requeridos:name,command. Opcionales:args,env.remove_server— elimina un servidor registrado manualmente del monitoreo. Solo afecta a los servidores añadidos medianteconfigure_server; los servidores autodetectados no se ven afectados. Requierename.
Actualizaciones (1 herramienta)
check_updates— detecta la desviación de versión calculando el hash de los esquemas de herramientas en cada sondeo y comparándolo con el último hash almacenado. Devuelvehas_changed,previous_hash,current_hashychanged_atpor servidor.
Exportación (1 herramienta)
export_dashboard— genera un panel HTML autocontenido de un solo archivo con tarjetas de resumen, tabla de estado por servidor con latencia p50/p95 y minigráficos de disponibilidad SVG integrados. Acepta unoutput_pathopcional para escribir en disco.
Registro manual de servidores
Además de la autodetección desde archivos de configuración MCP, puedes registrar servidores que no estén en tu configuración de Claude Desktop usando la herramienta configure_server. Los servidores registrados manualmente se escriben en ~/.mcp/extra-servers.json (almacenados junto a la base de datos de salud) y se fusionan con los servidores autodetectados en cada sondeo.
Add a server named "my-internal-tool" running with command "node" and args ["/opt/tools/server.js"]
Para dejar de monitorear un servidor registrado manualmente:
Remove the server named "my-internal-tool" from monitoring
Los servidores descubiertos desde la configuración de Claude Desktop no se pueden eliminar mediante remove_server: edita tu archivo de configuración MCP directamente para eliminarlos.
Configuración
--interval / --interval-seconds
Con qué frecuencia sondear cada servidor MCP, en segundos.
Tipo: number
Predeterminado: 60
--latency-threshold
Latencia en milisegundos por encima de la cual un servidor se marca como degradado.
Tipo: number
Predeterminado: 1000
--db / --db-path
Ruta al archivo de base de datos SQLite utilizado para almacenar el historial de salud.
Tipo: string
Predeterminado: ~/.mcp/health.db
--daemon
Se ejecuta como un demonio de sondeo en segundo plano. Los datos de salud se recopilan continuamente en lugar de bajo demanda.
Tipo: boolean
Predeterminado: false
--startup-grace-seconds
Período de gracia en segundos antes de que un servidor recién iniciado se considere no saludable.
Tipo: number
Predeterminado: 10
Pasa las banderas mediante la propiedad args en tu configuración JSON:
{
"mcpServers": {
"health-monitor": {
"command": "npx",
"args": ["-y", "mcp-server-health-monitor@latest", "--interval=30", "--latency-threshold=500"]
}
}
}
Listados
- Listado en el Registro MCP — busca
mcp-server-health-monitor. - Listado en MCP Market — busca
mcp-server-health-monitor.
Verificación
Antes de publicar una nueva versión, verifica el servidor con MCP Inspector para confirmar que todas las herramientas se exponen correctamente y que el protocolo de negociación se completa con éxito.
Interfaz interactiva (abre el navegador):
npm run build && npm run inspect
Modo CLI (scripteado / apto para CI):
# List all tools
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# List resources and prompts
npx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/list
npx @modelcontextprotocol/inspector --cli node dist/index.js --method prompts/list
# Call a tool (example — replace with a relevant read-only tool for this plugin)
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name health_check_all
# Call a tool with arguments
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name health_check_all --tool-arg key=value
Ejecuta antes de publicar para detectar regresiones en el registro de herramientas y en el arranque en tiempo de ejecución.
Contribuciones
Los módulos de sondeo viven en src/probes/. Cada sonda debe devolver un ProbeResult con status, latencyMs y un message opcional. Mantén todas las sondas de solo lectura: nunca desencadenes efectos secundarios en los servidores monitoreados.
npm install && npm test