MCP服务器运行状况监视器
npm mcp-server-health-monitor 包裹
MCP本地健康监测,它讲协议,而不仅仅是HTTP。它不是ping端口,而是调用 list_tools 在每台服务器上,您的代理使用相同的握手方式,因此绿色状态表示服务器实际上已准备好为MCP请求提供服务。所有健康史在SQLite中都是本地的;不需要外部监控服务。
主要特点
- 自动发现:无需额外设置即可读取现有的MCP配置文件(Claude Desktop、Cursor、VS Code)。
- 非侵入式探测:只打电话
list_tools在目标服务器上--只读,无副作用。 - 版本漂移检测:跨检查比较工具架构,以检测服务器何时更新。
- 历史趋势:将延迟历史存储在SQLite中;p50/p95是根据存储的历史记录按需计算的,在它们成为中断之前进行表面回归。
- HTML仪表板:生成一个独立的健康仪表板,每个服务器都有正常运行时间火花线。
- 后台轮询:作为守护进程运行,因此当您请求时,健康数据始终是最新的。
为什么这超过了通用的正常运行时间监视器?
通用正常运行时间监视器(UptimeRobot、Pingdom、BetterStack)检查端口是否打开或HTTP端点是否返回200。对于MCP服务器来说,这还不够——服务器可能正在运行,但无法协商MCP协议或返回损坏的工具模式。
| mcp服务器运行状况监视器 | 通用正常运行时间监视器 | |
|---|---|---|
| 探测方法 | MCP list_tools call--测试实际协议 | HTTP ping或TCP端口检查 |
| 架构漂移检测 | 检测工具签名在版本之间何时更改 | 没有协议感知是不可能的 |
| 配置自动发现 | 自动读取克劳德桌面、光标、VS代码配置 | 每台服务器手动输入URL |
| 数据驻留 | 本地SQLite;无外部服务 | 健康数据存储在供应商云中 |
| 付费 | 免费,自托管 | 免费等级有限;按历史记录/警报付费 |
如果你想知道你的MCP服务器是真正健康的——而不仅仅是“进程正在运行”——这是一个正确的工具。
需求
- Node.js v20.19或更新版本。
- npm。
入门
将以下配置添加到MCP客户端:
{
"mcpServers": {
"health-monitor": {
"command": "npx",
"args": ["-y", "mcp-server-health-monitor@latest"]
}
}
}监视器会自动从其注册的同一配置文件中发现其他MCP服务器。不需要额外的设置。
MCP客户端配置
放大器·克劳德码·克莱恩·光标·VS码·风帆·泽德
您的第一个提示
在MCP客户端中输入以下内容以验证一切正常:
Check the health of all my MCP servers.您的客户端应返回一个状态表,显示每个服务器的当前延迟和运行状况。
工具
健康检查(3种工具)
health_check_all--通过并行方式探测所有已配置的服务器list_tools,测量延迟并存储结果。接受可选timeout_ms参数(默认值:5000)。get_server_status--返回每台服务器的详细信息,包括延迟、上次出现时间、24小时错误计数、上次错误消息和p50/p95延迟百分位数。需要server_name.list_degraded--过滤器用于过滤脱机或延迟高于阈值的服务器。接受可选latency_threshold以(权力)否决
历史记录(1个工具)
get_history--返回特定服务器的原始健康检查历史记录,按最新顺序排列。需要server_name;接受可选limit(默认值:50,最大值:500)。
服务器注册表(2个工具)
configure_server--注册一个新的MCP服务器进行监控。以这种方式添加的服务器存储在~/.mcp/extra-servers.json并与自动发现的服务器合并。必修的:name,command.可选:args,env.remove_server--从监视中删除手动注册的服务器。仅影响通过添加的服务器configure_server;自动发现的服务器不受影响。需要name.
更新(1个工具)
check_updates--通过在每个探测器上对工具模式进行哈希运算并与最后存储的哈希值进行比较来检测版本漂移。退货has_changed,previous_hash,current_hash,以及changed_at每台服务器。
导出(1个工具)
export_dashboard--生成一个自包含的单文件HTML仪表板,其中包含摘要卡、具有p50/p95延迟的每台服务器状态表和内联SVG正常运行时间火花线。接受可选output_path写入磁盘。
手动服务器注册表
除了从MCP配置文件中自动发现外,您还可以使用 configure_server 工具。手动注册的服务器将写入 ~/.mcp/extra-servers.json (与健康数据库一起存储),并与每个探测器上的自动发现服务器合并。
Add a server named "my-internal-tool" running with command "node" and args ["/opt/tools/server.js"]要停止监视手动注册的服务器,请执行以下操作:
Remove the server named "my-internal-tool" from monitoring从Claude Desktop的配置中发现的服务器无法通过以下方式删除 remove_server --直接编辑MCP配置文件以删除这些文件。
配置
--interval / --interval-seconds
轮询每个MCP服务器的频率(秒)。
类型: number 违约: 60
--latency-threshold
延迟(毫秒),超过该延迟,服务器将被标记为降级。
类型: number 违约: 1000
--db / --db-path
用于存储健康历史的SQLite数据库文件的路径。
类型: string 违约: ~/.mcp/health.db
--daemon
作为后台轮询守护进程运行。健康数据是连续收集的,而不是按需收集的。
类型: boolean 违约: false
--startup-grace-seconds
新启动的服务器之前的宽限期(秒)被认为是不健康的。
类型: number 违约: 10
通过传递旗帜 args JSON配置中的属性:
{
"mcpServers": {
"health-monitor": {
"command": "npx",
"args": ["-y", "mcp-server-health-monitor@latest", "--interval=30", "--latency-threshold=500"]
}
}
}挂牌
验证
在发布新版本之前,使用MCP Inspector验证服务器,以确认所有工具都已正确公开,协议握手成功。
交互式用户界面 (打开浏览器):
npm run build && npm run inspectCLI模式 (脚本/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在发布之前运行,以捕获工具注册和运行时启动中的回归。
贡献
探头模块带电 src/probes/。每个探头必须返回一个 ProbeResult 和 status, latencyMs,以及可选 message。保持所有探测器为只读——永远不要在受监控的服务器上引发副作用。
npm install && npm test