A port check tells you a process is up; this tells you the server negotiated MCP and returned a tool schema. Schema drift is the part you cannot get any other way, because it catches a server that still answers but no longer offers the tool your agent depends on.
A monitor for other MCP servers. It reads the MCP config files you already have, Claude Desktop, Cursor and VS Code, and probes each server by calling list_tools, the same handshake a client uses, then keeps the results and latency in local SQLite.
- A health sweep across every discovered server (health_check_all)
- The current state of one server (get_server_status) and everything currently degraded (list_degraded)
- Stored latency history, with p50 and p95 computed on demand from it (get_history)
- Version drift detection: tool schemas compared across checks, so a server that changed shape shows up
- A self-contained HTML dashboard with an uptime sparkline per server
- A background daemon, so the data is already fresh when you ask
- Auto-discovery of targets from your existing Claude Desktop, Cursor and VS Code configs
The npm package mcp-server-health-monitor. Targets come from the MCP config files already on the machine, and the probe is read-only: it calls list_tools and nothing else. History stays in local SQLite, with no external monitoring service involved.
One command — npx -y mcp-server-health-monitor@latest
