MCP server for querying Prometheus/Mimir, built for AI agents
prom-mcp demonstrates solid fundamentals: all 11 tools have clear verb-noun naming (run_query, list_metrics, fetch_alerts) and descriptions (avg ~60 chars). Input schemas are present with typed parameters and descriptions. However, output schemas are not documented in the visible code, parameter descriptions lack format/constraint details (e.g., RFC3339 format for time params is mentioned but not formalized), and error handling guidance is minimal. No tool annotations (readOnlyHint) despite all being read-only. Composition is strong, tools are single-responsibility and chainable (e.g., list_metrics → run_query). Security is good: no secrets in params, rate limiting present. Naming follows verb_noun convention consistently.
Fetch active alerts from Prometheus/Mimir
Fetch build information from Prometheus/Mimir
Fetch alerting and recording rules from Prometheus/Mimir
Fetch runtime information from Prometheus/Mimir
Fetch TSDB status from Prometheus/Mimir
Get values for a specific label in Prometheus/Mimir
List available label names in Prometheus/Mimir
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what fields does run_query return? Is it time-series data, scalar, or matrix format?). Breaks tool chaining.
Parameter descriptions lack format constraints. 'start' and 'end' accept 'RFC3339 or relative time string' but no examples or regex patterns. LLMs cannot validate input format and may pass invalid values like '2024-01-15' (ambiguous: is this ISO 8601 or US date format?).
No tool annotations despite all tools being read-only. Missing readOnlyHint in tool definitions prevents clients from optimizing caching, retry logic, and safety checks. Spec 2026-07-28 supports tool annotations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | <=2025-11-25 | v2 |
List available metric names in Prometheus/Mimir
Get metadata for a specific metric
Execute a PromQL query against Prometheus/Mimir
Find series matching given matchers
Error handling lacks recovery guidance. No visible error messages that tell LLMs what to do next (e.g., 'Invalid PromQL syntax. Check query with promql-parser or simplify expression.'). Raw errors provide no actionable path forward.
Pagination not visible for list_metrics and list_labels. If Prometheus returns 10k+ metrics, returning all of them wastes tokens and risks context window exhaustion. No limit or offset parameters documented.