Prometheus MCP Server

by pab1it0
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides access to Prometheus metrics and queries, allowing execution of PromQL queries, metrics discovery and exploration, viewing instant and range query results, and retrieving target information from a Prometheus server.

Prometheus MCP サーバー

Prometheus 用のモデル コンテキスト プロトコル(MCP) サーバー。

これにより、標準化された MCP インターフェースを介して Prometheus メトリックとクエリにアクセスできるようになり、AI アシスタントが PromQL クエリを実行してメトリック データを分析できるようになります。

特徴

  • [x] Prometheusに対してPromQLクエリを実行する
  • [x] 指標の発見と探索
    • [x] 利用可能なメトリックの一覧
    • [x] 特定のメトリックのメタデータを取得する
    • [x] 即時クエリ結果を表示
    • [x] 異なるステップ間隔で範囲クエリの結果を表示する
  • [x] 認証サポート
    • [x] 環境変数からの基本認証
    • [x] 環境変数からのベアラートークン認証
  • [x] Dockerコンテナ化のサポート
  • [x] AIアシスタントのためのインタラクティブツールを提供する

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

使用法

  1. この MCP サーバーを実行する環境から Prometheus サーバーにアクセスできることを確認します。
  2. .envファイルまたはシステム環境変数を使用して、Prometheus サーバーの環境変数を構成します。
# Required: Prometheus configuration PROMETHEUS_URL=http://your-prometheus-server:9090 # Optional: Authentication credentials (if needed) # Choose one of the following authentication methods if required: # For basic auth PROMETHEUS_USERNAME=your_username PROMETHEUS_PASSWORD=your_password # For bearer token auth PROMETHEUS_TOKEN=your_token
  1. サーバー設定をクライアント設定ファイルに追加します。例えば、Claude Desktopの場合は以下のようになります。
{ "mcpServers": { "prometheus": { "command": "uv", "args": [ "--directory", "<full path to prometheus-mcp-server directory>", "run", "src/prometheus_mcp_server/main.py" ], "env": { "PROMETHEUS_URL": "http://your-prometheus-server:9090", "PROMETHEUS_USERNAME": "your_username", "PROMETHEUS_PASSWORD": "your_password" } } } }

注意: Claude Desktop でError: spawn uv ENOENT表示される場合は、 uvへのフル パスを指定するか、構成で環境変数NO_UV=1を設定する必要があります。

Dockerの使用

このプロジェクトには、簡単な展開と分離を実現する Docker サポートが含まれています。

Dockerイメージの構築

次を使用して Docker イメージをビルドします。

docker build -t prometheus-mcp-server .

Dockerで実行する

Docker を使用してサーバーを実行するにはいくつかの方法があります。

docker run を直接使用する:

docker run -it --rm \ -e PROMETHEUS_URL=http://your-prometheus-server:9090 \ -e PROMETHEUS_USERNAME=your_username \ -e PROMETHEUS_PASSWORD=your_password \ prometheus-mcp-server

docker-compose を使用する:

Prometheus の資格情報を使用して.envファイルを作成し、次を実行します。

docker-compose up

Claude Desktop で Docker を実行する

Claude Desktop でコンテナ化されたサーバーを使用するには、環境変数を使用して Docker を使用するように構成を更新します。

{ "mcpServers": { "prometheus": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "PROMETHEUS_URL", "-e", "PROMETHEUS_USERNAME", "-e", "PROMETHEUS_PASSWORD", "prometheus-mcp-server" ], "env": { "PROMETHEUS_URL": "http://your-prometheus-server:9090", "PROMETHEUS_USERNAME": "your_username", "PROMETHEUS_PASSWORD": "your_password" } } } }

この構成では、変数名のみを指定した-eフラグを使用し、 envオブジェクトに実際の値を指定して、Claude Desktop から Docker コンテナーに環境変数を渡します。

Docker実装に関する注意:Docker設定は、Claudeで正常に動作することが実証されているchess-mcpプロジェクトの構造に合わせて更新されました。新しい実装では、マルチステージビルドプロセスを採用し、シェルスクリプトを介さずにエントリポイントスクリプトを直接実行します。このアプローチにより、MCP通信におけるstdin/stdoutの適切な処理が保証されます。

発達

貢献を歓迎します!ご提案や改善点がありましたら、問題を報告するか、プルリクエストを送信してください。

このプロジェクトは依存関係の管理に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 .

プロジェクト構造

プロジェクトはsrcディレクトリ構造で構成されています:

prometheus-mcp-server/ ├── src/ │ └── prometheus_mcp_server/ │ ├── __init__.py # Package initialization │ ├── server.py # MCP server implementation │ ├── main.py # Main application logic ├── Dockerfile # Docker configuration ├── docker-compose.yml # Docker Compose configuration ├── .dockerignore # Docker ignore file ├── pyproject.toml # Project configuration └── README.md # This file

テスト

このプロジェクトには、機能性を保証し、回帰を防ぐのに役立つ包括的なテスト スイートが含まれています。

pytest でテストを実行します。

# Install development dependencies uv pip install -e ".[dev]" # Run the tests pytest # Run with coverage report pytest --cov=src --cov-report=term-missing

テストは次のように分類されます:

  • 構成検証テスト
  • サーバー機能テスト
  • エラー処理テスト
  • 主なアプリケーションテスト

新しい機能を追加する場合は、対応するテストも追加してください。

ツール

道具カテゴリ説明
execute_queryクエリPrometheusに対してPromQLインスタントクエリを実行する
execute_range_queryクエリ開始時刻、終了時刻、ステップ間隔を指定してPromQL範囲クエリを実行する
list_metrics発見Prometheusで利用可能なすべてのメトリックを一覧表示する
get_metric_metadata発見特定のメトリックのメタデータを取得する
get_targets発見すべてのスクレイプターゲットに関する情報を取得する

ライセンス

マサチューセッツ工科大学


-
security - not tested
A
license - permissive license
-
quality - not tested

標準化されたモデル コンテキスト プロトコル インターフェースを通じて Prometheus メトリックとクエリへのアクセスを提供し、AI アシスタントが PromQL クエリを実行してメトリック データを分析できるようにします。

  1. Features
    1. Usage
      1. Docker Usage
        1. Building the Docker Image
        2. Running with Docker
        3. Running with Docker in Claude Desktop
      2. Development
        1. Project Structure
          1. Testing
          2. Tools
        2. License

          Appeared in Searches

          ID: rwxokujcu0