CloudWatch MCP サーバー
この簡素化されたMCPサーバーは、MCPプロトコルを介してAWS CloudWatchリソースと効率的にやり取りする方法を提供します。CloudWatchのロググループ、ログクエリ、アラームをリソースおよびツールとして公開します。
特徴
すべての CloudWatch ロググループとそのメタデータを一覧表示する
すべての CloudWatch アラームとその現在の状態を一覧表示する
CloudWatch Insights を使用して複数のロググループにまたがって CloudWatch ログをクエリする
共有スキーマを使用して複数のログ グループ間で利用可能なフィールドを検出します
ログクエリの@messageフィールドの自動JSON解析
特定のロググループが存在するかどうかを確認する
特定のロググループに関する詳細情報を取得する
アラームを状態別にフィルタリングする(すべてのアラーム、または ALARM 状態のアラームのみ)
保存されたすべての CloudWatch Logs Insights クエリを取得する
Related MCP server: CloudWatch Logs MCP Server
前提条件
Python 3.12以上
AWS 認証情報が設定されている(環境変数、AWS CLI、または IAM ロール経由)
MCP CLI (バージョン 0.1.1 以上)
Boto3 (Python 用 AWS SDK)
設定
Python 3.12 以降がインストールされていることを確認してください。
仮想環境を作成します (オプションですが推奨されます)。
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate依存関係をインストールします:
pip install -r requirements.txtAWS 認証情報をまだ設定していない場合は設定します。
aws configureまたは環境変数を設定します。
export AWS_ACCESS_KEY_ID="your-access-key" export AWS_SECRET_ACCESS_KEY="your-secret-key" export AWS_REGION="your-region"
プロジェクト構造
cloudwatch_server.py- CloudWatch 統合用の MCP サーバー実装aws_cloudwatch.py- 簡素化された AWS CloudWatch 統合モジュールtest_cloudwatch.py- CloudWatch 統合をテストするためのコマンドライン ユーティリティ
サーバーの実行
MCP サーバーを起動します。
または、MCP CLI を使用します。
MCPサーバーの使用
リソース
サーバーは次のリソースを公開します。
cloudwatch://log-groups- すべての CloudWatch ロググループを一覧表示しますcloudwatch://log-groups/{log_group_name}- 特定のロググループに関する詳細情報を取得しますcloudwatch://alarms- すべてのCloudWatchアラームを一覧表示しますcloudwatch://alarms/in-alarm- 現在 ALARM 状態にある CloudWatch アラームのみを一覧表示しますcloudwatch://saved-queries- 保存されたすべての CloudWatch Logs Insights クエリを一覧表示します
ツール
サーバーは次のツールを提供します。
query_logs- CloudWatch Insights を使用して CloudWatch ログをクエリするパラメータ:
log_group_names: クエリする単一のロググループ名またはロググループ名のリストquery_string: CloudWatch Insights クエリ文字列start_time: (オプション) クエリの開始時刻(Unixタイムスタンプミリ秒)end_time: (オプション) クエリの終了時刻(Unixタイムスタンプミリ秒)
特徴:
@message フィールドの JSON を自動的に解析します
JSONメッセージの構造化データを返します
1回のクエリで複数のロググループを処理する
discover_log_fields- 複数のロググループにわたって利用可能なフィールドを検出するパラメータ:
log_group_names: 分析する単一のロググループ名またはロググループ名のリスト
特徴:
複数のロググループにわたってフィールドを効率的に検出します
ロググループ間でスキーマを共有することを想定
@message 内のネストされた JSON フィールドを検出します
フィールドタイプ(数値、ブール値、文字列、配列)を識別します
log_group_exists- CloudWatch ロググループが存在するかどうかを確認するパラメータ:
log_group_names: チェックする単一のロググループ名またはロググループ名のリスト
戻り値:
各ロググループとその存在ステータスをマッピングする辞書
get_saved_queries- 保存されたすべての CloudWatch Logs Insights クエリを取得しますパラメータは必要ありません
CloudWatch統合のテスト
提供されているテスト スクリプトを使用して、CloudWatch 統合を直接テストできます。
MCP CLI の例
MCP CLI の使用:
ライセンス
マサチューセッツ工科大学