Model Context Protocol server for Prometheus - enables querying Prometheus metrics, rules, and labels through MCP tools
Server has 6 tools with complete input schemas and descriptions. Naming follows verb_noun convention (execute_query, get_rules, list_metrics). Descriptions are present but brief (avg 80 chars, below 194-char baseline). Parameters have types and descriptions. No output schemas documented. Error handling is minimal, make_prometheus_request() raises ValueError but provides no recovery guidance. Missing tool annotations (readOnlyHint, idempotentHint). All tools are read-only, which is safe, but this is not declared in tool metadata.
Execute an instant PromQL query against Prometheus
Execute a PromQL range query with start time, end time, and step interval
Get all values for a specific label
List all available label names
Get all alerting and recording rules currently loaded in Prometheus
List all available metrics in Prometheus
No output schemas documented. LLMs cannot predict response structure (resultType, result fields, data types). Downstream tool chaining is blind.
Error handling is minimal. make_prometheus_request() raises ValueError with generic messages ('Prometheus API error'). No recovery guidance, no actionable next steps for LLM.
Tool descriptions are brief (avg 80 chars vs 194-char baseline). Missing context on WHEN to use each tool and dependencies. E.g., list_metrics() should note it's useful for discovery before execute_query().
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No tool annotations. All tools are read-only and idempotent, but readOnlyHint and idempotentHint are not declared. LLM cannot infer safety properties.
No pagination support. list_metrics() and get_labels() return unbounded lists. Large Prometheus instances could return thousands of metrics, exhausting context window.