prometheus-mcp-server
Provides tools for querying Prometheus metrics, including instant and range queries, series discovery, label exploration, metadata access, target information, alerts, rules, and server status.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@prometheus-mcp-serverwhat alerts are firing right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
prometheus-mcp-server

A Model Context Protocol (MCP) server for interacting with Prometheus metrics and data.
This is a TypeScript-based MCP server that implements a Prometheus API interface. It provides a bridge between Claude and your Prometheus server through the Model Context Protocol (MCP).
Features
Instant Queries: Execute PromQL queries at a specific time
Range Queries: Execute PromQL queries over a time period
Series Discovery: Find series by label matchers
Label Exploration: Get label names and values
Metadata Access: Get metadata for metrics
Target Information: Get information about scrape targets
Alerts & Rules: Get information about alerts and recording rules
Status Information: Get Prometheus server status information
Related MCP server: prometheus-mcp
Installation
# Install globally
npm install -g prometheus-mcp-server
# Or install locally
npm install prometheus-mcp-server
# Or use npx to run without installation
npx prometheus-mcp-serverUsage with Claude
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"prometheus-mcp-server": {
"command": "/path/to/prometheus-mcp-server/build/index.js",
"env": {
"PROMETHEUS_BASE_URL": "http://your-prometheus-instance:9090"
}
}
}
}Using with npx
You can also use npx in your Claude Desktop configuration:
{
"mcpServers": {
"prometheus-mcp-server": {
"command": "npx prometheus-mcp-server",
"env": {
"PROMETHEUS_BASE_URL": "http://your-prometheus-instance:9090"
}
}
}
}Configuration
By default, the client connects to a Prometheus server running at http://localhost:9090. You can configure the Prometheus server URL by setting the PROMETHEUS_BASE_URL environment variable:
# Example: Connect to a different Prometheus server
PROMETHEUS_BASE_URL=http://my-prometheus-server:9090 prometheus-mcp-serverThis allows you to point the client to any Prometheus instance without modifying the source code.
Available Functions
The server provides the following functions:
mcp__instant_query: Execute an instant PromQL querymcp__range_query: Execute a range PromQL query over a time periodmcp__get_series: Find series by label matchersmcp__get_label_values: Get values for a specific labelmcp__get_metadata: Get metadata for metricsmcp__get_targets: Get information about scrape targetsmcp__get_alerts: Get information about alertsmcp__get_rules: Get information about recording and alerting rulesmcp__get_status: Get status information about the Prometheus server
Development
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start
# Debug
npm run dev:debugDebugging
Since MCP servers communicate over stdio, debugging can be challenging. You can use the following npm scripts for debugging:
# Inspect mode
npm run inspect
# Inspect with breakpoints
npm run inspect-debugLicense
ISC
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
9 toolsget-alertsC
Get information about alerts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('Get information'), but fails to describe any behavioral traits such as whether it's read-only, requires authentication, has rate limits, returns structured data, or involves pagination. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence ('Get information about alerts'), which is appropriately sized for a simple tool. However, it is not front-loaded with critical details like purpose differentiation or usage context, and the brevity borders on under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is incomplete. It fails to provide necessary context such as what 'alerts' refer to in this system, how the information is returned, or how it relates to sibling tools. Without annotations or output schema, the description should do more to explain the tool's role and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% description coverage, meaning no parameters need documentation. The description does not add parameter details, which is appropriate here. A baseline score of 4 is applied as the description does not need to compensate for any parameter gaps, though it could theoretically mention the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get information about alerts' is a tautology that essentially restates the tool name 'get-alerts' with minimal elaboration. While it indicates a retrieval action ('Get') and the resource type ('alerts'), it lacks specificity about what kind of alert information is retrieved or how it differs from sibling tools like 'get-rules' or 'get-status'. This makes it vague and unhelpful for distinguishing purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, nor does it reference sibling tools such as 'get-rules' or 'instant-query' that might handle related functions. This absence of usage instructions leaves the agent without direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-label-valuesC
Get label values for a label name
| Name | Required | Description | Default |
|---|---|---|---|
| labelName | Yes | Label name to get values for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Get' implies a read operation but doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the values are in (e.g., strings, arrays). This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'label values' are in this context (e.g., metric label values in Prometheus), the return format, or error conditions. For a tool with no structured metadata, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'labelName' documented as 'Label name to get values for'. The description adds no additional meaning beyond this, such as examples or constraints (e.g., label names must exist). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get label values for a label name' clearly states the verb ('Get') and resource ('label values'), making the purpose understandable. However, it doesn't differentiate this tool from its siblings like 'get-series' or 'get-metadata', which might also involve label-related operations in a Prometheus context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention context (e.g., for querying Prometheus metrics), prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone among multiple sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-metadataC
Get metadata for metrics
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of metrics to return | |
| metric | No | Metric name to get metadata for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get metadata for metrics' but doesn't clarify if this is a read-only operation, what permissions are needed, whether it's safe or destructive, or how results are structured (e.g., pagination, error handling). This leaves significant gaps for a tool with parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, making it appropriately concise. However, it's front-loaded with minimal content, which could benefit from more detail given the lack of annotations and output schema, but it's not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'metadata' entails, how results are returned, or behavioral traits, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters ('metric' and 'limit') fully. The description adds no additional meaning beyond what the schema provides, such as explaining what 'metadata' includes or how parameters interact. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get metadata for metrics' states a clear verb ('Get') and resource ('metadata for metrics'), but it's vague about what 'metadata' entails and doesn't distinguish this tool from siblings like 'get-series' or 'get-rules' that might also retrieve metric-related data. It provides a basic purpose but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get-series' or 'instant-query'. The description implies usage for metadata retrieval but offers no context on prerequisites, exclusions, or comparisons to sibling tools, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-rulesB
Get information about alerting and recording rules
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states what the tool does at a high level. It doesn't describe whether this is a read-only operation, what format the information is returned in, potential rate limits, or any side effects, which are critical for a tool that fetches data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without any fluff or redundancy. It is front-loaded and efficiently communicates the core function, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a data-fetching tool. It doesn't specify what 'information' includes (e.g., rule definitions, statuses, metadata), the return format, or any behavioral traits like pagination or error handling, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters, this is acceptable. A baseline of 4 is appropriate as the description doesn't need to compensate for missing param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('information about alerting and recording rules'), making it immediately understandable. However, it doesn't explicitly differentiate this tool from its sibling 'get-alerts', which might handle similar alert-related data, leaving room for potential confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get-alerts' or 'instant-query'. It lacks context about whether this is for listing rules, retrieving details, or other specific use cases, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-seriesC
Find series by label matchers
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End timestamp (RFC3339 or Unix timestamp) | |
| match | Yes | Series selector (e.g. 'up', 'http_requests_total{job="prometheus"}') | |
| start | No | Start timestamp (RFC3339 or Unix timestamp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states what the tool does, not how it behaves. It doesn't mention whether this is a read-only operation, what permissions are needed, how results are returned (format, pagination), error conditions, or performance characteristics. This is inadequate for a tool with parameters and no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase with zero wasted words. It's appropriately sized for a simple tool and front-loads the core purpose immediately. Every word earns its place in this minimal but complete statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'series' means in this Prometheus context, what the return format looks like, or any behavioral aspects. For a data query tool with multiple parameters, this leaves significant gaps in understanding how to effectively use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (match, start, end) with good descriptions. The description adds no additional parameter semantics beyond implying label matching through 'label matchers', which is already covered in the schema's match parameter description. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find series by label matchers' clearly states the action (find) and target (series), but is vague about what 'series' refers to in this context (Prometheus time series data) and doesn't distinguish this tool from siblings like 'get-label-values' or 'instant-query'. It provides basic purpose but lacks specificity and differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'instant-query' or 'range-query' from the sibling list. It doesn't mention prerequisites, exclusions, or typical use cases, leaving the agent with no contextual usage information beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-statusB
Get status information about the Prometheus server
| Name | Required | Description | Default |
|---|---|---|---|
| statusType | Yes | Type of status information to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets' information, implying a read-only operation, but doesn't specify whether this requires authentication, has rate limits, returns structured data, or involves any side effects. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter with full schema coverage and no output schema, the description is minimally adequate but incomplete. It doesn't explain what kind of information is returned (e.g., JSON structure, text output) or address behavioral aspects like error handling, which would be helpful for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'statusType' fully documented in the schema including its enum values. The description doesn't add any meaning beyond what the schema provides, such as explaining the differences between status types like 'config' vs 'flags'. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'status information about the Prometheus server', making the purpose understandable. However, it doesn't explicitly differentiate this from sibling tools like 'get-targets' or 'get-rules', which also retrieve information from Prometheus, so it doesn't fully distinguish itself from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get-alerts' or 'get-rules'. It doesn't mention specific scenarios, prerequisites, or exclusions, leaving the agent with no context for tool selection beyond the general purpose stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-targetsC
Get information about targets
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Filter targets by state |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states 'Get information about targets' without mentioning whether this is a read-only operation, what permissions might be required, whether it returns paginated results, or what format the information comes in. For a tool with no annotation coverage, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, which is efficient. However, this conciseness comes at the cost of being under-specified rather than appropriately sized. The single sentence doesn't waste words but fails to provide necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'targets' are in this context, what information is returned, or how this tool relates to the sibling Prometheus-related tools. For a tool in what appears to be a monitoring system context, more explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter 'state' with its enum values and description. The description adds no additional parameter information beyond what the schema provides, which meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get information about targets' states a general purpose but lacks specificity. It mentions the verb 'Get' and resource 'targets', but doesn't clarify what kind of information is retrieved or how this differs from sibling tools like 'get-alerts' or 'get-series'. The purpose is vague rather than specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get-alerts', 'get-rules', and 'get-series' available, there's no indication of when this tool is appropriate versus those others. No context or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instant-queryC
Execute an instant Prometheus query
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | Evaluation timestamp (RFC3339 or Unix timestamp) | |
| query | Yes | PromQL query expression | |
| timeout | No | Evaluation timeout (e.g. '30s') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Execute' implies an operation that might have side effects or performance implications, the description doesn't mention whether this is a read-only operation, what authentication might be required, potential rate limits, or what happens when queries fail. For a query execution tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, front-loading the essential information with zero wasted words. Every element ('Execute', 'instant', 'Prometheus query') earns its place in communicating the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query execution tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what an 'instant' query means in Prometheus context, what format the results will be in, or any error conditions. Given the complexity of query execution and the lack of structured metadata, the description should provide more operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description doesn't add any additional parameter semantics beyond what's already in the schema descriptions. This meets the baseline expectation when schema coverage is high, but doesn't provide extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute') and resource ('an instant Prometheus query'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'range-query' tool, which appears to be a closely related alternative for querying Prometheus data with a different time range approach.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'range-query' or other Prometheus querying tools. There's no mention of what makes an 'instant' query different from other query types, nor any prerequisites or context for when this specific tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
range-queryC
Execute a range Prometheus query
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End timestamp (RFC3339 or Unix timestamp) | |
| step | Yes | Query resolution step width (e.g. '15s', '1m', '1h') | |
| query | Yes | PromQL query expression | |
| start | Yes | Start timestamp (RFC3339 or Unix timestamp) | |
| timeout | No | Evaluation timeout (e.g. '30s') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states the basic action. It doesn't mention whether this is a read-only operation, potential side effects, authentication requirements, rate limits, or error handling. For a query execution tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what a 'range' query entails versus instant queries, what format the results return, or any behavioral context needed for proper invocation. The agent would need to infer too much from the minimal description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema descriptions, maintaining the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute') and resource ('range Prometheus query'), making the purpose immediately understandable. However, it doesn't distinguish this from sibling tools like 'instant-query' or 'context-prometheus', which would require explicit differentiation for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'instant-query' or other Prometheus-related siblings. There's no mention of specific use cases, prerequisites, or exclusions, leaving the agent without contextual direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
get-alerts - First observed
get-label-values - First observed
get-metadata - First observed
get-rules - First observed
get-series - First observed
get-status - First observed
get-targets - First observed
instant-query - First observed
range-query
TDQS
Scored across 9 tools
Each tool has a distinct, clearly defined purpose. The instant-query and range-query are differentiated by query type, while the other tools retrieve specific Prometheus resources (series, labels, metadata, targets, alerts, rules, status) without overlap.
Most tool names follow a verb_noun pattern (get-series, get-label-values, get-metadata, etc.), but the query tools break the pattern with 'instant-query' and 'range-query' where 'query' comes after the adjective. This is a minor deviation but still readable and predictable.
Nine tools is well-scoped for a Prometheus server, covering the core read operations without redundancy. Each tool earns its place by providing a unique capability.
The surface covers the main read operations (query, series, labels, metadata, targets, alerts, rules, status), which is appropriate for a read-only Prometheus server. However, it lacks write operations (e.g., creating or modifying rules/alerts) and advanced query features (e.g., query for multiple time points or metric discovery).
Maintenance
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
- sentinelOAuthio.rootstuff
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Analytics for MCP servers. Query your tool calls, first-call success, retries and schema cost.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with Prometheus metrics and data.17MIT
- AlicenseBqualityDmaintenanceProvides seamless integration between AI assistants and Prometheus, enabling natural language interactions with your monitoring infrastructure. This server allows for effortless querying, discovery, and analysis of metrics.103,324 npm27MIT
- AlicenseAqualityAmaintenanceMCP server for Prometheus metrics and observability. Give Claude (or any MCP-capable agent) read access to your Prometheus instance — query metrics with PromQL, inspect active alerts, and explore scrape targets without leaving the conversation. Tools: prometheus_list_metrics, prometheus_query, prometheus_query_range, prometheus_list_alerts, prometheus_list_targets.2023 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceProvides access to Prometheus metrics and queries, allowing AI assistants to execute PromQL queries and analyze metrics data through standardized MCP interfaces.MIT