heartbeat-monitor
Server Details
Dead-man's-switch for cron jobs & AI agents. Import a crontab to arm one silent-miss alert per job.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
7 toolscreate_heartbeatAInspect
Create a Cronping heartbeat monitor (dead-man's-switch). Returns a ping_url to call on each successful run of your agent loop, worker, or cron job, plus a claim_token to manage it. If pings stop arriving within period+grace, Cronping raises an alert. No account required. After creating, send one verification ping (call ping_heartbeat with the returned id) to confirm setup — the check flips from 'new' to UP so you know it's wired correctly. Alternatively, pass pull_url to make a PULL check: Cronping fetches that URL on schedule and alerts if it fails — for targets that can't call a ping URL (a health endpoint, status page, or API).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label for what is monitored, e.g. "nightly-backup" or "research-agent-loop". | |
| No | Email address for DOWN and recovery alerts. STRONGLY RECOMMENDED — without an email or webhook_url, Cronping tracks status but cannot notify anyone when the job stops, which defeats the purpose. Use your operator's email. | ||
| pull_url | No | Optional. If set, creates a PULL check instead: Cronping itself fetches this URL every period_seconds and alerts if it fails — use for a target that can't call a ping URL (a public health endpoint, status page, or API). No ping needed. | |
| stuck_after | No | Optional. Flip to STUCK if the progress_token passed to ping_heartbeat stays identical for this many consecutive runs (default 3, 0 disables). Catches zombie runs that keep pinging but make no progress. | |
| webhook_url | No | https webhook (Slack/Discord/generic) for DOWN and recovery alerts. Set this OR email so someone is actually notified when the monitored job goes silent. | |
| grace_seconds | No | Extra slack before marking DOWN, in seconds. Default 3600. | |
| pull_contains | No | Optional (pull checks only). The fetched response body must contain this text to count as UP; otherwise Cronping alerts. | |
| period_seconds | No | How often you expect a ping, in seconds (min 60). Default 86400 (daily). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only negative hints (readOnlyHint=false, etc.), so the description carries the transparency burden. It discloses the return values (ping_url, claim_token), the state transition from 'new' to UP after verification, the alerting behavior when pings stop, and the pull check semantics. It also notes that no account is required and that without email/webhook_url, no one gets notified. 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?
The description is longer than minimal but every sentence serves a purpose: defining the tool, explaining the verification step, and detailing the pull check alternative. It is front-loaded with the core purpose and avoids fluff. Slightly dense, but content-rich and logically organized.
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 fully accounts for the return values (ping_url, claim_token) and the id used for verification. It explains the different modes (ping vs pull), the alerting condition, and the setup confirmation step. For a tool with 8 parameters and no output schema, this is a complete and context-rich description.
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 coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the overall workflow (verification ping, pull vs ping) and the purpose of returned values. However, it does not elaborate on individual numeric parameters beyond what the schema already says, so it doesn't reach the top score.
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 opens with a specific verb+resource: 'Create a Cronping heartbeat monitor'. It clearly distinguishes this from sibling tools (ping_heartbeat sends pings, get_heartbeat_status reads status, set_heartbeat_alert modifies alerts) by focusing on creation and the returned artifacts. The dead-man's-switch concept is explained, leaving no ambiguity about what the tool does.
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 explicit when-to-use guidance: it is for monitoring agent loops, workers, or cron jobs. It also explains when to use the pull_url alternative instead ('for targets that can't call a ping URL'), and gives a recommended follow-up action (send one verification ping). It warns about the email/webhook requirement, helping the agent decide whether to set those parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_heartbeatADestructiveIdempotentInspect
Permanently delete a Cronping heartbeat monitor and all its events. Use this to tear down an ephemeral check your agent created (e.g. at shutdown, or after a one-off job) so it stops being monitored and can never raise a stale DOWN alert. Requires the claim_token returned by create_heartbeat. This is irreversible — the id and ping_url stop working immediately. To silence a check temporarily instead of deleting it, use pause_heartbeat.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The check id returned by create_heartbeat. | |
| claim_token | Yes | The claim_token returned by create_heartbeat. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds important behavioral context: the deletion is irreversible, id and ping_url stop working immediately, all events are removed, and does not raise stale DOWN alerts. It also discloses the required claim_token. 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?
The description is front-loaded with the core purpose and consequences, then provides usage rationale and an explicit alternative. Every sentence adds distinct value, and there is no redundant or filler content.
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?
Given the tool's simplicity, the description fully covers what is deleted, why to use it, the required authentication token, irreversibility, side effects, and how to choose a non-destructive alternative. There is no output schema, but no return-value explanation is needed for a delete operation.
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 as returned by create_heartbeat. The description reinforces the necessity of claim_token but does not add substantive new parameter semantics 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 states a specific verb and resource: 'Permanently delete a Cronping heartbeat monitor and all its events.' It also explicitly differentiates itself from the sibling 'pause_heartbeat' by noting that pause is for temporary silencing, making the purpose unambiguous.
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 provides clear when-to-use guidance: 'tear down an ephemeral check your agent created (e.g. at shutdown, or after a one-off job)'. It also gives an explicit when-not-to-use alternative: 'To silence a check temporarily instead of deleting it, use pause_heartbeat.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_heartbeat_statusARead-onlyIdempotentInspect
Get the live status of a Cronping check (up/down/new, last ping time, ping count, and whether an alert channel is set).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| claim_token | Yes | The claim_token returned by create_heartbeat. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds behavior context by enumerating the returned information (up/down/new, last ping time, ping count, alert channel), which is valuable since there is no output schema. However, it does not mention error or edge-case behavior.
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 a single, compact sentence that front-loads the action and then lists the exact data returned. Every word adds value.
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?
Despite the lack of an output schema and only partial parameter documentation, the description conveys the tool's purpose and return data adequately. Given the tool's simplicity and the annotations confirming read-only/idempotent behavior, it is reasonably complete for an agent to select. However, the ambiguity around the 'id' parameter prevents a 5.
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 only 50% (claim_token has a description, id does not). The tool description does not explain the parameters at all, leaving the meaning of 'id' ambiguous. While claim_token is documented in the schema, the missing id description is not compensated.
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 tool's action ('Get the live status') and resource ('Cronping check'), and distinguishes it from sibling tools like create_heartbeat and set_heartbeat_alert by focusing on reading status rather than modifying or creating.
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 usage for retrieving current status but does not explicitly state when to choose this over alternatives or provide exclusions. The context signals show sibling tools for creation and alerting, but the description lacks direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_crontabAInspect
Arm a dead-man's-switch for EVERY line of a crontab in one call. Paste raw crontab text; Cronping parses each schedule, derives the expected interval from the cron expression itself (using the longest gap between runs so weekend/twice-daily schedules don't false-alarm), and creates one heartbeat monitor per job. Returns, for each line, a ping_url plus the same command with && curl -fsS <ping_url> already appended so you can drop it straight back into the crontab. Also anchors each new check's first deadline to the schedule's real next run — so a fresh switch neither pages at t=0 nor sleeps a full period. No account required. Ideal when an agent or operator wants to instrument a whole box's scheduled jobs at once. Up to 20 lines per call. Lines with no fixed interval (e.g. @reboot) are skipped.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Optional. Email address for DOWN and recovery alerts, applied to every check created. STRONGLY RECOMMENDED — without it the checks track status but cannot notify anyone. | ||
| crontab | Yes | Raw crontab text, one job per line (comments and FOO=bar env lines are ignored). Standard 5-field expressions plus @daily/@hourly/@weekly/@monthly/@yearly macros and named days/months are supported. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals detailed behavioral aspects: it parses schedules, derives intervals, creates monitors, returns ping_url and modified commands, anchors deadlines to real next runs, and explains the dead-man's-switch logic. It also notes edge cases and limitations, providing full transparency beyond the minimal 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?
The description is efficiently structured, leading with the main purpose and then detailing mechanics, returns, and limitations in a logical flow. Each sentence contributes necessary information without redundancy, being appropriately detailed for the tool's complexity.
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 all essential context: what the tool does, how it processes input, what it returns, operational limits, and special cases like skipped lines and deadline anchoring. It is sufficiently complete for an agent to understand the tool's full behavior and prerequisites, even without an output schema.
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?
Both parameters (email and crontab) are fully described in the schema, and the description adds context: email is for alerts, crontab parsing ignores comments and env lines, and supports macros and named days. This enriches understanding beyond the raw schema, achieving full semantic coverage.
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 tool's primary action: 'Arm a dead-man's-switch for EVERY line of a crontab in one call.' It specifies the resource (crontab) and the operation (import/arm), distinguishing it from sibling tools that handle individual heartbeats.
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 gives explicit usage instructions: 'Paste raw crontab text; Cronping parses each schedule...' and includes key constraints like 'Up to 20 lines per call' and 'Lines with no fixed interval (e.g. @reboot) are skipped,' which guide when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_heartbeatAIdempotentInspect
Pause or resume monitoring on an existing Cronping check without deleting it. Pause during planned maintenance or a known downtime window so a silent job does not raise a false DOWN alert; resume to re-arm the dead-man's-switch. While paused, missed pings are ignored and no alerts fire. Requires the claim_token returned by create_heartbeat.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The check id returned by create_heartbeat. | |
| paused | No | true to pause monitoring, false to resume it. Defaults to true. | |
| claim_token | Yes | The claim_token returned by create_heartbeat. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutating, non-destructive, idempotent behavior. The description adds valuable behavioral context beyond that: 'While paused, missed pings are ignored and no alerts fire' and that resuming re-arms the dead-man's-switch. This clearly explains the operational effect without contradicting any annotation.
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 four sentences with every sentence earning its place: the core action, the use case, the behavioral effect, and the required prerequisite. It is front-loaded with the most important information and contains 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?
For a three-parameter mutation tool with no output schema, the description is complete. It explains what the tool does, when to use it, what happens while paused, and what credential is required. No important calling context is missing.
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 coverage is 100%, so the schema already fully documents id, paused, and claim_token. The description adds the semantic link that claim_token comes from create_heartbeat and that paused controls pause vs. resume, but it does not go beyond the schema's own parameter descriptions.
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 and resource: 'Pause or resume monitoring on an existing Cronping check without deleting it.' It clearly distinguishes itself from delete_heartbeat by emphasizing the check is not deleted, and the behavior of pausing versus resuming is immediately understandable.
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 gives explicit when-to-use guidance: 'Pause during planned maintenance or a known downtime window so a silent job does not raise a false DOWN alert; resume to re-arm the dead-man's-switch.' It also specifies the prerequisite claim_token, making it clear when the tool is applicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ping_heartbeatAIdempotentInspect
Send a heartbeat signal to a Cronping check. signal="success" (default) marks it UP and resets the timer; "start" records that a run began (for duration); "fail" marks it DOWN immediately and alerts. Optionally pass progress_token (a digest of your run's actual output) on success pings: if the same token repeats for several consecutive runs, the check flips to STUCK — catching a "zombie" job that keeps pinging on schedule while its real work has stalled.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The check id returned by create_heartbeat. | |
| signal | No | success | start | fail. Default success. | |
| progress_token | No | Optional. A short digest/hash of this run's output (e.g. last-processed id, row count, content hash). If it stays identical across stuck_after consecutive runs, the check flips to STUCK and alerts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation idempotentHint is true, but the description reveals that repeatedly sending success with the same progress_token can flip the check to STUCK, meaning identical repeated calls produce different outcomes over time. This contradicts the idempotency hint, so the description is in direct conflict 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?
The description is dense yet compact, using two sentences to cover signal effects, the progress_token mechanism, and the zombie-job use case. Every phrase earns its place with no filler, and the structure flows logically from basics to optional behavior.
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 thoroughly covers the tool's behavior including state transitions and the STUCK mechanism, which is crucial for correct usage. It omits the response format and potential errors, but given the tool's simple nature and lack of output schema, the description is nearly complete. The idempotency contradiction slightly undermines overall contextual reliability.
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?
Even though schema coverage is 100%, the description adds substantial meaning beyond the schema: it explains what each signal value does (UP, duration, DOWN), and how progress_token behaves (consecutive identical tokens trigger STUCK). This transforms raw parameter definitions into actionable behavioral knowledge.
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 tool sends a heartbeat signal to a Cronping check, with a specific verb and resource. It enumerates the three signal types and their distinct effects, making it obvious what the tool does and differentiating it from siblings like create_heartbeat and get_heartbeat_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 provides clear context for when to use each signal (success marks UP, start records beginning, fail marks DOWN) and when to use progress_token (on success pings to detect zombie jobs). It doesn't explicitly name alternatives or exclusions, but the usage context is evident from the signal semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_heartbeat_alertAIdempotentInspect
Add or change the alert channel on an EXISTING Cronping check (use this instead of creating a duplicate). Sets the email and/or webhook (Slack/Discord/generic https) that Cronping notifies when the monitor goes silent or recovers. Without an alert channel a check tracks status but can't warn you — call this once per check to make the dead-man's-switch actually protect you.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The check id returned by create_heartbeat. | |
| No | Email address to notify (e.g. the operator/owner). Pass empty string to clear. | ||
| claim_token | Yes | The claim_token returned by create_heartbeat. | |
| webhook_url | No | Optional https webhook (Slack/Discord/generic) to notify. Pass empty string to clear. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency and non-read-only behavior. The description adds context beyond that by explaining the notification triggers ('when the monitor goes silent or recovers') and the consequence of not setting an alert channel. This enriches behavioral understanding without contradicting 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?
The description is concise and front-loaded. The first sentence states the core purpose, the second adds technical detail, and the third explains the usage context. Every sentence earns its place, with no redundant or filler content.
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 tool's purpose, when to use it, and the importance of setting an alert channel. It implies prerequisites ('EXISTING') and the id/claim_token are documented in the schema. Given the tool's moderate complexity and the presence of annotations, the description is sufficiently 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?
Schema description coverage is 100%, so the parameters are already well-documented. The description mentions email and webhook types but does not add significant meaning beyond what the schema provides. It provides no additional syntax or format details, so a baseline of 3 is appropriate.
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 tool's function: 'Add or change the alert channel on an EXISTING Cronping check.' It identifies the specific resource (alert channel) and the action (add/change), and explicitly distinguishes it from creating a duplicate, which differentiates it from sibling tools like create_heartbeat.
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 explicit guidance: 'use this instead of creating a duplicate' and 'call this once per check.' It also explains when alerts are needed, stating that without an alert channel a check 'tracks status but can't warn you,' clarifying the tool's role relative to alternatives.
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.
2 tool updates
- Added
delete_heartbeat - Added
pause_heartbeat
1 tool update
- Added
import_crontab
1 tool update
- Added
set_heartbeat_alert
1 tool update
- Changed
create_heartbeat2 fields changed- changed
Input schema / properties / email / descriptionPrevious value: -"Optional email address for DOWN and recovery alerts."New value: +"Email address for DOWN and recovery alerts. STRONGLY RECOMMENDED — without an email or webhook_url, Cronping tracks status but cannot notify anyone when the job stops, which defeats the purpose. Use your operator's email." - changed
Input schema / properties / webhook_url / descriptionPrevious value: -"Optional https webhook (Slack/Discord/generic) for alerts."New value: +"https webhook (Slack/Discord/generic) for DOWN and recovery alerts. Set this OR email so someone is actually notified when the monitored job goes silent."
1 tool update
- Changed
create_heartbeat2 fields changed- added
Input schema / properties / pull_containsAdded value: +{ + "description": "Optional (pull checks only). The fetched response body must contain this text to count as UP; otherwise Cronping alerts.", + "type": "string" +} - added
Input schema / properties / pull_urlAdded value: +{ + "description": "Optional. If set, creates a PULL check instead: Cronping itself fetches this URL every period_seconds and alerts if it fails — use for a target that can't call a ping URL (a public health endpoint, status page, or API). No ping needed.", + "type": "string" +}
2 tool updates
- Changed
create_heartbeat1 field changed- added
Input schema / properties / stuck_afterAdded value: +{ + "description": "Optional. Flip to STUCK if the progress_token passed to ping_heartbeat stays identical for this many consecutive runs (default 3, 0 disables). Catches zombie runs that keep pinging but make no progress.", + "type": "number" +}
- Changed
ping_heartbeat1 field changed- added
Input schema / properties / progress_tokenAdded value: +{ + "description": "Optional. A short digest/hash of this run's output (e.g. last-processed id, row count, content hash). If it stays identical across stuck_after consecutive runs, the check flips to STUCK and alerts.", + "type": "string" +}
3 tool updates
- First observed
create_heartbeat - First observed
get_heartbeat_status - First observed
ping_heartbeat
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 switch monitors for cron & AI agents with dependency-cascade alerts. No account needed.
Dead-man switch for cron and webhooks: ingest URL, miss detection, alerts and a status feed.
Dead-man switch for AI agents & cron jobs: heartbeat with state capsule, alerts + resume links
Monitoring that agents set up for themselves — cron jobs, CI/CD pipelines and AI agent runs.
Related MCP Servers
- 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
- 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 gradedqualityBmaintenanceSchedule any prompt on any cron expression; when it fires, we POST the job to your callback URL. No LLM in the stack.MIT
- 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 has a clearly distinct role: create, delete, status check, bulk import from crontab, pause/resume, ping, and alert configuraiton. No two tools appear to perform the same action, and the descriptions reinforce their separation.
Tool names consistently follow a verb_noun snake_case pattern (create_, delete_, pause_, ping_, set_). 'import_crontab' deviates slightly by naming the input format rather than the domain object, but it remains readable and fits the verb-based convention.
Seven tools is well within the ideal range for a focused heartbeat-monitoring server. Each tool represents a necessary operation without bloat or redundant overlap.
The core lifecycle is covered: create, ping, pause/resume, alert setup, status, delete, and bulk import. Missing update functionality for period/grace and no list-all-heartbeats operation are notable but non-blocking gaps for the core dead-man's-switch workflow.