Skip to main content
Glama
CharlieFng

CloudWatch MCP Server

by CharlieFng

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)

設定

  1. Python 3.12 以降がインストールされていることを確認してください。

  2. 仮想環境を作成します (オプションですが推奨されます)。

    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 依存関係をインストールします:

    pip install -r requirements.txt
  4. AWS 認証情報をまだ設定していない場合は設定します。

    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 サーバーを起動します。

python cloudwatch_server.py

または、MCP CLI を使用します。

mcp run cloudwatch_server.py

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 統合を直接テストできます。

# Make the test file executable chmod +x test_cloudwatch.py # List all log groups ./test_cloudwatch.py log-groups # List all alarms ./test_cloudwatch.py alarms # Use a specific AWS profile ./test_cloudwatch.py log-groups --profile my-profile # Enable verbose logging ./test_cloudwatch.py alarms -v

MCP CLI の例

MCP CLI の使用:

# List all log groups mcp inspect cloudwatch://log-groups # Get details about a specific log group mcp inspect cloudwatch://log-groups/my-log-group-name # List all alarms mcp inspect cloudwatch://alarms # List alarms currently in ALARM state mcp inspect cloudwatch://alarms/in-alarm # List all saved CloudWatch Logs Insights queries mcp inspect cloudwatch://saved-queries # Query logs from multiple log groups using CloudWatch Insights mcp call query_logs --log_group_names '["log-group-1", "log-group-2"]' --query_string "fields @timestamp, @message | limit 10" # Query logs from a single log group (still supported) mcp call query_logs --log_group_names "my-log-group" --query_string "fields @timestamp, @message | limit 10" # Discover fields across multiple log groups mcp call discover_log_fields --log_group_names '["log-group-1", "log-group-2"]' # Check if multiple log groups exist mcp call log_group_exists --log_group_names '["log-group-1", "log-group-2"]' # Get all saved CloudWatch Logs Insights queries mcp call get_saved_queries

ライセンス

マサチューセッツ工科大学

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CharlieFng/cloudwatch-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server