mcp-server-health-monitor

中文文档
1.0.1发布于 2026/11/04MITTypeScriptES Module

监视所有MCP服务器的运行状况

中文使用文档
文档目录22 节
  1. 关键特性
  2. 为什么这优于一般的正常运行时间监视器?
  3. 需求
  4. 开始
  5. MCP客户端配置
  6. 你的第一个提示
  7. 工具
  8. 运行状况检查(3个工具)
  9. 历史(1个工具)
  10. 服务器注册表(2个工具)
  11. 更新(1个工具)
  12. 导出(1个工具)
  13. 手动服务器注册
  14. 配置
  15. --interval / --interval-seconds
  16. --latency-threshold
  17. --db / --db-path
  18. --daemon
  19. --startup-grace-seconds
  20. 上市
  21. 验证
  22. 贡献

MCP服务器运行状况监视器

npm mcp-server-health-monitor 包

使用协议(而不仅仅是HTTP)的mcp本机运行状况监视。而不是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-server-health-monitor通用正常运行时间监视器
探测法MCP list_tools 调用-测试实际协议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客户端配置

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

你的第一个提示

在您的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注册表 -搜寻 mcp-server-health-monitor。
  • 上市 MCP市场 -搜寻 mcp-server-health-monitor。

验证

在发布新版本之前,请使用MCP Inspector验证服务器,以确认所有工具都正确公开并且协议握手成功。

交互式用户界面 (打开浏览器):

npm run build && npm run inspect

CLI模式 (脚本/ 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

版本与发布记录

mcp-server-health-monitor 共发布 2 个版本,首次发布于 2026/03/24;过去 12 个月发布了 2 个版本。

版本发布日期距今
1.0.1latest2026/11/04今天
1.0.02026/03/247 个月前

关于 mcp-server-health-monitor 的常见问题

mcp-server-health-monitor 是什么?

监视所有MCP服务器的运行状况

如何安装 mcp-server-health-monitor?

在项目目录运行 npm install mcp-server-health-monitor,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mcp-server-health-monitor,可以用 npx mcp-server-health-monitor 直接运行。

mcp-server-health-monitor 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

mcp-server-health-monitor 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

mcp-server-health-monitor 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

mcp-server-health-monitor 可以商用吗?

mcp-server-health-monitor 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

mcp-server-health-monitor 还在维护吗?

最新版本 1.0.1 发布于 2026/11/04(今天);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/03/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。