Skip to main content
Glama
ni-c

healthchecks-mcp

by ni-c

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ELICITATIONNoSet to 'false' to replace the approval dialog with the two-call token. Not prefixed.
HEALTHCHECKS_URLNoSite root of a self-hosted instance, e.g. https://hc.example.net. Default https://healthchecks.iohttps://healthchecks.io
HEALTHCHECKS_API_KEYYesProject API key. A read-only key works for part of the tool surface.
HEALTHCHECKS_READ_ONLYNoSet to 'true' to register only the read tools.
HEALTHCHECKS_DENY_TOOLSNoComma-separated tool names, list_* prefixes, or 'essential'; removed from whatever HEALTHCHECKS_ALLOW_TOOLS left.
HEALTHCHECKS_ALLOW_TOOLSNoComma-separated tool names, list_* prefixes, or 'essential' for a curated preset.
HEALTHCHECKS_INSECURE_TLSNoSet to 'true' to accept self-signed certificates (scoped to this connection).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_checksA

Lists the checks in the project the API key belongs to, newest state first. API keys are per project, so this never spans projects. Descriptions are omitted here — call get_check for one.

get_checkA

Fetches one check with all its fields, including the description and the keyword filters. Accepts a UUID, or the unique_key that a read-only API key returns in place of one.

list_pingsA

Lists recent pings of a check, newest first. The instance caps this at 100 pings on a free plan and 1000 on a paid one, and there is no pagination, so older pings cannot be reached at all. Note: Healthchecks requires a read-write API key for this endpoint even though it only reads. A read-only key is refused with HTTP 401 "wrong api key", which is not what it sounds like. Call get_api_key_info to check which kind is configured.

With a read-only key this tool cannot even be called correctly: it addresses a check by uuid, and a read-only key never sees one — list_checks answers with a 40-character unique_key instead. So the refusal you get first is about the argument, not the key. Neither is a mistake to fix: with a read-only key this endpoint is out of reach, and there is nothing to pass that would change it.

get_ping_bodyA

Returns the body that was POSTed with one ping — usually the output of the job that reported in, which is the fastest way to see why a check failed. Truncated at 64 KB. Note: Healthchecks requires a read-write API key for this endpoint even though it only reads. A read-only key is refused with HTTP 401 "wrong api key", which is not what it sounds like. Call get_api_key_info to check which kind is configured.

With a read-only key this tool cannot even be called correctly: it addresses a check by uuid, and a read-only key never sees one — list_checks answers with a 40-character unique_key instead. So the refusal you get first is about the argument, not the key. Neither is a mistake to fix: with a read-only key this endpoint is out of reach, and there is nothing to pass that would change it.

list_flipsA

Lists the up/down transitions of a check — the history behind its current status. The instance keeps the current month and the two before it. Accepts a UUID or a unique_key.

list_integrationsA

Lists the notification integrations of the project, with the UUIDs that create_check and update_check accept in their channels argument. Integrations themselves can only be created in the web UI. Note: Healthchecks requires a read-write API key for this endpoint even though it only reads. A read-only key is refused with HTTP 401 "wrong api key", which is not what it sounds like. Call get_api_key_info to check which kind is configured.

With a read-only key this tool cannot even be called correctly: it addresses a check by uuid, and a read-only key never sees one — list_checks answers with a 40-character unique_key instead. So the refusal you get first is about the argument, not the key. Neither is a mistake to fix: with a read-only key this endpoint is out of reach, and there is nothing to pass that would change it.

list_badgesA

Lists the status badge URLs of the project, one entry per tag plus "*" for the project as a whole. The plain variants treat a check in its grace period as up; the ones suffixed 3 report up, late and down separately.

get_statusA

Checks that the configured Healthchecks instance is reachable and its database is answering. Needs no API key, so it is the tool to try first when something is not working.

get_api_key_infoA

Reports which instance is configured, whether the API key works, and whether it is a read-only or a read-write key — which decides whether list_pings, get_ping_body and list_integrations can be used at all, and whether checks are identified by uuid or by unique_key.

create_checkA

Creates a check. Pass either timeout (a simple period) or schedule (a cron or systemd OnCalendar expression), never both. Unless channels says otherwise, the new check notifies every integration in the project ("*"), because a check with no integrations never alerts anyone. Setting unique turns this into an upsert that may UPDATE an existing check.

update_checkA

Updates a check. Fields that are not given stay unchanged. Two exceptions: channels REPLACES the integration list rather than adding to it, and setting schedule on a check that used timeout switches it over. Needs a UUID, which read-only API keys never see.

pause_checkA

Pauses a check: it stops expecting pings and stops alerting. resume_check puts it back, and nothing is lost in between — so this is not asked about. It does mean a job that stops running goes unnoticed while the check is paused.

resume_checkA

Resumes a paused check and puts it back into the "new" state, waiting for its next ping. Fails with HTTP 409 if the check is not paused.

delete_checkA

Deletes a check permanently. Its UUID is not recoverable, so every deployed script pinging that URL breaks. Two-step: the first call returns a confirmation token, the second call with that token deletes.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ni-c/healthchecks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server