/ 目錄 / 演練場 / 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. 深入調查
    針對問題最嚴重的 job,顯示 DOWN 實例的 lastError,可能的原因是什麼?✓ 已複製
    → 每個目標的可行動原因

結果: 在幾分鐘內修復失敗的抓取任務。

組合

與其他 MCP 搭配,撬動十倍槓桿

prometheus + kubectl

將指標異常與 pod 狀態相互對應

針對有延遲突增的服務,將 Prometheus 資料與該服務 pod 的 kubectl describe 結果進行關聯分析。✓ 已複製
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+ tokens
費用
免費
提示
範圍查詢時謹慎設定 step;10 秒解析度查詢 24 小時,每個序列會產生 8640 個資料點

安全

權限、密鑰、影響範圍

最小權限: read-only access to Prometheus API
憑證儲存: Bearer Token 或基本驗證憑證存放於環境變數;若使用 mTLS 則設定憑證路徑
資料出站: 僅連線至你的 Prometheus URL

故障排查

常見錯誤與修復

Query returns empty with no error

指標或標籤名稱不存在。使用 list_metrics 搭配前綴過濾來確認

Range query times out

縮短時間範圍或增大 step 值。Prometheus 查詢引擎對每個查詢有資源限制

401 with bearer token

Token 缺少 /api/v1 的讀取權限;若 Prometheus 在反向代理後方,請檢查代理設定

驗證: curl -H 'Authorization: Bearer $T' $PROMETHEUS_URL/api/v1/status/config

替代方案

prometheus-mcp-server 對比其他方案

替代方案何時用它替代權衡
Grafana MCP已在 Grafana 做視覺化,且需要操作儀表板或告警較為龐大;功能可能超出實際需求
Datadog MCP使用 Datadog 作為指標儲存付費服務;查詢語言不同

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills