mcpField
P
Prometheus MCP Server

Prometheus MCP Server

本地服务
pab1it0.github.io开发工具5211 天前更新

关于 Prometheus MCP Server

Prometheus MCP Server 通过 MCP 向 AI 助手提供 Prometheus 指标和 PromQL 查询能力,支持查询、指标发现与元数据检索,并可配置工具和身份验证。

主要功能

  1. 01执行即时 PromQL 查询
  2. 02执行时间范围查询
  3. 03筛选并浏览指标
  4. 04获取指标元数据
  5. 05查看抓取目标
  6. 06配置工具与身份验证

适用场景

  1. 01调查特定时刻的指标
  2. 02分析一段时间内的指标趋势
  3. 03查找可用指标及其元数据
  4. 04检查 Prometheus 抓取目标状态

MCP 相关

它是 MCP 服务,向 MCP 客户端开放 Prometheus 查询、发现、元数据、目标和健康检查工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"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.2"
],
"env": {
"PROMETHEUS_URL": "<PROMETHEUS_URL>",
"PROMETHEUS_URL_SSL_VERIFY": "<PROMETHEUS_URL_SSL_VERIFY>",
"PROMETHEUS_DISABLE_LINKS": "<PROMETHEUS_DISABLE_LINKS>",
"PROMETHEUS_USERNAME": "<PROMETHEUS_USERNAME>",
"PROMETHEUS_PASSWORD": "<PROMETHEUS_PASSWORD>",
"PROMETHEUS_TOKEN": "<PROMETHEUS_TOKEN>",
"ORG_ID": "<ORG_ID>",
"PROMETHEUS_CLIENT_CERT": "<PROMETHEUS_CLIENT_CERT>",
"PROMETHEUS_CLIENT_KEY": "<PROMETHEUS_CLIENT_KEY>",
"PROMETHEUS_MCP_SERVER_TRANSPORT": "<PROMETHEUS_MCP_SERVER_TRANSPORT>",
"PROMETHEUS_MCP_BIND_HOST": "<PROMETHEUS_MCP_BIND_HOST>",
"PROMETHEUS_MCP_BIND_PORT": "<PROMETHEUS_MCP_BIND_PORT>",
"PROMETHEUS_MCP_STATELESS_HTTP": "<PROMETHEUS_MCP_STATELESS_HTTP>",
"PROMETHEUS_CUSTOM_HEADERS": "<PROMETHEUS_CUSTOM_HEADERS>"
}
}
}
}
启动命令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.2
需要配置的环境变量
PROMETHEUS_URLPrometheus server URL (e.g., http://localhost:9090)
PROMETHEUS_URL_SSL_VERIFYSet to False to disable SSL verification
PROMETHEUS_DISABLE_LINKSSet to True to disable Prometheus UI links in query results (saves context tokens in MCP clients)
PROMETHEUS_USERNAMEUsername for Prometheus basic authentication
PROMETHEUS_PASSWORD密钥Password for Prometheus basic authentication
PROMETHEUS_TOKEN密钥Bearer token for Prometheus authentication
ORG_IDOrganization ID for multi-tenant Prometheus setups
PROMETHEUS_CLIENT_CERTPath to client certificate file for mutual TLS authentication
PROMETHEUS_CLIENT_KEY密钥Path to client private key file for mutual TLS authentication
PROMETHEUS_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/pab1it0/prometheus-mcp-server:1.6.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Prometheus MCP 服务

GitHub Container Registry Helm Chart GitHub Release Codecov Python License

让 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 服务是最简单的方式:

添加到 Docker Desktop
  1. 通过 MCP Catalog:访问 Docker Hub 上的 Prometheus MCP Server,然后点击上方按钮

  2. 通过 MCP Toolkit:使用 Docker Desktop 的 MCP Toolkit 扩展来发现并安装该服务

  3. 使用环境变量配置连接(参见下方的配置选项)

手动配置 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_URLPrometheus 服务的 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_HOSTHTTP 传输的主机否(默认值:127.0.0.1)
PROMETHEUS_MCP_BIND_PORTHTTP 传输的端口否(默认值:8080)
PROMETHEUS_MCP_STATELESS_HTTP启用无状态 HTTP 模式以支持多副本否(默认值:False)
PROMETHEUS_CUSTOM_HEADERSJSON 字符串形式的自定义标头否
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


评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。