MCP Server Health Monitor

by dbsectrainer

Not rated
GitHub

About

Health monitoring for all your MCP servers — probes, SLA tracking, dependency graphs, auto-restart

Details

Author
dbsectrainer
Categories
Developer Tools

Setup

Install MCP Server Health Monitor in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/dbsectrainer/mcp-server-health-monitor

Follow the installation instructions in the repository README, then restart your MCP client.

MCP-native health monitoring that speaks the protocol, not just HTTP. Instead of pinging a port, it callslist_toolson each server — the same handshake your agent uses — so a green status means the server is actually ready to serve MCP requests. All health history stays local in SQLite; no external monitoring service required.

Tool reference|Configuration|Contributing|Troubleshooting

- Auto-discovery: Reads your existing MCP config files (Claude Desktop, Cursor, VS Code) with no extra setup.
- Non-intrusive probing: Only callslist_toolson target servers — read-only, no side effects.
- Version drift detection: Compares tool schemas across checks to detect when a server has been updated.
- Historical trends: Stores latency history in SQLite; p50/p95 are computed on-demand from stored history to surface regressions before they become outages.
- HTML dashboard: Generates a self-contained health dashboard with uptime sparklines per server.
- Background polling: Runs as a daemon so health data is always fresh when you ask for it.

Generic uptime monitors (UptimeRobot, Pingdom, BetterStack) check whether a port is open or an HTTP endpoint returns 200. That's not enough for MCP servers — a server can be running but failing to negotiate the MCP protocol or returning a broken tool schema.

If you want to know that your MCP servers are genuinely healthy — not just "the process is running" — this is the right tool.

Add the following config to your MCP client:

{ "mcpServers": { "health-monitor": { "command": "npx", "args": ["-y", "mcp-server-health-monitor@latest"] } } }

The monitor auto-discovers other MCP servers from the same config file it is registered in. No additional setup required.

Amp · Claude Code · Cline · Cursor · VS Code · Windsurf · Zed

Enter the following in your MCP client to verify everything is working:

Your client should return a status table showing each server with its current latency and health state.

- health_check_all— probes all configured servers in parallel vialist_tools, measures latency, and stores results. Accepts an optionaltimeout_msparameter (default: 5000).
- get_server_status— returns per-server detail including latency, last seen time, 24-hour error count, last error message, and p50/p95 latency percentiles. Requiresserver_name.
- list_degraded— filters to servers that are offline or have latency above the threshold. Accepts an optionallatency_thresholdoverride.

- get_history— returns raw health check history for a specific server, ordered most-recent first. Requiresserver_name; accepts optionallimit(default: 50, max: 500).

- configure_server— registers a new MCP server to monitor. Servers added this way are stored in~/.mcp/extra-servers.jsonand merged with auto-discovered servers. Required:name,command. Optional:args,env.
- remove_server— removes a manually registered server from monitoring. Only affects servers added viaconfigure_server; auto-discovered servers are not affected. Requiresname.

- check_updates— detects version drift by hashing tool schemas on each probe and comparing against the last stored hash. Returnshas_changed,previous_hash,current_hash, andchanged_atper server.

- export_dashboard— generates a self-contained single-file HTML dashboard with summary cards, per-server status table with p50/p95 latency, and inline SVG uptime sparklines. Accepts an optionaloutput_pathto write to disk.

In addition to auto-discovery from MCP config files, you can register servers that are not in your Claude Desktop config using theconfigure_servertool. Manually registered servers are written to~/.mcp/extra-servers.json(stored alongside the health database) and merged with auto-discovered servers on every probe.

Add a server named "my-internal-tool" running with command "node" and args ["/opt/tools/server.js"]

To stop monitoring a manually registered server:

Remove the server named "my-internal-tool" from monitoring

Servers discovered from Claude Desktop's config cannot be removed viaremove_server— edit your MCP config file directly to remove those.

How often to poll each MCP server, in seconds.

Latency in milliseconds above which a server is marked as degraded.

Path to the SQLite database file used to store health history.

Run as a background polling daemon. Health data is collected continuously rather than on-demand.

Grace period in seconds before a newly started server is considered unhealthy.

Pass flags via theargsproperty in your JSON config:

{ "mcpServers": { "health-monitor": { "command": "npx", "args": ["-y", "mcp-server-health-monitor@latest", "--interval=30", "--latency-threshold=500"] } } }

- Listed on theMCP Registry— search formcp-server-health-monitor.
- Listed on
MCP Market— search formcp-server-health-monitor.

Before publishing a new version, verify the server with MCP Inspector to confirm all tools are exposed correctly and the protocol handshake succeeds.

npm run build && npm run inspect
# 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

Run before publishing to catch regressions in tool registration and runtime startup.

Probe modules live insrc/probes/. Each probe must return aProbeResultwithstatus,latencyMs, and an optionalmessage. Keep all probes read-only — never trigger side effects on monitored servers.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.