/ 目录 / 演练场 / prometheus-mcp-server
● 社区 pab1it0 ⚡ 即开即用

prometheus-mcp-server

作者 pab1it0 · pab1it0/prometheus-mcp-server

用自然语言查询 Prometheus——PromQL 即时查询 + 范围查询、目标检查、指标元数据,支持 AI 辅助的 SRE。

prometheus-mcp-server (pab1it0) 通过 Prometheus HTTP API 提供 6 个工具。支持 PromQL 查询、范围查询、指标发现和目标健康检查。适配基本认证、Bearer token、mTLS 和自定义请求头。

为什么要用

核心特性

实时演示

实际使用效果

prometheus.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "prometheus": {
      "command": "uvx",
      "args": [
        "prometheus-mcp-server"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "prometheus": {
      "command": "uvx",
      "args": [
        "prometheus-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "prometheus": {
      "command": "uvx",
      "args": [
        "prometheus-mcp-server"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "prometheus": {
      "command": "uvx",
      "args": [
        "prometheus-mcp-server"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "prometheus",
      "command": "uvx",
      "args": [
        "prometheus-mcp-server"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "prometheus": {
      "command": {
        "path": "uvx",
        "args": [
          "prometheus-mcp-server"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add prometheus -- uvx prometheus-mcp-server

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: prometheus-mcp-server

如何用 Prometheus + Claude 诊断延迟尖峰

👤 值班 SRE ⏱ ~10 min intermediate

何时使用: 服务 p99 告警触发——你需要上下文但不想记 PromQL 语法。

前置条件
  • Prometheus URL 可访问 — 在 MCP 配置中设置 PROMETHEUS_URL;如果需要认证则添加认证凭据
步骤
  1. 范围定位
    查询服务 X 过去一小时的 HTTP 请求 p99 延迟,30 秒分辨率。与过去 7 天的基线对比。✓ 已复制
    → 显示尖峰的范围查询结果
  2. 寻找相关指标
    在尖峰期间,服务 X 还有哪些指标变动超过 2 个标准差?CPU、内存、GC、队列深度?✓ 已复制
    → 可能的根因指标
  3. 按标签筛选
    按 pod/host 标签分解尖峰。是单个 pod 还是全集群?✓ 已复制
    → 每个标签的分解结果

结果: 在 5 分钟内形成与具体指标关联的假设。

注意事项
  • 查询返回无数据 — 用 list_metrics 检查标签名——不同 exporter 的标签大小写和分隔符可能不同
搭配使用: kubectl

从 Prometheus 生成每周 SLO 合规报告

👤 SRE 负责人 ⏱ ~25 min intermediate

何时使用: 周五 SLO 评审——你需要数字而不是感觉。

步骤
  1. 定义 SLI
    对于服务 X,计算本周的可用性(成功数/总数)和延迟(低于阈值的请求/总数)。✓ 已复制
    → 两个比率和消耗速率
  2. 与 SLO 对标
    可用性 SLO = 99.9%,延迟 SLO = 95%。我在阈值上还是下方?预测错误预算耗尽时间。✓ 已复制
    → 结论 + 剩余预算天数

结果: 有数字支撑的 SLO 报告,而不是'大体还好'。

搭配使用: google-sheets

用 Claude 审计 Prometheus 抓取目标的健康状态

👤 平台工程师 ⏱ ~15 min intermediate

何时使用: 你怀疑一半的目标已经宕机但还没检查。

步骤
  1. 获取目标
    调用 get_targets。按 job 分组;哪些有 DOWN 的实例?✓ 已复制
    → job 对应的上/下线实例数表格
  2. 调查
    对于最严重的情况,显示 DOWN 实例的 lastError。可能的原因?✓ 已复制
    → 每个目标的可操作根因

结果: 在几分钟内恢复抓取。

组合

与其他 MCP 搭配,撬动十倍杠杆

prometheus + kubectl

将指标异常与 pod 状态配对

对于延迟尖峰的服务,关联 Prometheus 数据和 kubectl describe 的 pod 信息。✓ 已复制
prometheus + sentry

指标尖峰 + 错误尖峰关联

Sentry 显示错误在 14:00 翻倍——Prometheus 的哪些指标在同一时间变动?✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
health_check 验证连通性 1 API call
execute_query query: promql, time? 即时快照 1 query
execute_range_query query, start, end, step 时间序列分析 1 query (may be expensive)
list_metrics match?: str 当你不知道指标名称时用于发现 1 API call
get_metric_metadata metric: str 计算前理解单位 1 API call
get_targets 抓取健康检查 1 API call

成本与限制

运行它的成本

API 配额
Prometheus 随服务器规模扩展;昂贵的查询可能会压力测试它
每次调用 Token 数
包含大量序列的范围查询可能产生 10k+ token
费用
免费
提示
在范围查询上明智地使用 step;24 小时内 10 秒分辨率会产生每个序列 8640 个样本

安全

权限、密钥、影响范围

最小权限: Prometheus API 的只读访问
凭据存储: 在环境变量中存储 Bearer token 或基本认证凭据;如果使用 mTLS 则存储证书路径
数据出站: 仅限你的 Prometheus URL

故障排查

常见错误与修复

查询返回空结果但无错误

指标/标签名称不存在。用 list_metrics 和 match 前缀验证

范围查询超时

缩小时间范围或增加 step。Prometheus 查询引擎对单个查询有资源限制

Bearer token 返回 401

Token 在 /api/v1 上缺少读权限;如果 Prometheus 在反向代理后面则检查反向代理配置

验证: curl -H 'Authorization: Bearer $T' $PROMETHEUS_URL/api/v1/status/config

替代方案

prometheus-mcp-server 对比其他方案

替代方案何时用它替代权衡
Grafana MCP你已经在 Grafana 中可视化数据,想进行仪表板/告警操作功能更重;可能包含你不需要的功能
Datadog MCPDatadog 是你的指标存储付费;查询语言不同

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills