/ ディレクトリ / プレイグラウンド / 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クエリ、レンジクエリ、メトリクス探索、ターゲットヘルスチェックに対応しています。Basic認証、Bearerトークン、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の直近1時間のHTTPリクエストp99レイテンシを30秒解像度でクエリし、過去7日間のベースラインと比較してください。✓ コピーしました
    → スパイクを示すレンジクエリ結果
  2. 相関メトリクスを見つける
    スパイク発生時間帯で、サービスXの他のメトリクスのうち2σ以上変動したものは?CPU、メモリ、GC、キュー深度を確認してください。✓ コピーしました
    → 原因候補のメトリクス
  3. ラベルで絞り込む
    スパイクをpod/hostラベル別に分解してください。1つのPodだけですか、それともフリート全体ですか?✓ コピーしました
    → ラベル別の内訳

結果: 5分以内に、具体的なメトリクスに基づいた仮説が得られます。

注意点
  • クエリがデータを返さないlist_metricsでラベル名を確認してください — エクスポーターによってラベルの大文字小文字や区切り文字が異なります
組み合わせ: kubectl

Prometheusから週次SLOコンプライアンスレポートを生成する

👤 SREリード ⏱ ~25 min intermediate

使うタイミング: 金曜日のSLOレビューで、感覚ではなく数値に基づいた報告が必要なとき。

フロー
  1. SLIを定義する
    サービスXについて、今週の可用性(成功/総リクエスト比率)とレイテンシ(閾値以下のリクエスト/総リクエスト比率)を数値で算出してください。✓ コピーしました
    → バーンレート付きの2つの比率
  2. SLOと比較する
    可用性SLO = 99.9%、レイテンシSLO = 95%です。基準を上回っていますか、下回っていますか?エラーバジェットの枯渇予測も出してください。✓ コピーしました
    → 判定結果 + バジェット残日数

結果: 「だいたい大丈夫」ではなく、数値に裏付けられた堅実なSLOレポートが得られます。

組み合わせ: google-sheets

ClaudeでPrometheusスクレイプターゲットのヘルスを監査する

👤 プラットフォームエンジニア ⏱ ~15 min intermediate

使うタイミング: ターゲットの半数がダウンしている疑いがあるが、まだ確認していないとき。

フロー
  1. ターゲットを取得する
    get_targetsを呼び出してください。ジョブ別にグループ化し、DOWNインスタンスがあるジョブはどれですか?✓ コピーしました
    → ジョブ → UP/DOWNカウントのテーブル
  2. 調査する
    最も状態が悪いジョブについて、DOWNインスタンスのlastErrorを表示してください。原因として考えられるものは?✓ コピーしました
    → ターゲットごとの対処可能な原因

結果: 数分でスクレイプの問題を復旧できます。

組み合わせ

他のMCPと組み合わせて10倍の力を

prometheus + kubectl

メトリクスの異常とPodの状態を突き合わせる

レイテンシスパイクが発生しているサービスについて、Prometheusのデータとkubectl describeの結果を相関分析してください。✓ コピーしました
prometheus + sentry

メトリクスのスパイクとエラースパイクの相関分析

Sentryで14:00にエラーが倍増しています — 同時刻にPrometheusのどのメトリクスが変動しましたか?✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
health_check 接続性を確認する 1 APIコール
execute_query query: promql, time? 瞬間的なスナップショットを取得する 1クエリ
execute_range_query query, start, end, step 時系列分析を行う 1クエリ(高負荷になる場合あり)
list_metrics match?: str メトリクス名が不明な場合の探索 1 APIコール
get_metric_metadata metric: str 計算前に単位を把握する 1 APIコール
get_targets スクレイプのヘルス状態を確認する 1 APIコール

コストと制限

運用コスト

APIクォータ
Prometheusはサーバー性能に応じてスケールしますが、高負荷なクエリはサーバーに負担をかける可能性があります
呼び出しあたりのトークン
多数のシリーズを含むレンジクエリは10,000トークン以上になる場合があります
金額
無料
ヒント
レンジクエリではstepを適切に設定してください。24時間を10秒解像度で取得すると、1シリーズあたり8,640サンプルになります

セキュリティ

権限、シークレット、影響範囲

最小スコープ: read-only access to Prometheus API
認証情報の保管: Bearerトークンまたは Basic認証は環境変数に設定。mTLSを使用する場合は証明書のパスを指定してください
データ送信先: アクセス先はお使いのPrometheus URLのみです

トラブルシューティング

よくあるエラーと対処法

Query returns empty with no error — クエリがエラーなしで空を返す

メトリクス名またはラベル名が存在しません。list_metricsでmatchプレフィックスを指定して確認してください

Range query times out — レンジクエリがタイムアウトする

時間範囲を短くするか、stepを大きくしてください。Prometheusのクエリエンジンにはクエリごとのリソース制限があります

401 with bearer token — Bearerトークンで401エラー

トークンに/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を見る