CloudWatch Logs MCP Server について
CloudWatch Logs MCP Server は AWS CloudWatch のログを読み取る MCP サーバーで、AI アシスタントがロググループの一覧取得やログエントリの取得を行えます。FastMCP と boto3 を使って実装されています。
主な機能
- 01CloudWatch ロググループの一覧取得
- 02時間範囲とフィルターパターンによるログ読み取り
- 03呼び出しごとの AWS 資格情報とリージョンの指定
- 04FastMCP クラスをベースとした実装
活用シーン
- 01AI アシスタントによる CloudWatch 上のアプリケーションログの照会
- 02特定の時間帯におけるエラーの調査
- 03AWS ログと Claude Desktop の連携
MCP 対応
本プロジェクトは MCP サーバーであり、list_groups と get_logs の 2 つのツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
CloudWatch Logs MCP サーバー
AWS CloudWatch のログにアクセスするためのツールを提供する MCP(Model Context Protocol)サーバーです。このサーバーにより、AI アシスタントは CloudWatch のロググループを一覧表示し、ログエントリを読み取ることができます。
利用可能なツール
list_groups
利用可能な CloudWatch ロググループを一覧表示します。
パラメータ:
prefix(省略可能): ロググループ名のプレフィックスregion(省略可能): AWS リージョンaccessKeyId(省略可能): AWS アクセスキー IDsecretAccessKey(省略可能): AWS シークレットアクセスキーsessionToken(省略可能): AWS セッショントークン
戻り値: ロググループの一覧を含む JSON 文字列。logGroupName、creationTime、storedBytes が含まれます。
get_logs
特定のロググループから CloudWatch ログを取得します。
パラメータ:
logGroupName(必須): ロググループの名前logStreamName(省略可能): ログストリームの名前startTime(省略可能): ISO 形式または相対時間(例: "5m"、"1h"、"1d")での開始時刻endTime(省略可能): ISO 形式での終了時刻filterPattern(省略可能): ログのフィルターパターンregion(省略可能): AWS リージョンaccessKeyId(省略可能): AWS アクセスキー IDsecretAccessKey(省略可能): AWS シークレットアクセスキーsessionToken(省略可能): AWS セッショントークン
戻り値: ログイベントを含む JSON 文字列。timestamp、message、logStreamName が含まれます。
セットアップ
AWS 認証情報
AWS 認証情報が設定されていることを確認してください。AWS CLI を使用するか、環境変数を設定することで構成できます:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
Claude Desktop での使用
claude_desktop_config.json に以下を追加します:
{
"mcpServers": {
"cloudwatch-logs": {
"command": "python3",
"args": ["/path/to/cloudwatch-logs-mcp/main.py"],
"env": {
"AWS_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<YOUR_SECRET_ACCESS_KEY>",
},
"disabled": false,
"autoApprove": []
}
}
}
Docker
サーバーを Docker コンテナで実行したい場合は、Dockerfile を用意し、次の構成を使用できます:
{
"mcpServers": {
"cloudwatch-logs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"AWS_ACCESS_KEY_ID",
"-e",
"AWS_SECRET_ACCESS_KEY",
"mcp/cloudwatch-logs"
],
"env": {
"AWS_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<YOUR_SECRET_ACCESS_KEY>",
}
}
}
}
実装の詳細
このサーバーは、MCP SDK の FastMCP クラスを使用して構築されており、MCP サーバーを作成するためのシンプルな方法を提供します。サーバーは 2 つの主要なツールを公開しています:
list_groups: 利用可能な CloudWatch ロググループを一覧表示しますget_logs: 特定のロググループからログエントリを読み取ります
各ツールは、@mcp.tool() でデコレートされた async 関数として実装されています。サーバーは boto3 ライブラリを使用して AWS CloudWatch Logs API とやり取りします。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。