Healthchecks.io MCP server. Manage cron/heartbeat checks, read pings and flips, pause/resume/delete on Healthchecks.io.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"healthchecksio": {
"url": "https://healthchecksio.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
healthchecksio_list_checks | read | List checks List all checks in the project, optionally filtered by slug and/or tags. Returns {checks:[...]} — each check's status, schedule, last ping, and ping URL. Healthchecks: GET /checks/. |
healthchecksio_get_check | read | Get check Get a single check by its UUID (or its unique read-only key). Returns the check's full state — status, timeout/schedule, grace, tags, last ping. Healthchecks: GET /checks/{uuid}. |
healthchecksio_list_pings | read | List pings List a check's logged pings (100 on the free plan, 1000 on paid), most recent first. Each ping: type, date, n, scheme, remote_addr, method, ua, rid, duration, body_url. Healthchecks: GET /checks/{uuid}/pings/. |
healthchecksio_get_ping_body | read | Get ping body Get the logged request body of a single ping, returned as PLAIN TEXT (verbatim, not JSON). Healthchecks: GET /checks/{uuid}/pings/{n}/body. |
healthchecksio_list_flips | read | List flips List a check's status changes ("flips") over time — [{timestamp, up}]. Optionally scope by a lookback window or an explicit start/end range. Healthchecks: GET /checks/{uuid}/flips/. |
healthchecksio_list_integrations | read | List integrations List the project's notification integrations ("channels") — {channels:[{id, name, kind}]}. The ids are what you assign to a check's `channels` field. Healthchecks: GET /channels/. |
healthchecksio_list_badges | read | List badges List the project's status-badge URLs per tag (plus "*" for the overall status) — {badges:{...}}. Healthchecks: GET /badges/. |
healthchecksio_create_check | write | Create check CREATES a new check — this MODIFIES live monitoring config. Provide a `timeout` (simple period-based check) OR a `schedule` + `tz` (cron-based check); the two are mutually exclusive. Use `unique` to avoid creating duplicates. Assign notifications via `channels`. Healthchecks: POST /checks/. Returns the created check (201) or the existing match (200). |
healthchecksio_update_check | write | Update check UPDATES an existing check by UUID — this MODIFIES live monitoring config. Send only the fields you want to change (timeout and schedule remain mutually exclusive). Healthchecks: POST /checks/{uuid}. Returns the updated check. |
healthchecksio_pause_check | write | Pause check PAUSES a check — disables monitoring without deleting it (it stops going down for missed pings until it next receives a ping or is resumed). This MODIFIES live monitoring config. Healthchecks: POST /checks/{uuid}/pause (empty body). |
healthchecksio_resume_check | write | Resume check RESUMES a paused check — re-enables monitoring. This MODIFIES live monitoring config. Returns HTTP 409 (surfaced cleanly) if the check is not currently paused. Healthchecks: POST /checks/{uuid}/resume (empty body). |
healthchecksio_delete_check | write | Delete check PERMANENTLY DELETES a check by UUID — this MODIFIES live monitoring config and cannot be undone. Healthchecks: DELETE /checks/{uuid}. Returns the deleted check's last known state. |
healthchecksio_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
healthchecksio_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Healthchecks.io tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.