CloudWatch记录MCP服务器
MCP(模型上下文协议)服务器,提供访问AWS CloudWatch日志的工具。此服务器允许AI助手列出日志组并从AWS 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": "",
"AWS_SECRET_ACCESS_KEY": "",
},
"disabled": false,
"autoApprove": []
}
}
}码头工人
如果你更喜欢在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": "",
"AWS_SECRET_ACCESS_KEY": "",
}
}
}
}实现细节
此服务器是使用MCP SDK中的FastMCP类构建的,该类提供了一种创建MCP服务器的简单方法。服务器公开了两个主要工具:
list_groups:列出可用的CloudWatch日志组get_logs:从特定日志组读取日志条目
每个工具都被实现为一个异步函数,用 @mcp.tool().服务器使用boto3库与AWS CloudWatch Logs API进行交互。
许可证
麻省理工学院
