MCP Server for Prometheus について
Prometheus のメトリクスを取得・分析する MCP サーバーです。メトリクス情報や期間指定データ、PromQL クエリを扱う LLM ベースの用途を想定しています。
主な機能
- 01メトリクス名と説明の取得
- 02メトリクス名によるデータ取得
- 03任意期間のデータ分析
- 04メトリクスの統計分析
- 05PromQL クエリの実行
活用シーン
- 01Prometheus の利用可能なメトリクスを確認
- 02指定期間のメトリクス変化を調査
- 03PromQL でデータを探索
- 04取得したメトリクスの統計を分析
MCP 対応
MCP クライアントに、メトリクスメタデータ、期間指定データ、PromQL クエリなどの取得・分析ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Prometheus 用 MCP サーバー
Prometheus データベースからデータを取得するための Model Context Protocol(MCP)サーバーです。この MCP サーバーを使用すると、大規模言語モデル(LLM)がツール関数を呼び出し、事前に定義されたルートを通じて、使用方法をより細かく制御しながら、大量のメトリクスデータの取得と分析、メトリクスの使用状況の検索、複雑なクエリの実行など、関連するさまざまなタスクを行えます。
- データ取得:Prometheus から特定のメトリクスまたはデータ範囲を取得します。
- メトリクス分析:取得したメトリクスの統計分析を行います。
- 使用状況の検索:メトリクスの使用パターンを見つけて調査します。
- 複雑なクエリ:高度な PromQL クエリを実行し、データを詳細に調査します。
機能
✅ Prometheus から名前や説明など、メトリクスに関する包括的な情報を取得します
✅ メトリクス名を使って、特定のメトリクスデータを取得、分析します
✅ カスタムの時間範囲内でメトリクスデータを分析します
🚧 特定のラベルを使ってデータをフィルタリング、照合します(開発中)
⏳ その他の機能を予定しています...
はじめに
MCP の実行には Python 仮想環境(venv)が必要です。MCP サーバーを自動的に起動できるよう、すべてのパッケージをこの venv にインストールしてください。
Smithery 経由でインストール
Smithery 経由で Prometheus MCP Server を Claude Desktop に自動インストールするには、次のようにします。
npx -y @smithery/cli install @CaesarYangs/prometheus_mcp_server --client claude
手動インストール
Python 環境を準備する
cd ./src/prometheus_mcp_server
python3 -m venv .venv
# linux/macos:
source .venv/bin/activate
# windows:
.venv\Scripts\activate
これで、専用の Python 環境として使用できるようになります。
必要なパッケージをインストールする
pip が正しくインストールされていることを確認してください。venv に pip がインストールされていない場合は、次のコマンドで手動インストールしてください。
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
次に、必要なパッケージをすべてインストールします。
pip install -r requirements.txt
使い方
Cursor 環境で使用する
より使いやすい Cursor 環境への対応を予定しています。
Cursor の設定にある MCP セクションで、次のように設定します。
uv --directory /path/to/prometheus_mcp_server run server.py

MCP クライアント(Claude Desktop を含む)で使用する
Claude Desktop アプリの設定ファイル ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)を設定します。
{
"mcpServers": {
"prometheus": {
"command": "uv",
"args": [
"--directory",
"/path/to/prometheus_mcp_server",
"run",
"server.py"
],
"env": {
"PROMETHEUS_HOST": "http://localhost:9090"
}
}
}
}
単独の MCP サーバー
この MCP サーバーを単独で起動します。
uv を使用する方法
uv --directory /path/to/prometheus_mcp_server run server.py
Claude Desktop はアプリ起動時にこの uv スクリプトを使ってサーバーを起動するため、こちらの方法でも MCP サーバーが自動的に起動できることを確認できます。
通常の Python を使用する方法
python3 server.py
コントリビュート
コントリビュートを歓迎します。簡単な手順は次のとおりです。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/AmazingFeature) - 変更をコミットします(
git commit -m 'Add some AmazingFeature') - ブランチにプッシュします(
git push origin feature/AmazingFeature) - プルリクエストを作成します
大きな変更を行う場合は、まずイシューを作成して、変更内容について相談してください。
コントリビュートいただき、ありがとうございます!
ライセンス
MIT License
参考資料と謝辞
このプロジェクトは、以下のオープンソースプロジェクトに着想を得たか、そのコードを使用しています。
- Prometheus API Client - Prometheus API の呼び出しコードは、このライブラリをもとに変更しています
- MySQL MCP Server - 同様のデータベース指向 MCP サーバーの実装です
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。