MCP server that provides list of active incidents in the cluster by querying Prometheus
Single tool 'incidents' has critical definition gaps. Tool name lacks action verb (should be 'get_incidents' or 'list_incidents'). Description is adequate (67 chars) but parameters lack descriptions entirely, 'component' and 'time' have no guidance on format, constraints, or usage. Input schema present but incomplete: no type declarations visible in registration, parameters lack descriptions required by pattern:tool-description. No output schema documented. Error handling returns raw errors without recovery guidance. Tool does not follow verb_noun naming convention (baseline: 90% of A+ tools start with action verb).
Incidents provides list of active incidents in the cluster.
Tool name 'incidents' lacks action verb. Should be 'get_incidents', 'list_incidents', or 'search_incidents' to signal intent to LLM.
Parameters 'component' and 'time' have no descriptions. LLM cannot infer that 'time' expects duration strings like '1h' or '24h' without explicit guidance.
No output schema documented. LLM cannot plan downstream operations or extract structured data from Prometheus response.
Error handling returns raw errors (e.g., time.ParseDuration failures, Prometheus API errors) without recovery guidance. LLM has no actionable next step.
Parameter 'time' accepts free-form duration strings with no validation or constraint documentation. LLM may pass invalid formats like '1 hour' or 'one hour'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |