Prometheus Alertmanager MCP Server について
TypeScript製のMCPサーバーで、ClaudeなどのMCPクライアントをPrometheus Alertmanagerに接続します。AlertmanagerのHTTP APIを通じて、アラートの検索やグループ表示、サイレンス管理を行えます。
主な機能
- 01アラートの取得と絞り込み
- 02フィンガープリントによる詳細表示
- 03サイレンスの作成・一覧・削除
- 04Alertmanagerのアラートグループ取得
活用シーン
- 01MCPクライアントでアクティブなアラートを確認
- 02条件に合うアラートを検索
- 03特定アラートの詳細を調査
- 04メンテナンス中の通知を抑制
MCP 対応
Alertmanagerのアラートとサイレンス操作をMCPツールとして公開します。Alertmanager HTTP API v2と通信し、stdioで動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| active | boolean | いいえ | アクティブなアラートを含めます(デフォルト:true) |
| filter | string | いいえ | フィルタリングクエリ(例:alertname=~'.*CPU.*') |
| silenced | boolean | いいえ | サイレンス状態のアラートを含めます |
| inhibited | boolean | いいえ | 抑制されたアラートを含めます |
詳細
Prometheus Alertmanager MCP サーバー
このプロジェクトは、Prometheus Alertmanagerと連携するModel Context Protocol(MCP)サーバーを実装しています。Claude AIとAlertmanagerをつなぐ橋渡しとして機能し、標準化されたインターフェースを通じてClaudeがアラートを操作・管理できるようにします。
主な機能
-
アラートの取得:Alertmanagerから現在のアラートを取得してフォーマットします。オプションでフィルタリングもできます。
-
アラートの詳細:フィンガープリントを指定すると、特定のアラートの詳細情報を提供します。
-
サイレンスの管理:特定のアラートに対する通知を抑制するサイレンスを作成、一覧表示、削除するツールを提供します。
-
アラートのグループ化:Alertmanagerが整理したアラートグループを取得します。
技術的な実装
- TypeScriptとMCP SDKを使用して構築
- AlertmanagerのHTTP API(v2)と通信
- Claude for Desktopと互換性のあるstdioベースのプロセスとして実行
- 適切なエラー処理とタイムアウト管理を実装
- アラートとサイレンスのデータに対して、型安全なインターフェースを提供
インストール
前提条件
- 稼働中のPrometheus Alertmanagerインスタンスにアクセスできること
- Claude for Desktopを使用する場合:システムにNode.js(v18以降)がインストールされていること
セットアップ
このパッケージはnpmで入手でき、npxを使って直接実行できます。
npx alertmanager-mcp
グローバルにインストールする場合:
npm install -g alertmanager-mcp
alertmanager-mcp
Claude for Desktopでの使用
- 設定ファイルを編集して、Claude for DesktopでMCPサーバーを使用するように設定します。
{
"mcpServers": {
"alertmanager": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--network=host",
"-e", "ALERTMANAGER_URL=http://your-alertmanager-url:9093",
"ghcr.io/kaznak/alertmanager-mcp:latest"
],
"env": {}
}
}
}
-
Claude for Desktopを再起動して、新しい設定を読み込みます。
-
自然言語を使って、ClaudeにAlertmanagerを操作するよう依頼できます。
- 「現在のアラートを表示して」
- 「CPUに関するアラートを絞り込んで」
- 「このアラートの詳細を取得して」
- 「このアラートのサイレンスを今後2時間作成して」
利用可能なツール
get-alerts
オプションのフィルタリング条件を指定して、アラートの一覧を取得します。
パラメーター:
filter:(任意)フィルタリングクエリ(例:alertname=~'.*CPU.*')silenced:(任意)サイレンス状態のアラートを含めるinhibited:(任意)抑制状態のアラートを含めるactive:(任意)アクティブなアラートを含める(デフォルト:true)
get-alert-details
特定のアラートの詳細情報を取得します。
パラメーター:
fingerprint:アラートのフィンガープリント
create-silence
指定した条件に一致するアラートのサイレンスを作成します。
パラメーター:
matchers:アラートに対するマッチャーの一覧startsAt:(任意)サイレンスの開始時刻(ISO8601形式。デフォルトは現在時刻)endsAt:サイレンスの終了時刻(ISO8601形式)createdBy:サイレンスを作成したユーザー名comment:サイレンスの理由または説明
get-silences
オプションのフィルタリング条件を指定して、サイレンスの一覧を取得します。
パラメーター:
filter:(任意)フィルタリングクエリ(例:createdBy=~'.*admin.*')
delete-silence
IDを指定してサイレンスを削除します。
パラメーター:
silenceId:削除するサイレンスのID
get-alert-groups
オプションのフィルタリング条件を指定して、アラートグループを取得します。
パラメーター:
active:(任意)アクティブなアラートを含める(デフォルト:true)silenced:(任意)サイレンス状態のアラートを含めるinhibited:(任意)抑制状態のアラートを含める
サーバーの拡張
このMCPサーバーには、次のような機能を追加できます。
- アラート傾向の分析
- 自動対応の提案
- インシデント管理システムとの連携
- 特定のアラート種別に対応したカスタムダッシュボード
リソース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。