MCP Health Monitor logo

MCP Health Monitor

Monitor MCP server health, uptime, response times, and Azure DevOps pipeline status

Install MCP Health Monitor

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "mcp-health-monitor": {
      "command": "npx",
      "args": [
        "-y",
        "health-monitor-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 22 tools correctly (23d ago).

Overview

Tools22

What MCP Health Monitor lets your agent do. Expand a tool for its parameters.

Verified live~2.5k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

Not checked yetLast checked 1d ago

We have not completed a health check for this listing yet.

4/8 checks healthy over the last 51d

What it can do

From the 22 tools this server returned when we ran it; 22 declare their own safety hints.

Can delete or modify data · 4Handles credentials · 2Makes network requests · 11Read-only tools · 18
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceSigned build
Package age142 days
Maintainers1

Observed 2026-10-16 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · health-monitor-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars2Stargazers on the source repository.
npm downloads482Package downloads in the last 30 days.
Last commit16d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed22Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

From the project 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:

Terminal
npx -y health-monitor-mcp --version

Example MCP client configuration:

config.json
{
  "mcpServers": {
    "health-monitor": {
      "command": "npx",
      "args": ["-y", "health-monitor-mcp"]
    }
  }
}

Tools

ToolPurposeTypical prompt
register_serverRegister an MCP targetRegister inventory-prod
check_serverRun one MCP health checkCheck inventory-prod now
register_github_actionsRegister a GitHub workflowMonitor ci.yml in owner/repo
check_github_actionsCheck latest GitHub run and failed job/step diagnosticsCheck repo-ci now
register_gitlab_pipelineRegister a GitLab project pipelineMonitor group/project on GitLab
check_gitlab_pipelineCheck latest pipeline and bounded failed-job tracesCheck gitlab-ci now
register_http_targetRegister a GET-only HTTP/HTTPS endpointMonitor the public health endpoint
check_http_targetCheck response assertions and TLS expiryCheck service-health now
register_webhookRegister a webhook target for alert deliveryRegister alert-webhook for notifications
test_webhookSend a test payload and return delivery diagnosticsTest alert-webhook delivery
check_allCheck all target kinds with bounded concurrencyCheck all production targets
get_uptimeReturn MCP uptime and latency historyShow 24h uptime for inventory-prod
get_dashboardReturn a cross-provider JSON dashboardGive me a 24h dashboard
get_reportReturn a cross-provider Markdown reportGenerate a 24h health report
list_serversList registered MCP targetsList monitored MCP servers
list_github_actionsList registered GitHub workflow targetsList monitored workflows
list_gitlab_pipelinesList registered GitLab pipeline targetsList monitored GitLab pipelines
list_http_targetsList registered HTTP targetsList monitored HTTP endpoints
list_webhooksList registered webhook targetsList webhook targets
unregister_serverRemove an MCP targetStop monitoring local-debugger
unregister_github_actionsRemove a GitHub target and its historyStop monitoring repo-ci
unregister_gitlab_pipelineRemove a GitLab target and its historyStop monitoring gitlab-ci
unregister_http_targetRemove an HTTP target and its historyStop monitoring service-health
unregister_webhookRemove a webhook target and its historyStop monitoring alert-webhook
set_alertConfigure MCP health thresholdsAlert if inventory-prod exceeds 500ms
get_monitor_statsInspect cross-provider monitor activityHow many checks are stored?

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:

text
register_server name="inventory-prod" type="http" url="https://inventory.example.com/mcp" tags=["production","inventory"]

Legacy SSE:

text
register_server name="legacy-search" type="sse" url="https://search.example.com/sse" tags=["legacy"]

Trusted local stdio:

server.ts
export HEALTH_MONITOR_ALLOW_STDIO=1
export HEALTH_MONITOR_STDIO_ALLOWLIST=npx,node
text
register_server name="local-debugger" type="stdio" command="npx" args=["-y","mcp-debug-recorder"] tags=["local"]

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:

server.ts
export GITHUB_TOKEN=your-runtime-secret
text
register_github_actions name="repo-ci" owner="oaslananka" repository="health-monitor-mcp" workflow="ci.yml" branch="main" token_env="GITHUB_TOKEN" tags=["production","ci"]
check_github_actions name="repo-ci" timeout_ms=5000

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:

server.ts
export GITLAB_TOKEN=your-runtime-secret
text
register_gitlab_pipeline name="gitlab-ci" project="group/project" ref="main" token_env="GITLAB_TOKEN" tags=["production","ci"]
check_gitlab_pipeline name="gitlab-ci" timeout_ms=5000

GitLab.com is allowed by default. A self-hosted instance must use an HTTPS origin and be explicitly allowed:

server.ts
export HEALTH_MONITOR_GITLAB_BASE_URL_ALLOWLIST=https://gitlab.internal.example
text
register_gitlab_pipeline name="private-gitlab" base_url="https://gitlab.internal.example" project="platform/service" token_env="GITLAB_TOKEN"

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:

text
register_http_target name="service-health" url="https://status.example.com/health" expected_statuses=[200] header_assertions=[{"name":"x-ready","equals":"yes"}] body_contains=["ready"] json_assertions=[{"path":"status","equals":"ready"}] tls_expiry_days=30 tags=["production","http"]
check_http_target name="service-health" timeout_ms=5000

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:

server.ts
export HEALTH_MONITOR_HTTP_TARGET_ALLOWLIST=https://status.internal.example:8443

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

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about MCP Health Monitor

MCP Health Monitor is an MCP server that monitors MCP servers, GitHub Actions workflows, GitLab CI/CD pipelines, and generic HTTP/HTTPS endpoints. It performs live checks, records bounded health evidence in SQLite, evaluates alert thresholds, checks TLS expiry and response assertions, and returns JSON or Markdown diagnostics for agents and operators.

MCP Health Monitor supports Streamable HTTP, legacy SSE, and stdio for trusted local executables after explicit opt-in.

Yes, MCP Health Monitor monitors GitHub Actions workflow runs, failed jobs, and failed steps, as well as GitLab CI/CD pipelines, failed jobs, stages, refs, commits, URLs, and bounded trace excerpts.

No, Azure DevOps monitoring was retired in version 1.1.0; the current feature line supports GitHub Actions, GitLab CI/CD, and generic HTTP/TLS monitoring instead.

Run the published package with Node.js 24 using `npx -y health-monitor-mcp --version`, then configure the server with the `health-monitor` command and `npx -y health-monitor-mcp` arguments.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMCP Health Monitor AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/mcp-health-monitor?style=directory)](https://allmcps.com/mcp/mcp-health-monitor)
HTML Embed
<a href="https://allmcps.com/mcp/mcp-health-monitor"><img src="https://allmcps.com/api/badge/mcp-health-monitor?style=directory" alt="MCP Health Monitor on AllMCPs" /></a>