Model Context Protocol server for Prometheus integration that enables AI assistants to query and analyze Prometheus metrics
Five tools with clear verb-noun naming (execute_query, execute_range_query, list_metrics, get_metric_metadata, get_targets). All have descriptions (10-100 chars, baseline 194). Input schemas visible with type declarations and parameter descriptions. However, output schemas are NOT documented, responses are inferred from code but not formally declared in tool definitions. Parameter descriptions are minimal (e.g., 'PromQL query string' lacks format/constraint guidance). No error handling guidance for LLMs (e.g., what to do if Prometheus is unreachable). No pagination support despite list_metrics potentially returning hundreds of metrics. Tool descriptions lack WHEN/WHY context for selection.
Execute a PromQL instant query against Prometheus
Execute a PromQL range query with start time, end time, and step interval
Get metadata for a specific metric
Get information about all scrape targets
List all available metrics in Prometheus
Output schemas not documented. Tool descriptions state what is returned (e.g., 'resultType' and 'result') but LLMs cannot parse unstructured code to infer field types and structure. Agents need explicit schema to plan downstream calls.
list_metrics and get_targets lack pagination (limit, offset, next_cursor). If Prometheus has thousands of metrics or targets, returning all results will blow context window. No result count or pagination guidance in descriptions.
Parameter descriptions are generic and lack format/constraint guidance. E.g., 'PromQL query string' does not explain valid syntax, common mistakes, or when to use instant vs range queries. 'RFC3339 or Unix timestamp' lacks examples of valid formats.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
No error handling guidance. If Prometheus is unreachable, returns generic HTTP error. LLM has no recovery path (e.g., 'Check PROMETHEUS_URL is set and reachable'). No distinction between retryable (timeout) vs user-fixable (bad query) errors.
Tool descriptions lack WHEN/WHY context. 'Execute a PromQL instant query' does not explain when to use instant vs range, or what the LLM should do with the result. Agents cannot distinguish between similar tools without deeper reasoning.