
MCP Health Monitor
io.github.oaslananka由 GitHub 账号 oaslananka 发布v1.4.0更新于 Oct 24, 2026
Monitor MCP, CI, and HTTP targets with health history, TLS expiry, assertions, and diagnostics
概览
本地 MCP 服务器,让助手登记并巡检 MCP 服务器、GitHub Actions、GitLab 流水线与 HTTP 端点,并保留历史与报告。
- 可以做什么
- 登记、列出和移除监控目标:MCP 服务器(Streamable HTTP、SSE、需显式开启的 stdio)、GitHub Actions 工作流、GitLab 流水线和仅 GET 的 HTTP 端点,以及 webhook 告警目标和测试发送。对单个或全部目标执行实时检查,支持状态码、响应头、正文、JSON 与 TLS 到期断言,并给出失败作业或步骤诊断。查看历史与报告:可用率与延迟、跨提供方的 JSON 仪表盘、Markdown 报告和监控统计。配置 MCP 告警阈值,如响应时间、可用率百分比和连续失败次数。
- 适用场景
- 适合让助手持续关注 CI 流水线、MCP 端点或服务健康端点,并按时间汇总失败、延迟或证书到期情况。适合希望用一个本地工具按需或定时检查并生成 Markdown 报告的运维和开发人员。
- 运行要求
- 通过 npx 以 stdio 在本地运行,需要 Node.js 24。可选的 GITHUB_TOKEN 和 GITLAB_TOKEN 用于私有仓库和更高速率限制,仅保存变量名。自建 GitLab 和私有 HTTP 来源需通过环境变量加入允许列表。本地 stdio 检查需设置 HEALTH_MONITOR_ALLOW_STDIO 并提供可执行文件允许列表。Webhook 密钥需要 HEALTH_MONITOR_WEBHOOK_ENCRYPTION_KEY。历史保存在本地 SQLite 数据库。
安装
在 SourceWeft 中
- 打开 控制台中的 MCP Health Monitor,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
health-monitor-mcp
MCP server, CI workflow, and generic HTTP endpoint monitoring with health history, TLS expiry, assertions, diagnostics, and operational reports.
[CI] [codecov] [Release] [License: MIT] [OpenSSF Scorecard] [Node.js]
What This Does
health-monitor-mcp keeps local registries of MCP servers, GitHub Actions workflows, GitLab pipelines, and generic HTTP endpoints. It performs live checks, records bounded evidence in SQLite, evaluates MCP alert thresholds, and returns JSON or Markdown diagnostics suitable for agents and operators.
Supported target transports:
- Streamable HTTP for current remote MCP servers.
- SSE for legacy MCP servers.
- stdio for trusted local executables after explicit opt-in.
- GitHub Actions workflow runs, failed jobs, and failed steps for public or private repositories.
- GitLab CI/CD pipelines, failed jobs, stages, refs, commits, URLs, and bounded trace excerpts for GitLab.com or allowlisted self-hosted instances.
- Generic HTTP/HTTPS endpoints with status, header, body-substring, JSON-value, redirect, latency, and TLS-expiry checks.
Azure DevOps monitoring was retired in v1.1.0. GitHub Actions shipped in v1.2.0 and GitLab CI/CD in v1.3.0; generic HTTP/TLS monitoring completes the current multi-provider feature line.
Quick Start
Run the published package noninteractively with Node.js 24:
Example MCP client configuration:
Tools
Expected configuration mistakes return stable error codes and remediation hints, including SERVER_NOT_FOUND, GITHUB_ACTIONS_TARGET_NOT_FOUND, GITLAB_PIPELINE_TARGET_NOT_FOUND, GITLAB_BASE_URL_NOT_ALLOWED, HTTP_TARGET_NOT_FOUND, HTTP_TARGET_URL_NOT_ALLOWED, NO_SERVERS_REGISTERED, STDIO_DISABLED, STDIO_COMMAND_REJECTED, WEBHOOK_ENCRYPTION_KEY_REQUIRED, WEBHOOK_REGISTRATION_FAILED, and WEBHOOK_NOT_FOUND.
Register Targets
Streamable HTTP:
Legacy SSE:
Trusted local stdio:
The command field must contain one executable only. Put package names and flags in args. Remote-safe runtime profiles always disable stdio.
Register GitHub Actions
Public repositories can be checked without authentication. Private repositories and higher API rate limits require a token with Actions read access:
Only the environment-variable name in token_env is stored. The token value is read at check time and is never written to SQLite, logs, reports, or tool responses.
Register GitLab Pipelines
Public GitLab.com projects can be checked without authentication. Private projects require a token exposed only through the runtime environment:
GitLab.com is allowed by default. A self-hosted instance must use an HTTPS origin and be explicitly allowed:
Only token_env is persisted. Token values, response bodies, and full traces are never stored or returned. Failed-job trace excerpts are range-requested, sanitized, and bounded.
Register HTTP Targets
Public HTTP and HTTPS endpoints are allowed by default. The provider sends GET requests only and supports bounded status, header, body-substring, JSON scalar, and TLS-expiry assertions:
Private, loopback, link-local, and other non-public addresses are blocked. A trusted private origin is available only in the full runtime profile and must be explicitly listed:
Every DNS answer and every redirect destination is revalidated. Responses are capped at 262144 bytes; full response bodies and certificate chains are never stored or returned.
Register Webhook Targets
Webhook targets receive alert notifications via HTTPS POST with optional HMAC-SHA256 signing. Secrets are encrypted at rest when HEALTH_MONITOR_WEBHOOK_ENCRYPTION_KEY is configured (32+ characters); otherwise secret registration is rejected.
Secrets are never returned in listings or diagnostics—always redacted. Delivery diagnostics include status, latency, HTTP status code, and error message.
Health Checks and Reports
HEALTH_MONITOR_MAX_CONCURRENCY limits MCP, GitHub Actions, GitLab, and HTTP checks through one shared scheduled and interactive queue. Results preserve MCP-then-GitHub-then-GitLab-then-HTTP registration order even when checks complete out of order.
Alerts
Alert findings are evaluated by check_server, check_all, and get_dashboard. Configure webhook targets with register_webhook to receive alert notifications.
Configuration
HTTP Deployment
The server binds to 127.0.0.1 by default. A non-loopback bind requires a remote-safe profile, bearer token, and Origin allowlist.
GET /health is unauthenticated and exposes only status and version. POST /mcp requires Authorization: Bearer <token>.
Docker
Persist /data; otherwise the SQLite database disappears with the container.
Development
The repository pins Node.js 24.18.0 and pnpm 11.14.0 through .mise.toml.
Useful gates:
Coverage and Test Analytics
Jest remains the blocking coverage gate with repository-local thresholds. The CI validation job runs
all unit and integration tests once, writes coverage/lcov.info and
reports/junit/junit.xml, and uploads both reports to Codecov. Codecov project and patch statuses
start as informational with target: auto and a 1% tolerance, adding pull-request diff coverage,
file-level visibility, and failed-test analytics without duplicating the local merge gate.
Codecov Bundle Analysis is intentionally not enabled. This package ships Node.js entrypoints compiled
with tsc; it does not currently produce a Rollup, Vite, or Webpack application bundle whose download
size is a product metric.
Architecture and Roadmap
Agent Runtime Configuration
This repository owns its product-specific MCP configuration, plugin manifest, and skills:
Security and Contributing
Report vulnerabilities through GitHub Private Vulnerability Reporting. See SECURITY.md and docs/security.md.
Contribution setup and standards are documented in docs/contributing.md. Usage questions belong in GitHub Discussions; actionable work belongs in issues.
License
MIT
来源:README.md,提交 77e4dcc
工具
0版本历史
1- v1.4.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分