CloudWatch MCP Server
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.txt如果尚未配置 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 消息的结构化数据
在单个查询中处理多个日志组
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 -vMCP 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执照
麻省理工学院
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
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