Open-source MCP server for agentic incident diagnosis across Prometheus, Loki, Sentry, and GitHub
incident-lens has well-structured tool definitions with clear naming (verb_noun pattern), comprehensive parameter descriptions, and proper schema validation via Zod. All 5 tools follow consistent patterns and include time-range parameters with sensible defaults. However, output schemas are not explicitly documented in the visible code, tool handlers return JSON-stringified results without formal schema declarations. Error handling is minimal; tools return raw results without recovery guidance. Parameter constraints are good (enums, min/max) but some descriptions could be more prescriptive about format expectations.
Build a unified incident timeline by correlating metrics anomalies, log spikes, error spikes, and deployments across all configured backends. This is the primary tool for incident diagnosis — start here.
Fetch recent deployments from GitHub. Use for correlating incidents with code changes.
Fetch error groups from Sentry. Use for understanding what errors occurred in a time window.
Query Loki logs using LogQL or plain text search. Use for fetching log entries from a service.
Query Prometheus metrics using PromQL. Use for fetching raw time-series data.
Output schemas not documented. Tool handlers return JSON-stringified results without formal schema declarations. LLMs cannot predict response structure or plan downstream operations.
No error recovery guidance. Tools return raw results or errors without actionable next steps. E.g., if Prometheus is unreachable, the LLM gets no hint to check configuration or retry.
Result limits not enforced or documented. query_logs and get_errors accept 'limit' params but no guidance on maximum safe values or pagination strategy for large result sets.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Time parameter format ambiguous. Descriptions say 'ISO 8601 or relative (e.g. "1h ago")' but do not specify exact regex or parsing rules. LLMs may pass invalid formats.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only but this is not declared in the schema, forcing LLMs to infer safety from descriptions.