Prometheus MCPサーバー
Prometheus MCP サーバーは、AWS Managed Prometheus とやり取りするための堅牢なインターフェースを提供し、ユーザーが AWS SigV4 認証のサポートのもとで PromQL クエリの実行、メトリクスの一覧表示、サーバー情報の取得を行えるようにします。
この MCP サーバーは Kiro と完全に互換性を持つように設計されており、Prometheus のモニタリング機能を Kiro のワークフローにシームレスに統合できます。サーバーを Kiro に直接ロードすることで、使い慣れた Kiro IDE や Kiro CLI のインターフェースを通じて、その強力なクエリ機能とメトリクス分析機能を活用できます。
機能
- AWS Managed Prometheus に対する PromQL のインスタントクエリの実行
- 開始時刻、終了時刻、ステップ間隔を指定したレンジクエリの実行
- Prometheus インスタンスで利用可能なすべてのメトリクスの一覧表示
- サーバー設定情報の取得
- セキュアなアクセスのための AWS SigV4 認証
- 指数バックオフによる自動リトライ
インストール
| Kiro | Cursor | VS Code |
|---|---|---|
前提条件
- Python 3.10 以降
- 適切な権限を設定した AWS 認証情報
- AWS Managed Prometheus のワークスペース
設定
このサーバーは、以下の使用方法セクションに示すように、Kiro の MCP 設定ファイルを通じて設定します。
Kiro での使用
- 設定ファイルを作成します。
mkdir -p ~/.kiro/settings/
~/.kiro/settings/mcp.jsonに以下を追加します。
基本設定
{
"mcpServers": {
"prometheus": {
"command": "uvx",
"args": [
"awslabs.prometheus-mcp-server@latest"
],
"env": {
"FASTMCP_LOG_LEVEL": "DEBUG"
}
}
}
}
Windows でのインストール
Windows ユーザーの場合、MCP サーバーの設定形式は少し異なります。
{
"mcpServers": {
"awslabs.prometheus-mcp-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.prometheus-mcp-server@latest",
"awslabs.prometheus-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_PROFILE": "your-aws-profile",
"AWS_REGION": "us-east-1"
}
}
}
}
オプション引数を使った設定
{
"mcpServers": {
"prometheus": {
"command": "uvx",
"args": [
"awslabs.prometheus-mcp-server@latest",
"--url",
"https://aps-workspaces.<AWS Region>.amazonaws.com/workspaces/ws-<Workspace ID>",
"--region",
"<Your AWS Region>",
"--profile",
"<Your CLI Profile>"
],
"env": {
"FASTMCP_LOG_LEVEL": "DEBUG"
}
}
}
}
- これで Kiro 上で Prometheus MCP サーバーを使ってメトリクスをクエリできるようになります。
利用可能なツール
-
GetAvailableWorkspaces
- 指定したリージョンで利用可能なすべての Prometheus ワークスペースを一覧表示します
- パラメータ: region(オプション)
- 戻り値: ID、エイリアス、ステータスを含むワークスペースのリスト
-
ExecuteQuery
- Prometheus に対して PromQL のインスタントクエリを実行します
- パラメータ: workspace_id(必須)、query(必須)、time(オプション)、region(オプション)
-
ExecuteRangeQuery
- 指定した時間範囲にわたって PromQL クエリを実行します
- パラメータ: workspace_id(必須)、query、start time、end time、step interval、region(オプション)
-
ListMetrics
- Prometheus から利用可能なすべてのメトリクス名を取得します
- パラメータ: workspace_id(必須)、region(オプション)
- 戻り値: ソートされたメトリクス名のリスト
-
GetServerInfo
- サーバーの設定詳細を取得します
- パラメータ: workspace_id(必須)、region(オプション)
- 戻り値: URL、リージョン、プロファイル、サービス情報
クエリの例
# Get available workspaces
workspaces = await get_available_workspaces()
for ws in workspaces['workspaces']:
print(f"ID: {ws['workspace_id']}, Alias: {ws['alias']}, Status: {ws['status']}")
# Execute an instant query
result = await execute_query(
workspace_id="ws-12345678-abcd-1234-efgh-123456789012",
query="up"
)
# Execute a range query
data = await execute_range_query(
workspace_id="ws-12345678-abcd-1234-efgh-123456789012",
query="rate(node_cpu_seconds_total[5m])",
start="2023-01-01T00:00:00Z",
end="2023-01-01T01:00:00Z",
step="1m"
)
# List available metrics
metrics = await list_metrics(
workspace_id="ws-12345678-abcd-1234-efgh-123456789012"
)
# Get server information
info = await get_server_info(
workspace_id="ws-12345678-abcd-1234-efgh-123456789012"
)
トラブルシューティング
よくある問題と解決策:
-
AWS 認証情報が見つからない
- ~/.aws/credentials を確認する
- AWS_PROFILE 環境変数を設定する
- IAM 権限を確認する
-
接続エラー
- Prometheus の URL が正しいか確認する
- ネットワーク接続を確認する
- AWS VPC アクセスが正しく設定されているか確認する
-
認証の失敗
- AWS 認証情報が最新であるか確認する
- システムクロックの同期を確認する
- 正しい AWS リージョンが指定されているか確認する
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については LICENSE ファイルを参照してください。