Prometheus指标查询服务器

一个提供通过标准化MCP接口访问Prometheus指标和查询的服务,使AI助手能够执行PromQL查询并分析指标数据。

作者 By pab1it0
本地部署 Prometheus 指标查询
GitHub

普罗米修斯MCP服务器

赋予人工智能助手查询普罗米修斯指标的能力。

A. 模型上下文协议 (MCP)服务器,通过标准化的MCP接口提供对Prometheus指标和查询的访问,允许AI助手执行PromQL查询并分析您的指标数据。

入门指南

先决条件

  • Prometheus服务器可从您的环境访问
  • MCP兼容客户端(Claude Desktop、VS Code、Cursor、Windsurf等)

安装方法

Claude Desktop 添加到您的Claude Desktop配置中:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18{ “mcpServers”: { “prometheus”: { “command”: “docker”, “args”: [ “run”, “-i”, “—rm”, “-e”, “PROMETHEUS_URL”, “ghcr.io/pab1it0/prometheus-mcp-server:latest” ], “env”: { “PROMETHEUS_URL”: "" } } } }




Claude Code
通过Claude Code CLI安装:


BASH```
1claude mcp add prometheus --env PROMETHEUS_URL=http://your-prometheus:9090 -- docker run -i --rm -e PROMETHEUS_URL ghcr.io/pab1it0/prometheus-mcp-server:latest

VS Code / Cursor / Windsurf 在相应的IDE中添加到MCP设置中:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16{ “prometheus”: { “command”: “docker”, “args”: [ “run”, “-i”, “—rm”, “-e”, “PROMETHEUS_URL”, “ghcr.io/pab1it0/prometheus-mcp-server:latest” ], “env”: { “PROMETHEUS_URL”: "" } } }




Docker Desktop
运行Prometheus MCP服务器的最简单方法是通过Docker Desktop:


[![Add to Docker Desktop](https://img.shields.io/badge/+%20Add%20to-Docker%20Desktop-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https://hub.docker.com/open-desktop?url=https://open.docker.com/dashboard/mcp/servers/id/prometheus/config?enable=true)
1. **通过MCP目录**:访问 [Docker Hub上的Prometheus MCP服务器](https://hub.docker.com/mcp/server/prometheus/overview) 然后单击上面的按钮
2. **通过MCP工具包**:使用Docker Desktop的MCP Toolkit扩展来发现和安装服务器
3. 使用环境变量配置您的连接(请参阅下面的配置选项)




Manual Docker Setup
直接使用Docker运行:


BASH```
1
2
3
4
5
6
7
8
9
10# With environment variables
docker run -i --rm \
  -e PROMETHEUS_URL="http://your-prometheus:9090" \
  ghcr.io/pab1it0/prometheus-mcp-server:latest
# With authentication
docker run -i --rm \
  -e PROMETHEUS_URL="http://your-prometheus:9090" \
  -e PROMETHEUS_USERNAME="admin" \
  -e PROMETHEUS_PASSWORD="password" \
  ghcr.io/pab1it0/prometheus-mcp-server:latest

Helm Chart (Kubernetes) 使用OCI注册表中的Helm chart部署到Kubernetes:

BASH``` 1 2 3 4helm install prometheus-mcp-server
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server
—version 1.0.0
—set prometheus.url=“http://prometheus:9090


通过身份验证:


BASH```
1
2
3
4
5
6helm install prometheus-mcp-server \
  oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
  --version 1.0.0 \
  --set prometheus.url="http://prometheus:9090" \
  --set auth.username="admin" \
  --set auth.password="secret"

使用自定义值文件:

BASH``` 1 2 3 4helm install prometheus-mcp-server
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server
—version 1.0.0
-f values.yaml


请参阅 图表值 对于所有可用的配置选项。



### 配置选项


| 变量 | 描述 | 必填 |
| --- | --- | --- |
| `PROMETHEUS_URL` | Prometheus服务器的URL | 是 |
| `PROMETHEUS_URL_SSL_VERIFY` | 设置为False以禁用SSL验证 | 否 |
| `PROMETHEUS_DISABLE_LINKS` | 设置为True可禁用查询结果中的Prometheus UI链接(保存上下文标记) | 否 |
| `PROMETHEUS_REQUEST_TIMEOUT` | 防止挂起请求的请求超时(秒)(DDoS保护) | 否(默认值:30) |
| `PROMETHEUS_USERNAME` | 基本身份验证的用户名 | 否 |
| `PROMETHEUS_PASSWORD` | 基本身份验证密码 | 否 |
| `PROMETHEUS_TOKEN` | 用于身份验证的承载令牌 | 否 |
| `PROMETHEUS_CLIENT_CERT` | 双向TLS身份验证的客户端证书文件路径 | 否 |
| `PROMETHEUS_CLIENT_KEY` | 双向TLS身份验证的客户端私钥文件路径 | 否 |
| `REQUESTS_CA_BUNDLE` | 用于验证服务器TLS证书的CA捆绑包文件的路径(标准 `requests` 库环境变量) | 否 |
| `ORG_ID` | 多租户设置的组织ID | 否 |
| `PROMETHEUS_MCP_SERVER_TRANSPORT` | 传输模式(stdio、http、sse) | 否(默认:stdio) |
| `PROMETHEUS_MCP_BIND_HOST` | HTTP传输主机 | 否(默认值:127.0.0.1) |
| `PROMETHEUS_MCP_BIND_PORT` | HTTP传输端口 | 否(默认值:8080) |
| `PROMETHEUS_CUSTOM_HEADERS` | 自定义标头为JSON字符串 | 否 |
| `TOOL_PREFIX` | 所有工具名称的前缀(例如。, `staging` 导致 `staging_execute_query`).适用于在Cursor中运行针对不同环境的多个实例 | 否 |


## 可用工具


| 工具 | 类别 | 描述 |
| --- | --- | --- |
| `health_check` | 系统 | 用于容器监控和状态验证的健康检查端点 |
| `execute_query` | 查询 | 对Prometheus执行PromQL即时查询 |
| `execute_range_query` | 查询 | 使用开始时间、结束时间和步长间隔执行PromQL范围查询 |
| `list_metrics` | 发现 | 列出Prometheus中所有可用的指标,并支持分页和过滤 |
| `get_metric_metadata` | 发现 | 获取一个指标的元数据或具有可选过滤功能的批量元数据 |
| `get_targets` | 发现 | 获取所有刮擦目标的信息 |


工具列表是可配置的,因此您可以选择要向MCP客户端提供哪些工具。如果你不使用某些功能,或者你不想占用太多的上下文窗口,这很有用。


## 特性


- 对Prometheus执行PromQL查询
- 发现和探索指标

- 列出可用指标
- 获取特定指标的元数据
- 在单个调用中按名称或描述搜索度量元数据
- 查看即时查询结果
- 查看具有不同步长间隔的范围查询结果
- 身份验证支持

- 来自环境变量的基本身份验证
- 来自环境变量的承载令牌身份验证
- Docker容器化支持
- 为AI助手提供交互式工具


## 发展


欢迎投稿!请查看我们的 贡献指南 有关如何开始、编码标准和拉取请求过程的详细信息。


此项目使用 [`uv`](https://github.com/astral-sh/uv) 管理依赖关系。安装 `uv` 按照您平台的说明进行操作:


BASH```
1curl -LsSf https://astral.sh/uv/install.sh | sh

然后,您可以创建一个虚拟环境,并使用以下命令安装依赖项:

BASH``` 1 2 3 4uv venv source .venv/bin/activate # On Unix/macOS .venv\Scripts\activate # On Windows uv pip install -e .


### 测试


该项目包括一个全面的测试套件,可确保功能并帮助防止回归。


使用pytest运行测试:


BASH```
1
2
3
4
5
6# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missing

添加新功能时,请同时添加相应的测试。

许可证

麻省理工学院