Skip to main content
Glama

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.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
aniripsaretro-max/golemreach
GitHub Stars
0

Available Tools

5 tools
create_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNopush = 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 URLpush
nameYesunique name, 1-40 chars [A-Za-z0-9_.-]
grace_sNoextra seconds of slack before DOWN (0-86400)
pass_keyNoPro pass key from a $5 USDC payment (optional; skips rate limits)
period_sNoexpected seconds between pings (60-86400)
depends_onNoparent 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_urlNopublic http(s) URL to probe (pull only)
webhook_urlNopublic http(s) URL that receives UP/DOWN alerts (optional)

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_statusA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNomonitor key (private lookup; also returns ping/fail URLs)
nameNomonitor name (public lookup)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_heartbeatsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNooptional monitor key; adds the private ping_url/fail_url for that one monitor

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesmonitor key returned by create_heartbeat
endpointsNoselfcheck monitors only: one object per probed surface, e.g. {"name":"claude-session","status_code":200,"cf_mitigated":false,"tls_ms":230}

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 5 tool updates
    • First observedcreate_heartbeat
    • First observedget_status
    • First observedlist_heartbeats
    • First observedping_heartbeat
    • First observedrecord_failure

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Dead-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.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    The 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
  • A
    license
    A
    quality
    A
    maintenance
    An 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.
    6
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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'.

Tool Count5/5

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.

Completeness3/5

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.