Skip to main content
Glama
pab1it0

Prometheus MCP 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クライアントで利用できるようにするツールを選択できます。特定の機能を使用しない場合や、コンテキストウィンドウをあまり占有したくない場合に便利です。

Related MCP server: Prometheus MCP Server

使用法

  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 # Optional: For multi-tenant setups like Cortex, Mimir or Thanos ORG_ID=your_organization_id
  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イメージ

このプロジェクトを使用する最も簡単な方法は、GitHub Container Registry から事前に構築されたイメージを使用することです。

docker pull ghcr.io/pab1it0/prometheus-mcp-server:latest

タグを使用して特定のバージョンを使用することもできます。

docker pull ghcr.io/pab1it0/prometheus-mcp-server:1.0.0

ローカルで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 \ ghcr.io/pab1it0/prometheus-mcp-server:latest

ローカルでビルドされたイメージで 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", "ghcr.io/pab1it0/prometheus-mcp-server:latest" ], "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

発見

すべてのスクレイプターゲットに関する情報を取得する

ライセンス

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


Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pab1it0/prometheus-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server