Prometheus MCP Server
Prometheus MCP 服务器
Prometheus 的模型上下文协议(MCP) 服务器。
这可以通过标准化的 MCP 接口访问您的 Prometheus 指标和查询,从而允许 AI 助手执行 PromQL 查询并分析您的指标数据。
特征
[x] 针对 Prometheus 执行 PromQL 查询
[x] 发现并探索指标
[x] 列出可用指标
[x] 获取特定指标的元数据
[x] 查看即时查询结果
[x] 查看不同步长间隔的范围查询结果
[x] 身份验证支持
[x] 来自环境变量的基本身份验证
[x] 来自环境变量的 Bearer 令牌认证
[x] Docker 容器化支持
[x] 为AI助手提供交互工具
工具列表是可配置的,因此您可以选择要向 MCP 客户端提供的工具。如果您不使用某些功能,或者不想占用太多上下文窗口空间,此功能非常有用。
Related MCP server: Prometheus MCP Server
用法
确保您的 Prometheus 服务器可从运行此 MCP 服务器的环境访问。
通过
.env文件或系统环境变量配置 Prometheus 服务器的环境变量:
# Required: Prometheus configuration
PROMETHEUS_URL=http://your-prometheus-server:9090
# Optional: Authentication credentials (if needed)
# Choose one of the following authentication methods if required:
# For basic auth
PROMETHEUS_USERNAME=your_username
PROMETHEUS_PASSWORD=your_password
# For bearer token auth
PROMETHEUS_TOKEN=your_token
# Optional: For multi-tenant setups like Cortex, Mimir or Thanos
ORG_ID=your_organization_id将服务器配置添加到客户端配置文件中。例如,对于 Claude Desktop:
{
"mcpServers": {
"prometheus": {
"command": "uv",
"args": [
"--directory",
"<full path to prometheus-mcp-server directory>",
"run",
"src/prometheus_mcp_server/main.py"
],
"env": {
"PROMETHEUS_URL": "http://your-prometheus-server:9090",
"PROMETHEUS_USERNAME": "your_username",
"PROMETHEUS_PASSWORD": "your_password"
}
}
}
}注意:如果您在 Claude Desktop 中看到
Error: spawn uv ENOENT,则可能需要指定uv的完整路径或在配置中设置环境变量NO_UV=1。
Docker 使用
该项目包括 Docker 支持,以便于部署和隔离。
预建 Docker 镜像
使用此项目的最简单方法是使用来自 GitHub Container Registry 的预构建映像:
docker pull ghcr.io/pab1it0/prometheus-mcp-server:latest您还可以使用带有标签的特定版本:
docker pull ghcr.io/pab1it0/prometheus-mcp-server:1.0.0在本地构建 Docker 镜像
如果您希望自己构建图像:
docker build -t prometheus-mcp-server .使用 Docker 运行
您可以通过多种方式使用 Docker 运行服务器:
使用 docker run 和预先构建的图像:
docker run -it --rm \
-e PROMETHEUS_URL=http://your-prometheus-server:9090 \
-e PROMETHEUS_USERNAME=your_username \
-e PROMETHEUS_PASSWORD=your_password \
ghcr.io/pab1it0/prometheus-mcp-server:latest使用 docker run 和本地构建的图像:
docker run -it --rm \
-e PROMETHEUS_URL=http://your-prometheus-server:9090 \
-e PROMETHEUS_USERNAME=your_username \
-e PROMETHEUS_PASSWORD=your_password \
prometheus-mcp-server使用docker-compose:
使用您的 Prometheus 凭据创建一个.env文件,然后运行:
docker-compose up在 Claude Desktop 中使用 Docker 运行
要将容器化服务器与 Claude Desktop 一起使用,请更新配置以使用带有环境变量的 Docker:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "PROMETHEUS_URL",
"-e", "PROMETHEUS_USERNAME",
"-e", "PROMETHEUS_PASSWORD",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": "http://your-prometheus-server:9090",
"PROMETHEUS_USERNAME": "your_username",
"PROMETHEUS_PASSWORD": "your_password"
}
}
}
}此配置通过使用仅带有变量名的-e标志,并在env对象中提供实际值,将环境变量从 Claude Desktop 传递到 Docker 容器。
关于 Docker 实现的说明:Docker 设置已更新,以匹配 chess-mcp 项目的结构,该项目已被证明可以与 Claude 正确配合。新的实现采用多阶段构建流程,并直接运行入口点脚本,无需中间的 shell 脚本。这种方法确保正确处理 MCP 通信的标准输入/输出 (stdin/stdout)。
发展
欢迎贡献代码!如果您有任何建议或改进,请创建 issue 或提交 pull request。
本项目使用uv来管理依赖项。请按照您平台的说明安装uv :
curl -LsSf https://astral.sh/uv/install.sh | sh然后,您可以创建一个虚拟环境并使用以下命令安装依赖项:
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
uv pip install -e .项目结构
该项目已采用src目录结构进行组织:
prometheus-mcp-server/
├── src/
│ └── prometheus_mcp_server/
│ ├── __init__.py # Package initialization
│ ├── server.py # MCP server implementation
│ ├── main.py # Main application logic
├── Dockerfile # Docker configuration
├── docker-compose.yml # Docker Compose configuration
├── .dockerignore # Docker ignore file
├── pyproject.toml # Project configuration
└── README.md # This file测试
该项目包括一个全面的测试套件,可确保功能并有助于防止回归。
使用 pytest 运行测试:
# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missing测试分为:
配置验证测试
服务器功能测试
错误处理测试
主要应用测试
当添加新功能时,请同时添加相应的测试。
工具
工具 | 类别 | 描述 |
| 询问 | 针对 Prometheus 执行 PromQL 即时查询 |
| 询问 | 执行包含开始时间、结束时间和步长间隔的 PromQL 范围查询 |
| 发现 | 列出 Prometheus 中所有可用的指标 |
| 发现 | 获取特定指标的元数据 |
| 发现 | 获取有关所有抓取目标的信息 |
执照
麻省理工学院
Available Tools
6 toolsexecute_queryExecute PromQL QueryCRead-onlyIdempotent
Execute a PromQL instant query against Prometheus
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds no behavioral context beyond what is in the schema and annotations.
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 sentence, which is concise but overly terse. It could be improved with more structure while remaining short.
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?
With 0% schema coverage and no description of parameters, the tool is incomplete for an agent. The output schema exists, but the description does not mention it or the nature of the return value.
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 0%, yet the description does not explain the parameters. It fails to clarify that 'query' is the PromQL expression and 'time' is optional evaluation time.
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 the resource ('PromQL instant query against Prometheus'). It distinguishes from the sibling tool 'execute_range_query' which handles range queries.
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 'execute_range_query'. There is no mention of typical use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_range_queryExecute PromQL Range QueryBRead-onlyIdempotent
Execute a PromQL range query with start time, end time, and step interval
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| start | Yes | ||
| end | Yes | ||
| step | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that it uses PromQL with time parameters, but does not disclose potential failures, pagination, or rate limits. For a tool with rich annotations, the description adds modest extra 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 a single, front-loaded sentence with no extraneous words. It efficiently communicates the core action and key parameters.
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 4-parameter tool with an output schema and comprehensive annotations, the description provides adequate context. It names the parameters and states the tool's purpose. Minor gaps include lack of format details and error behavior, but overall it is mostly complete.
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?
With 0% schema description coverage, the description partially compensates by naming the parameters (start time, end time, step interval). However, it does not specify expected formats (e.g., Unix timestamps or RFC3339) or explain the query parameter beyond 'PromQL range query', leaving ambiguity.
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 executes a PromQL range query with start time, end time, and step interval. However, it does not distinguish this from the sibling tool 'execute_query', which likely handles instant queries, missing an opportunity for 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?
No usage guidance is provided. The description does not specify when to use this tool over alternatives (e.g., for time-range versus instant queries), nor does it mention prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metric_metadataGet Metric MetadataARead-onlyIdempotent
Get metadata (type, help, unit) for metrics. Returns all metric metadata when no metric name is provided. Use filter_pattern to search metric names and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | No | ||
| filter_pattern | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds that it returns all metadata when no metric is given and how to use filter_pattern. No contradictions.
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?
Two efficient sentences with no redundancy. The first defines purpose, the second provides usage guidance. Every sentence adds value.
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?
With output schema present, description covers primary functionality. However, it omits explanation of pagination parameters (limit, offset), which could be important for large result sets. Otherwise complete.
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 0%, so description must compensate. It explains metric (optional, returns all if null) and filter_pattern (search). But it does not cover limit/offset, leaving pagination behavior unclear. Adequate but not fully compensating.
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 retrieves metadata (type, help, unit) for metrics. It specifies behavior when no metric name is provided (returns all) and mentions filter_pattern for searching. This distinguishes it from siblings like list_metrics and execute_query.
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?
Provides explicit guidance on using filter_pattern to search. However, it does not mention when not to use the tool or alternatives, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_targetsGet Scrape TargetsARead-onlyIdempotent
Get information about all scrape targets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description reinforces that it is a read operation. It adds that it returns information about all scrape targets, but does not detail what information is included. The output schema likely covers the return format.
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 sentence of 8 words, front-loaded with the key action and resource. Every word is meaningful with no redundancy.
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 no parameters and an existing output schema, the description is reasonably complete. It states the purpose and scope (all targets). A minor gap is the lack of mention of potential pagination or limits, but the output schema likely handles that.
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 tool has zero parameters, and schema description coverage is trivially 100%. The description does not need to add parameter details. The baseline for 0 parameters is 4, and no additional information is necessary.
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 'scrape targets', indicating it retrieves information on all scrape targets. It distinguishes from sibling tools like execute_query or get_metric_metadata which perform different operations.
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, such as when to use list_metrics or get_metric_metadata. It lacks explicit context or exclusions for sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkHealth CheckARead-onlyIdempotent
Health check endpoint for container monitoring and status verification
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds context about container monitoring and status verification, which aligns with annotations and provides additional behavioral clarity.
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?
Single sentence, front-loaded with key information, no wasted words. Highly concise and well-structured.
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 zero parameters and an existing output schema (indicated by 'has output schema: true'), the description is complete enough to understand the tool's purpose and basic 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?
No parameters are defined, and schema coverage is 100%. Baseline score of 4 applies since the description does not need to compensate for missing parameter details.
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 it is a health check endpoint for container monitoring and status verification. Specific verb and resource, and it clearly distinguishes from sibling tools like execute_query and list_metrics.
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 implies usage for checking system status but does not provide explicit guidance on when to use versus alternatives or when not to use. Usage is implied by the tool's purpose and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_metricsList Available MetricsARead-onlyIdempotent
List all available metrics in Prometheus with optional pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| filter_pattern | No | ||
| refresh_cache | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description's note about pagination adds minor behavioral context but is not necessary for safety awareness. No contradictions with annotations.
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 sentence of 10 words, directly stating the purpose and key feature. No unnecessary information.
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?
The description does not cover the purpose of filter_pattern or refresh_cache, nor how pagination behaves (defaults, total count). Given 4 undocumented parameters, the description is incomplete for a full understanding.
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 0%. The description only hints at pagination (limit/offset) but does not explain filter_pattern or refresh_cache. It fails to compensate for missing schema descriptions on 4 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 clearly states 'List all available metrics in Prometheus', specifying the exact resource and action. It distinguishes itself from sibling tools like execute_query and get_metric_metadata by focusing on enumeration of metrics.
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 mentions optional pagination, indicating when to use pagination parameters. However, it lacks explicit guidance on when to use this tool versus alternatives like get_metric_metadata for detailed metric information.
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.
6 tool updates
v1.2.2- Changed
execute_query3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / query / titleRemoved value: -"Query" - removed
Input schema / properties / time / titleRemoved value: -"Time"
- Changed
execute_range_query5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / end / titleRemoved value: -"End" - removed
Input schema / properties / query / titleRemoved value: -"Query" - removed
Input schema / properties / start / titleRemoved value: -"Start" - removed
Input schema / properties / step / titleRemoved value: -"Step"
- Changed
get_metric_metadata14 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / filter_patternAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Input schema / properties / limitAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Input schema / properties / metric / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / metric / defaultAdded value: +null - removed
Input schema / properties / metric / titleRemoved value: -"Metric" - removed
Input schema / properties / metric / typeRemoved value: -"string" - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "type": "integer" +} - removed
Input schema / requiredRemoved value: -[ - "metric" -] - added
Output schema / properties / result / anyOfAdded value: +[ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "additionalProperties": true, + "type": "object" + } +] - removed
Output schema / properties / result / itemsRemoved value: -{ - "additionalProperties": true, - "type": "object" -} - removed
Output schema / properties / result / titleRemoved value: -"Result" - removed
Output schema / properties / result / typeRemoved value: -"array" - removed
Output schema / titleRemoved value: -"_WrappedResult"
- Changed
get_targets1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
health_check1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
list_metrics5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / filter_pattern / titleRemoved value: -"Filter Pattern" - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / offset / titleRemoved value: -"Offset" - added
Input schema / properties / refresh_cacheAdded value: +{ + "default": false, + "type": "boolean" +}
6 tool updates
v1.0.0- Changed
execute_query2 fields changed- removed
Input schema / titleRemoved value: -"execute_queryArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
- Changed
execute_range_query2 fields changed- removed
Input schema / titleRemoved value: -"execute_range_queryArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
- Changed
get_metric_metadata2 fields changed- removed
Input schema / titleRemoved value: -"get_metric_metadataArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "title": "Result", + "type": "array" + } + }, + "required": [ + "result" + ], + "title": "_WrappedResult", + "type": "object", + "x-fastmcp-wrap-result": true +}
- Changed
get_targets2 fields changed- removed
Input schema / titleRemoved value: -"get_targetsArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "type": "object" +}
- Added
health_check - Changed
list_metrics5 fields changed- added
Input schema / properties / filter_patternAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Filter Pattern" +} - added
Input schema / properties / limitAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Limit" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / titleRemoved value: -"list_metricsArguments" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
5 tool updates
- First observed
execute_query - First observed
execute_range_query - First observed
get_metric_metadata - First observed
get_targets - First observed
list_metrics
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: query types (instant vs range), metadata retrieval, target info, health check, and metric listing. No overlap.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., execute_query, get_metric_metadata). No deviations.
Six tools cover the essential Prometheus operations without being excessive or insufficient. Well-scoped for the server's purpose.
Core CRUD-like operations for queries and metadata are present. Minor gaps like alert management or rule configuration are missing but not critical for the primary use case.
Maintenance
Related MCP Connectors
Query application logs, traces, and metrics from your AI coding assistant via Foam's MCP server.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA tool that enables access to Prometheus metrics data through a Model Context Protocol server, allowing interaction with monitoring data using natural language.MIT
- AlicenseBqualityFmaintenanceA Model Context Protocol server that enables AI assistants to query Prometheus metrics, discover available data, and analyze system performance through natural language interactions.5103 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query Prometheus metrics, monitor alerts, and analyze system health through read-only access to your Prometheus server with built-in query safety and optional AI-powered metric analysis.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to execute PromQL queries and discover metrics across multiple Prometheus tenants using the Model Context Protocol. It supports single and multi-tenant configurations with secure authentication for instant and range query analysis.MIT