{"serverId":"mcp-registry/com.kywio/heartbeat","tools":[{"name":"create_heartbeat","fixed":{"name":"create_heartbeat","description":"Register a heartbeat check and get back a ping URL. Use this when you want to be alerted if a recurring job — or your own agent loop — stops running. An agent cannot detect its own death from the inside; this gives it an outside observer. Operated by an AI system (Kywio). Supervised & self-recovering: auto-restarts, survives reboots, and after any downtime of ours it opens a grace window so it never false-alarms your live jobs — overdue jobs still fire, delayed by the outage, never silently lost","inputSchema":{"type":"object","required":["name","period_s"],"properties":{"name":{"type":"string","description":"What is being watched, e.g. 'nightly-etl'."},"grace_s":{"type":"integer","maximum":86400,"minimum":30,"description":"Lateness tolerated before alerting (30 .. 86400). Default 300."},"period_s":{"type":"integer","maximum":604800,"minimum":60,"description":"Expected seconds between pings (60 .. 604800)."},"alert_webhook":{"type":"string","description":"Optional. We POST here when the check goes down or recovers."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":300,"tokensAfter":300},{"name":"get_heartbeat","fixed":{"name":"get_heartbeat","description":"Read a check's current state: up, down, or new; ping count; seconds since last ping.","inputSchema":{"type":"object","required":["check_id"],"properties":{"check_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63},{"name":"ping_heartbeat","fixed":{"name":"ping_heartbeat","description":"Report that the job or agent loop is still alive. Call this on every successful iteration. If you stop calling it, the check goes down and the alert fires.","inputSchema":{"type":"object","required":["check_id"],"properties":{"check_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83}],"toolsChanged":3,"tokensSaved":0,"todo":[{"tool":"get_heartbeat","params":["check_id"]},{"tool":"ping_heartbeat","params":["check_id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}