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. 04Prometheusのスクレイプターゲット状態の確認

MCP 対応

MCP サーバーとして、Prometheusのクエリ、検索、メタデータ、ターゲット、ヘルスチェック用ツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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 Server

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

Prometheus MCP サーバーを実行する最も簡単な方法は、Docker Desktop を使用することです。

Docker Desktop に追加
  1. MCP カタログから: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

利用可能なすべての設定オプションについては、チャートの値を参照してください。

### 設定オプション
変数説明必須
PROMETHEUS_URLPrometheus サーバーの URLはい
PROMETHEUS_URL_SSL_VERIFYSSL 検証を無効にするには False を設定しますいいえ
PROMETHEUS_DISABLE_LINKSクエリ結果内の Prometheus UI リンクを無効にするには True を設定します(コンテキストトークンを節約できます)いいえ
PROMETHEUS_REQUEST_TIMEOUTリクエストがハングするのを防ぐためのタイムアウト時間(秒)(DDoS 対策)いいえ(デフォルト:30)
PROMETHEUS_USERNAME基本認証用のユーザー名いいえ
PROMETHEUS_PASSWORD基本認証用のパスワードいいえ
PROMETHEUS_TOKEN認証用のベアラートークンいいえ
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検索1 つのメトリクスのメタデータ、または任意のフィルタリングを適用した複数メトリクスのメタデータを取得します
get_targets検索スクレイプターゲットを取得します。サーバー側の state/scrape_pool によるフィルタリングと、任意のページネーションに対応しています

ツールのリストは設定可能なため、MCP クライアントで利用できるようにするツールを選択できます。特定の機能を使わない場合や、コンテキストウィンドウを使いすぎたくない場合に便利です。

機能

  • Prometheus に対して PromQL クエリを実行
  • メトリクスを検索・調査
    • 利用可能なメトリクスを一覧表示
    • 特定のメトリクスのメタデータを取得
    • 1 回の呼び出しで、名前または説明からメトリクスメタデータを検索
    • インスタントクエリの結果を表示
    • 異なるステップ間隔で範囲クエリの結果を表示
    • 同じ時間範囲と解像度で、範囲クエリの結果を Prometheus UI で開く
  • 認証に対応
    • 環境変数による基本認証
    • 環境変数によるベアラートークン認証
  • 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


コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。