{"serverId":"mcp-registry/io.github.lazymac2x/cron-monitor","tools":[{"name":"create_monitor","fixed":{"name":"create_monitor","description":"Register a new cron job monitor. Returns the monitor ID to use in ping URLs. Requires API key.","inputSchema":{"type":"object","required":["api_key","name","expected_interval_seconds"],"properties":{"name":{"type":"string","description":"Human-readable monitor name"},"api_key":{"type":"string","description":"API key (x-api-key header value)"},"notify_url":{"type":"string","description":"Webhook URL for DOWN alerts (receives POST with JSON)"},"grace_period_seconds":{"type":"integer","default":0,"description":"Extra seconds allowed after interval before going DOWN"},"schedule_description":{"type":"string","description":"Human-readable schedule (e.g. 'Every night at 3am UTC')"},"expected_interval_seconds":{"type":"integer","description":"How often the job should run (seconds)"}}},"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":230,"tokensAfter":230},{"name":"get_dashboard","fixed":{"name":"get_dashboard","description":"Get an overview of all cron monitors — total count, counts per status (up/down/grace/new), and a summary list. Requires API key.","inputSchema":{"type":"object","required":["api_key"],"properties":{"api_key":{"type":"string","description":"API key (x-api-key header value)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"get_monitor_status","fixed":{"name":"get_monitor_status","description":"Get the current status (up/down/grace/new) of a specific cron monitor along with last ping time and total ping count.","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"monitor_id":{"type":"string","description":"Monitor ID to check"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"get_ping_history","fixed":{"name":"get_ping_history","description":"Retrieve the last 100 ping events for a monitor (type, timestamp, IP, duration for complete events). Requires API key.","inputSchema":{"type":"object","required":["api_key","monitor_id"],"properties":{"api_key":{"type":"string","description":"API key (x-api-key header value)"},"monitor_id":{"type":"string","description":"Monitor ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"list_monitors","fixed":{"name":"list_monitors","description":"List all monitors with real-time computed status. Requires API key.","inputSchema":{"type":"object","required":["api_key"],"properties":{"api_key":{"type":"string","description":"API key (x-api-key header value)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"ping_monitor","fixed":{"name":"ping_monitor","description":"Send a heartbeat ping to a cron monitor to confirm the job ran successfully. Use ping_type='ping' for simple heartbeats, 'start'+'complete' for duration tracking, or 'fail' to immediately mark it down.","inputSchema":{"type":"object","required":["monitor_id"],"properties":{"ping_type":{"enum":["ping","start","complete","fail"],"type":"string","default":"ping","description":"Type of ping event"},"monitor_id":{"type":"string","description":"Monitor ID to ping"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140}],"toolsChanged":6,"tokensSaved":0,"todo":[],"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."}