普罗米修斯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:
[](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
添加新功能时,请同时添加相应的测试。
许可证
麻省理工学院