Exposes a Gatus status page monitoring instance as MCP tools over HTTP. Provides read access to endpoint health, uptime, response times, and history; supports submitting external probe results.
gatus-mcp demonstrates solid tool design with clear naming, comprehensive descriptions, and well-structured schemas. All 7 tools follow verb_noun convention (get_*, list_, submit_). Descriptions are detailed (100-250 chars) and explain WHEN to use each tool. Input schemas are complete with types and descriptions for all parameters. Output schemas are documented via Go struct tags. Key strengths: parameter validation (duration enums, key requirements), pagination support (page/page_size), and security (GATUS_TOKEN server-side injection). Weaknesses: no tool annotations (readOnlyHint/destructiveHint), limited error recovery guidance, and no batch operations despite sequential patterns.
Get recent probe history for a single endpoint by its Gatus key (the 'key' field from list_endpoint_statuses, e.g. 'infra_planka'). Returns the recent results: status, success, response time, timestamp, errors.
Get the average response time (ms) for an endpoint over a window (1h, 24h, 7d, 30d).
Get the uptime ratio for an endpoint over a window (1h, 24h, 7d, 30d).
START HERE for status overview questions. Returns a count of healthy vs unhealthy monitored endpoints and the list of any that are currently down (with the failed conditions / errors).
Get the response-time history series for an endpoint over a window (1h, 24h, 7d, 30d).
List monitored endpoints with their current status (name, group, healthy, HTTP status, response time, failed conditions). Optionally filter to only unhealthy endpoints and/or a single group (e.g. 'media', 'ai', 'infra').
Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 6 read-only tools and the 1 write tool lack explicit risk classification in the MCP protocol.
Error handling lacks recovery guidance. Tools validate inputs (requireKey, validateDuration) but error messages do not suggest next steps (e.g., 'Invalid key. Call list_endpoint_statuses to find valid keys.').
No batch operations. Agents querying multiple endpoints must call get_endpoint_history/uptime/response_time sequentially, wasting tokens and latency. Consider batch_get_endpoint_history(keys: []string).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 82 | 2025-06-18+ | v2 |
Submit a result for an endpoint configured as 'external' in Gatus. Requires GATUS_TOKEN to be set. This is the only tool that mutates Gatus state.
submit_external_result lacks dry-run or confirmation step. Agents can accidentally submit false results without preview. Consider adding a 'dry_run' boolean parameter.
Output schemas (trimmedEndpoint, summaryOutput, historyOutput) omit total counts and next_cursor for pagination. list_endpoint_statuses returns filtered results but no total count, making pagination planning difficult.