pmcp について
pmcpは、Prometheusのクエリと管理機能を公開するGo製MCPサーバーです。メトリクスの検索、メタデータの確認、サーバー操作やデータへのアクセスを必要とするMCPクライアント向けです。
主な機能
- 01即時および期間指定のPromQLクエリ
- 02メトリクスとラベルのメタデータ検索
- 03ターゲットとアラートの検出
- 04TSDB管理ツール
- 05Prometheusの状態とランタイム情報
活用シーン
- 01MCPクライアントからのメトリクス検索
- 02ターゲット、アラート、ルールのメタデータ確認
- 03PrometheusのランタイムとTSDB情報の確認
MCP 対応
Prometheusのツール、リソース、メトリクス一覧プロンプトをMCPクライアントに公開します。stdioとHTTPトランスポートに対応し、HTTPでは任意でBearerトークン認証を設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Prometheus MCP Server
Model Context Protocol を介して Prometheus のクエリ機能を提供する、Go ベースの MCP サーバーです。
インストール
go install github.com/yshngg/prometheus-mcp-server@latest
または、Docker イメージをプルします。
docker pull ghcr.io/yshngg/prometheus-mcp-server:latest
使用方法
prometheus-mcp-server --prom-addr="http://localhost:9090"
フラグ
| フラグ | デフォルト | 説明 |
|---|---|---|
-prom-addr | http://localhost:9090 | Prometheus サーバーの URL |
-mcp-addr | localhost:8080 | MCP サーバーのリッスンアドレス |
-transport | stdio | stdio または http |
-auth-token | `` | MCP エンドポイント認証用のベアラートークン(任意) |
-version | バージョンを表示 |
環境変数
すべてのフラグは環境変数で設定できます:PROM_ADDR、MCP_ADDR、TRANSPORT、AUTH_TOKEN。
MCP クライアントの設定
次の設定を MCP クライアントに追加します。
{
"mcpServers": {
"prometheus": {
"command": "prometheus-mcp-server",
"args": ["--prom-addr", "http://localhost:9090"]
}
}
}
メモ
go install github.com/yshngg/prometheus-mcp-server@latestでバイナリをインストールするか、docker pull ghcr.io/yshngg/prometheus-mcp-server:latestで Docker イメージをプルしてください。
バイナリをインストールしていない場合は、Docker を使用します。
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/yshngg/prometheus-mcp-server:latest",
"--prom-addr",
"http://host.docker.internal:9090"
]
}
}
}
クライアント別の設定
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"prometheus": {
"command": "prometheus-mcp-server",
"args": ["--prom-addr", "http://localhost:9090"]
}
}
}
Docker を使用する場合:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/yshngg/prometheus-mcp-server:latest",
"--prom-addr",
"http://host.docker.internal:9090"
]
}
}
}
OpenCode
opencode.json に追加します(ガイド)。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"prometheus": {
"type": "local",
"command": [
"prometheus-mcp-server",
"--prom-addr",
"http://localhost:9090"
]
}
}
}
HTTP トランスポート
HTTP トランスポートを使用してサーバーを実行します。
prometheus-mcp-server --transport=http --mcp-addr="localhost:8080"
次に、http://localhost:8080/mcp を使用するようにクライアントを設定します。
認証付きでアクセスするには、AUTH_TOKEN を設定します。
AUTH_TOKEN=my-token prometheus-mcp-server --transport=http
クライアントは、/mcp へのリクエストに Authorization: Bearer my-token を含める必要があります。
ツール
式: instant_query、range_query
メタデータ: find_series_by_labels、list_label_names、list_label_values、target_metadata_query、metric_metadata_query
検出: target_discovery、alert_query、rule_query、alertmanager_discovery
TSDB 管理: tsdb_snapshot、delete_series、clean_tombstones
管理: health_check、readiness_check、reload、quit
リソース
サーバーは、prom:/// スキームで URI からアクセスできるリソースとして Prometheus のデータを公開します。
| URI | 説明 |
|---|---|
prom:///config | 現在読み込まれている設定(YAML) |
prom:///flags | コマンドラインフラグの値 |
prom:///runtime-info | ランタイム情報 |
prom:///build-info | ビルド情報 |
prom:///tsdb-stats | TSDB のカーディナリティ統計 |
prom:///wal-replay-stats | WAL のリプレイ状態 |
リソーステンプレート
動的なデータアクセスに使用する URI テンプレート:
| テンプレート | 説明 |
|---|---|
prom:///api/v1/query?query={promql} | インスタント PromQL クエリの結果 |
prom:///api/v1/label/{name}/values | 指定したラベル名のラベル値 |
プロンプト
| 名前 | 引数 | 説明 |
|---|---|---|
all-available-metrics | prefix(任意) | Prometheus インスタンス内のすべてのメトリック名を一覧表示します |
ライセンス
Apache License 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。