Heartbeat — dead-man switch for cron jobs & AI agents
Server Details
Dead-man switch monitors for cron & AI agents with dependency-cascade alerts. No account needed.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- aniripsaretro-max/golemreach
- GitHub Stars
- 0
Available Tools
5 toolscreate_heartbeatAInspect
Arm a new dead-man switch monitor. Returns the key plus a ping_url your job must hit after every run. No account needed. Names are globally unique on this instance and each name gets a PUBLIC status page; the secret key is the only credential — keep it.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | push = you ping us; pull = we probe target_url every min(period_s,60)s; selfcheck = your box runs our egress-trust probe script and POSTs verdict reports to the ping URL | push |
| name | Yes | unique name, 1-40 chars [A-Za-z0-9_.-] | |
| grace_s | No | extra seconds of slack before DOWN (0-86400) | |
| pass_key | No | Pro pass key from a $5 USDC payment (optional; skips rate limits) | |
| period_s | No | expected seconds between pings (60-86400) | |
| depends_on | No | parent monitor names and/or gate:<gate-name> entries (max 5). When a parent is DOWN or a gate parent is HALT this monitor becomes DEGRADED-BY-UPSTREAM: notified once, own silence paging suppressed until the parent recovers. | |
| target_url | No | public http(s) URL to probe (pull only) | |
| webhook_url | No | public http(s) URL that receives UP/DOWN alerts (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses key traits: names are globally unique, each name gets a PUBLIC status page, no account is needed, and the secret key is the only credential. It does not cover rate limits or duplicate-name behavior, but the security and privacy implications are well addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each earning its place: what the tool does, what the caller receives, and the important security/uniqueness context. The most critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential return values (key, ping_url) and auth context (no account, secret key only), while the schema covers parameters. It does not specify the exact response structure or failure modes, but for a create tool with a rich schema this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all 8 parameters with 100% coverage, so the description need not repeat parameter details. The description adds context about global uniqueness and the returned key, but it does not meaningfully explain parameter behavior beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific action, 'Arm a new dead-man switch monitor,' and clearly states what the tool creates and returns: a key and a ping_url. This distinguishes it from siblings like get_status, list_heartbeats, ping_heartbeat, and record_failure, which operate on existing monitors rather than creating them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for setting up a new monitor and says the returned ping_url must be hit after each run, but it never explicitly contrasts with ping_heartbeat or states when not to use this tool. No account needed' gives some context, but alternative routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusARead-onlyInspect
Full current state of one monitor: status, 30-day uptime %, schedule, last ping, alert config, recent event history and its public URLs. Look up by name OR by your secret key; key lookups additionally return the private ping/fail URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | monitor key (private lookup; also returns ping/fail URLs) | |
| name | No | monitor name (public lookup) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces read-only behavior. It adds meaningful behavioral context beyond annotations: private key lookups return additional ping/fail URLs, while name lookups return only public URLs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences convey returned fields, lookup methods, and access-level differences. Information is front-loaded and every clause adds value with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields and URL differences. However, it omits guidance on whether exactly one of key/name must be supplied and what happens if both or neither are provided, which is relevant for a zero-required-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description mostly restates the key/name distinction and adds minor context ('secret key', 'ping/fail URLs'), but does not substantially go beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('get'), names the resource ('one monitor'), and enumerates the exact fields returned (status, uptime, schedule, last ping, alert config, event history, URLs). It clearly differentiates from list_heartbeats by emphasizing a single monitor's full state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when this tool is appropriate: retrieving full current state for one monitor. It also explains the two lookup modes (by name or secret key) and what each reveals, but does not explicitly contrast with sibling tools or say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_heartbeatsARead-onlyInspect
List monitors on this Heartbeat instance with current status (new/up/late/down). Names and statuses are public by design — every monitor has a public status page. Pass your secret key to also include that monitor's private ping/fail URLs in the result.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | optional monitor key; adds the private ping_url/fail_url for that one monitor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description need not restate that. It adds useful context about the public nature of names/statuses and explains that the secret key is required to expose private URLs, which goes beyond the annotation. It does not describe the output structure, but that is not heavily required for a read-only list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose (list monitors and status), immediately followed by the public nature and the optional key behavior. There is no wasted wording, and every sentence contributes to a clear understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and a readOnlyHint annotation, the description is complete. It covers the primary output (statuses), the optional behavior (key for private URLs), and the public/private design. There is no output schema, but the description sufficiently conveys what the tool does. Pagination or rate limits are not mentioned, but they are not critical for a straightforward list operation here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'key' parameter at 100% coverage, so the baseline for parameter semantics is 3. The description reinforces the effect of the key (adding private ping/fail URLs) and clarifies the public/private distinction, adding value beyond the schema's basic description. It does not introduce new parameter details, but it does enrich the context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (monitors on this instance), and specifies the returned status values. It distinguishes itself from siblings like create_heartbeat or ping_heartbeat by its listing and status-reporting intent, and the optional key for private URLs adds scope clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it lists all monitors, and optionally adds private URLs for a single monitor when a key is passed. It does not explicitly mention alternatives or when not to use it, but the scope is evident. It lacks an explicit comparison to get_status or other siblings, so it does not fully meet the 'explicit when-not' bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ping_heartbeatAInspect
Record one successful run for a monitor (same as GETting https://golemreach.com/heartbeat/ping/). Call this every time your job runs. For kind=selfcheck monitors pass an 'endpoints' array of {"name","status_code","cf_mitigated","tls_ms"} objects instead — alerts fire on trusted->challenged / recovery transitions only.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | monitor key returned by create_heartbeat | |
| endpoints | No | selfcheck monitors only: one object per probed surface, e.g. {"name":"claude-session","status_code":200,"cf_mitigated":false,"tls_ms":230} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden and does so well. It discloses the side effect (recording a successful run), the method (same as GETting the URL), the selfcheck payload variant, and the alerting behavior (trusted->challenged / recovery transitions only). This goes well beyond what the schema alone tells an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler. The core purpose is front-loaded, then operational usage, then the selfcheck condition and alert semantics — every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, invocation cadence, the selfcheck case, and alert semantics, which are the key things an agent needs to call it correctly. It slightly under-specifies what the call returns and does not explicitly route failure cases to record_failure, but for a simple ping/record tool this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already handles key and endpoints. The description adds a typical endpoint field shape and ties key to the URL path, but it does not materially extend the documented parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: 'Record one successful run for a monitor' and anchors it to a concrete HTTP endpoint via the GET equivalent. This clearly distinguishes it from siblings like record_failure (failure vs success) and create_heartbeat/list_heartbeats (monitor management).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent when to call it: 'Call this every time your job runs.' It also gives a conditional rule for selfcheck monitors to pass an endpoints array instead. It does not explicitly name record_failure as the alternative for failed jobs, but the successful/failed contrast is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_failureAInspect
Explicitly mark a run as FAILED for a monitor (same as GET https://golemreach.com/heartbeat/fail/). The monitor goes DOWN immediately and alerts fire.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the immediate side effect (monitor goes DOWN, alerts fire), which is critical behavioral information for a mutation tool. It doesn't mention reversibility or idempotency, but the disclosed side effects are the most important behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core action and consequence are front-loaded, and the endpoint reference is a compact disambiguator. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the action, the resource, and the immediate effect. The only gap is not explaining what 'key' refers to or how to obtain it, but the endpoint reference partially covers that. Overall, an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions the endpoint path includes <key>, which implies the key identifies the monitor, but it doesn't explicitly explain what the key is or where to find it. The description adds some meaning beyond the bare schema but leaves the key's semantics partially implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Explicitly mark a run as FAILED'), the resource (a monitor), and the immediate consequence (monitor goes DOWN, alerts fire). It also names the exact HTTP endpoint equivalent, which disambiguates it from siblings like ping_heartbeat and get_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this is the tool to use when a run should be marked failed, and the endpoint reference distinguishes it from ping_heartbeat (which presumably marks success). It doesn't explicitly state when not to use it or name alternatives, but the context is clear enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
- First observed
create_heartbeat - First observed
get_status - First observed
list_heartbeats - First observed
ping_heartbeat - First observed
record_failure
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Dead-man's-switch for cron jobs & AI agents. Import a crontab to arm one silent-miss alert per job.
Dead-man switch for AI agents & cron jobs: heartbeat with state capsule, alerts + resume links
Dead-man switch for cron and webhooks: ingest URL, miss detection, alerts and a status feed.
Monitoring that agents set up for themselves — cron jobs, CI/CD pipelines and AI agent runs.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceDead-man's-switch monitoring for cron jobs and AI agents: your job or agent pings a URL each run, and Kywio alerts you when the pings stop. MCP-native (create/ping/get heartbeat) plus REST — an outside observer for agents that can't detect their own death.-
- AlicenseNot gradedqualityBmaintenanceThe watchdog for unattended AI agents: flags MISSED, FAILED, NO_EVIDENCE, RETRY_STORM, BUDGET, DRIFT and STALLED runs of Claude Code routines, OpenClaw, n8n and cron jobs, and alerts via Telegram, Slack or webhook. MIT and self-hostable.MIT
- AlicenseBqualityBmaintenanceEnables AI agents to create on-chain and web monitors, dead-man switches, cron triggers, and multi-agent coordination with pay-per-use x402 payments.1968MIT
- AlicenseAqualityAmaintenanceAn MCP server that surfaces scheduled-job state and detects silent failures (exit 0 but no useful output) for cron, systemd timers, and OpenClaw schedulers, enabling AI agents to query job health and overdue status directly.6MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool maps to a distinct action: creating a monitor, checking one monitor's full state, listing monitors, signaling success, and recording failure. get_status and list_heartbeats are the closest pair, but their cardinality and detail level make them easy to tell apart.
All tool names use lowercase snake_case with a clear verb-first pattern: create, get, list, ping, record. The nouns are all meaningful in the heartbeat domain, and there is no mixing of camelCase or vague verbs like 'process' or 'run'.
Five tools is well-scoped for a focused dead-man switch service. Each tool covers a necessary part of the workflow without redundancy or bloat.
The core loop is covered: create a monitor, ping success, record failure, and inspect status. However, there is no update, delete, or disarm tool, so changing monitor configuration or retiring a job leaves an active monitor that will eventually go down and alert.