Skip to main content
Glama
weetime

prometheus-mcp-server

by weetime

prometheus-mcp-server

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-server

Usage 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-server

This 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 query

  • mcp__range_query: Execute a range PromQL query over a time period

  • mcp__get_series: Find series by label matchers

  • mcp__get_label_values: Get values for a specific label

  • mcp__get_metadata: Get metadata for metrics

  • mcp__get_targets: Get information about scrape targets

  • mcp__get_alerts: Get information about alerts

  • mcp__get_rules: Get information about recording and alerting rules

  • mcp__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:debug

Debugging

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-debug

License

ISC

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Available Tools

9 tools
get-alertsC

Get information about alerts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNameYesLabel name to get values for

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of metrics to return
metricNoMetric name to get metadata for

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd timestamp (RFC3339 or Unix timestamp)
matchYesSeries selector (e.g. 'up', 'http_requests_total{job="prometheus"}')
startNoStart timestamp (RFC3339 or Unix timestamp)

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusTypeYesType of status information to retrieve

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoFilter targets by state

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
timeNoEvaluation timestamp (RFC3339 or Unix timestamp)
queryYesPromQL query expression
timeoutNoEvaluation timeout (e.g. '30s')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd timestamp (RFC3339 or Unix timestamp)
stepYesQuery resolution step width (e.g. '15s', '1m', '1h')
queryYesPromQL query expression
startYesStart timestamp (RFC3339 or Unix timestamp)
timeoutNoEvaluation timeout (e.g. '30s')

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 9 tool updatesv1.0.0
    • First observedget-alerts
    • First observedget-label-values
    • First observedget-metadata
    • First observedget-rules
    • First observedget-series
    • First observedget-status
    • First observedget-targets
    • First observedinstant-query
    • First observedrange-query

TDQS

B3.2/5.0

Scored across 9 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides 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.
    10
    3,324 npm
    27
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP 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.
    20
    23 PyPI
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to Prometheus metrics and queries, allowing AI assistants to execute PromQL queries and analyze metrics data through standardized MCP interfaces.
    MIT