/ 目錄 / 演練場 / Grafana MCP
● 官方 grafana 🔑 需要你的金鑰

Grafana MCP

作者 grafana · grafana/mcp-grafana

官方 Grafana MCP — 查詢 Prometheus/Loki/Tempo、列出儀表板、取得警報、執行事故時間線,全部在單一 stdio 伺服器後方。

Grafana 第一方 MCP 伺服器連接到你的 Grafana 堆疊(OSS、Cloud 或 Enterprise),並將其資料來源與管理 API 暴露為 MCP 工具。你可以執行 Prometheus/Loki/Tempo 查詢、探索儀表板、查看警報狀態、OnCall 以及 Sift 調查 — 凡是 Grafana 能做的,Claude 都能問。

為什麼要用

核心特性

即時演示

實際使用效果

mcp-grafana.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-grafana": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ],
      "env": {
        "GRAFANA_URL": "https://your-grafana.example.com",
        "GRAFANA_API_KEY": "${GRAFANA_API_KEY}"
      }
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-grafana",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GRAFANA_URL",
        "-e",
        "GRAFANA_API_KEY",
        "mcp/grafana",
        "-t",
        "stdio"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-grafana": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GRAFANA_URL",
          "-e",
          "GRAFANA_API_KEY",
          "mcp/grafana",
          "-t",
          "stdio"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add mcp-grafana -- docker run -i --rm -e GRAFANA_URL -e GRAFANA_API_KEY mcp/grafana -t stdio

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: Grafana MCP

從 Grafana 資料建立事故時間線

👤 SRE/on-call 人員 ⏱ ~10 min intermediate

何時使用: 傳呼機剛響;你想在加入通話之前掌握一份連貫的時間線。

前置條件
  • Grafana 服務帳號 token — Grafana → Administration → Service accounts;Editor 角色足以查詢
步驟
  1. 查看觸發中的警報
    Grafana:列出過去 30 分鐘內 service=checkout 的觸發警報。✓ 已複製
    → list_alerts 回傳 1 個以上帶有時間戳記的警報
  2. 取得指標
    針對每個警報,執行底層指標在過去 1 小時的 Prometheus 範圍查詢。標注突破時間。✓ 已複製
    → query_prometheus_range 回傳時間序列
  3. 取得突破時的日誌
    Loki:service=checkout、level=error,[突破時間-2m, 突破時間+2m]。排列出主要模式。✓ 已複製
    → 依特徵分群的日誌行
  4. 組合時間線
    建立簡潔時間線:警報觸發 → 指標突破 → 前 3 個錯誤日誌模式。Markdown 格式供 Slack 使用。✓ 已複製
    → 時間線已準備好,可直接貼上

結果: 在加入通話前組裝完成連貫的事故時間線。

注意事項
  • Loki 查詢範圍太廣 → 超出 token 預算 — 務必加入 service= 標籤;積極限縮時間視窗
  • Prometheus 查詢步長過細 — 1 小時視窗使用 step=15s 或 30s
搭配使用: sentry

理解 Grafana 儀表板實際上在顯示什麼

👤 新成員入職 ⏱ ~15 min beginner

何時使用: 你接手了一個儀表板,想在不點擊每個面板的情況下理解它。

步驟
  1. 找到它
    Grafana:搜尋標題為「Checkout SLO」的儀表板。✓ 已複製
    → 回傳儀表板 UID
  2. 檢查面板
    取得儀表板。針對每個面板,摘要:標題、資料來源、執行的查詢、閾值(若有)。✓ 已複製
    → 每個面板的說明;包含查詢字串

結果: 對儀表板有文件化的理解,可用於入職 wiki。

注意事項
  • 變數替換看起來很奇怪 — 說明 $service$env 插值是儀表板執行時的行為,不是 MCP 端的

稽核警報規則找出噪訊

👤 SRE 主管 ⏱ ~30 min intermediate

何時使用: 季度維護 — 找出持續觸發或從不觸發的規則。

步驟
  1. 取得規則
    Grafana:列出「Production」資料夾中的所有警報規則。✓ 已複製
    → 帶有 UID + 表達式的規則清單
  2. 取得觸發歷史
    針對每個,計算過去 30 天的警報實例數。標記超過 100 次(噪訊)或 0 次(休眠)的規則。✓ 已複製
    → 每個規則的計數 + 標記集合
  3. 提出建議
    針對每個標記的規則,提議修復方案:收緊閾值、新增 for: 5m,或刪除休眠規則。✓ 已複製
    → 每個規則的具體 YAML 變更

結果: 帶有 PR 就緒 YAML 的具體清理計劃。

注意事項
  • 計算實例數 ≠ 計算唯一警報 — 依標籤分組;計算不同的觸發時段
搭配使用: github

組合

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

mcp-grafana + sentry

將 Sentry 錯誤與指標/日誌突破進行交叉關聯

Sentry:取得 OrderService 的錯誤飆升。Grafana:在同一時間視窗取得 Prometheus + Loki 資料。✓ 已複製
mcp-grafana + github

開一個帶有警報規則清理的 PR

Grafana:稽核警報規則。GitHub:開一個以收緊閾值替換噪訊規則的 PR。✓ 已複製
mcp-grafana + filesystem

將事故時間線儲存為 Markdown 事後分析

從 Grafana 建立時間線,儲存到 /pm/2026-05-incident.md。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
list_datasources (none) 第一次呼叫,了解可用的資料來源 1 API call
query_prometheus datasource_uid, query, time? 即時指標值 1 call
query_prometheus_range datasource_uid, query, start, end, step 時間序列調查 1 call
query_loki_logs datasource_uid, expr, start, end, limit? 取得日誌 1 call
search_dashboards query: str 尋找儀表板 1 call
get_dashboard uid: str 檢查面板 1 call
list_alert_rules folder? 稽核/探索 1 call
list_alert_instances state? 查看當前觸發中的警報 1 call
list_oncall_schedules (none) 查看誰值班 1 call

成本與限制

運行它的成本

API 配額
受你的 Grafana 實例限制;Cloud 有組織層級 QPS 上限
每次呼叫 Token 數
300–8000(範圍查詢可能很大)
費用
免費開源;Grafana Cloud 照常計費
提示
範圍查詢務必傳入 step=;Loki 使用 limit=100,除非你確知資料量

安全

權限、密鑰、影響範圍

最小權限: 具備 Viewer 或 Editor 的服務帳號
憑證儲存: 服務帳號 token 存於環境變數
資料出站: 僅限你的 Grafana URL
切勿授予: Admin 角色,除非你需要規則修改

故障排查

常見錯誤與修復

401 Unauthorized

Token 錯誤或服務帳號已停用

驗證: curl -H 'Authorization: Bearer $TOKEN' $URL/api/health
Prometheus 查詢逾時

縮短時間範圍或步長

Loki「parse error」

LogQL 管道左側需要標籤過濾器;例如 {service="x"} |= "err"

找不到儀表板

匯入後 UID 已改變;先依標題搜尋

替代方案

Grafana MCP 對比其他方案

替代方案何時用它替代權衡
直接 Prometheus MCP僅有 Prometheus,無 Grafana沒有儀表板,沒有警報介面整合
Datadog MCP你使用的是 Datadog不同的可觀測性堆疊
Loki MCP 獨立版僅需日誌功能範圍較少

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

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