关于 Prometheus MCP Server
Prometheus MCP Server 通过 MCP 向 AI 助手提供 Prometheus 指标和 PromQL 查询能力,支持查询、指标发现与元数据检索,并可配置工具和身份验证。
主要功能
- 01执行即时 PromQL 查询
- 02执行时间范围查询
- 03筛选并浏览指标
- 04获取指标元数据
- 05查看抓取目标
- 06配置工具与身份验证
适用场景
- 01调查特定时刻的指标
- 02分析一段时间内的指标趋势
- 03查找可用指标及其元数据
- 04检查 Prometheus 抓取目标状态
MCP 相关
它是 MCP 服务,向 MCP 客户端开放 Prometheus 查询、发现、元数据、目标和健康检查工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e PROMETHEUS_URL -e PROMETHEUS_URL_SSL_VERIFY -e PROMETHEUS_DISABLE_LINKS -e PROMETHEUS_USERNAME -e PROMETHEUS_PASSWORD -e PROMETHEUS_TOKEN -e ORG_ID -e PROMETHEUS_CLIENT_CERT -e PROMETHEUS_CLIENT_KEY -e PROMETHEUS_MCP_SERVER_TRANSPORT -e PROMETHEUS_MCP_BIND_HOST -e PROMETHEUS_MCP_BIND_PORT -e PROMETHEUS_MCP_STATELESS_HTTP -e PROMETHEUS_CUSTOM_HEADERS ghcr.io/pab1it0/prometheus-mcp-server:1.6.2PROMETHEUS_URLPrometheus server URL (e.g., http://localhost:9090)PROMETHEUS_URL_SSL_VERIFYSet to False to disable SSL verificationPROMETHEUS_DISABLE_LINKSSet to True to disable Prometheus UI links in query results (saves context tokens in MCP clients)PROMETHEUS_USERNAMEUsername for Prometheus basic authenticationPROMETHEUS_PASSWORD密钥Password for Prometheus basic authenticationPROMETHEUS_TOKEN密钥Bearer token for Prometheus authenticationORG_IDOrganization ID for multi-tenant Prometheus setupsPROMETHEUS_CLIENT_CERTPath to client certificate file for mutual TLS authenticationPROMETHEUS_CLIENT_KEY密钥Path to client private key file for mutual TLS authenticationPROMETHEUS_MCP_SERVER_TRANSPORTMCP server transport type (stdio, http, or sse)PROMETHEUS_MCP_BIND_HOSTHost address for HTTP/SSE transport (default: 127.0.0.1)PROMETHEUS_MCP_BIND_PORTPort number for HTTP/SSE transport (default: 8080)PROMETHEUS_MCP_STATELESS_HTTPEnable stateless HTTP mode for multi-replica support (default: false)PROMETHEUS_CUSTOM_HEADERSCustom headers as JSON string to include in Prometheus requests本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/pab1it0/prometheus-mcp-server:1.6.2stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Prometheus MCP 服务
让 AI 助手能够查询你的 Prometheus 指标。
一个 Model Context Protocol(MCP)服务,通过标准化的 MCP 接口访问你的 Prometheus 指标和查询,让 AI 助手能够执行 PromQL 查询并分析你的指标数据。
入门
前提条件
- 可从你的环境访问的 Prometheus 服务
- 兼容 MCP 的客户端(Claude Desktop、VS Code、Cursor、Windsurf 等)
安装方式
Claude Desktop
添加到 Claude Desktop 配置中:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": "<your-prometheus-url>"
}
}
}
}
Claude Code
通过 Claude Code CLI 安装:
claude 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 设置中:
{
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROMETHEUS_URL",
"ghcr.io/pab1it0/prometheus-mcp-server:latest"
],
"env": {
"PROMETHEUS_URL": "<your-prometheus-url>"
}
}
}
Docker Desktop
通过 Docker Desktop 运行 Prometheus MCP 服务是最简单的方式:
-
通过 MCP Catalog:访问 Docker Hub 上的 Prometheus MCP Server,然后点击上方按钮
-
通过 MCP Toolkit:使用 Docker Desktop 的 MCP Toolkit 扩展来发现并安装该服务
-
使用环境变量配置连接(参见下方的配置选项)
手动配置 Docker
直接使用 Docker 运行:
# 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:
helm install prometheus-mcp-server \
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
--version 1.1.1 \
--set prometheus.url="http://prometheus:9090"
配置身份验证:
helm install prometheus-mcp-server \
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
--version 1.1.1 \
--set prometheus.url="http://prometheus:9090" \
--set auth.username="admin" \
--set auth.password="secret"
使用自定义 values 文件:
helm install prometheus-mcp-server \
oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
--version 1.1.1 \
-f values.yaml
有关所有可用配置选项,请参阅 Chart values。
| 变量 | 描述 | 必需 |
|---|---|---|
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 | 用于身份验证的 Bearer 令牌 | 否 |
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_MCP_STATELESS_HTTP | 启用无状态 HTTP 模式以支持多副本 | 否(默认值:False) |
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 | 发现 | 获取抓取目标,支持服务端 state/scrape_pool 筛选和可选分页 |
工具列表可配置,因此你可以选择要向 MCP 客户端提供哪些工具。如果你不使用某些功能,或不希望占用过多上下文窗口,这项功能会很有用。
功能
- 对 Prometheus 执行 PromQL 查询
- 发现和浏览指标
- 列出可用指标
- 获取特定指标的元数据
- 一次调用即可按名称或描述搜索指标元数据
- 查看瞬时查询结果
- 以不同步长间隔查看范围查询结果
- 在 Prometheus UI 中打开具有相同时间窗口和分辨率的范围查询结果
- 身份验证支持
- 使用环境变量进行基本身份验证
- 使用环境变量进行 Bearer 令牌身份验证
- 支持 Docker 容器化
- 为 AI 助手提供交互式工具
开发
欢迎贡献!请参阅我们的贡献指南,了解如何开始、编码规范和拉取请求流程的详细信息。
本项目使用 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 .
测试
本项目包含全面的测试套件,可确保功能正常并帮助防止回归问题。
使用 pytest 运行测试:
# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missing
添加新功能时,也请添加相应的测试。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。