CloudWatch日志MCP服务器是一个提供工具以访问AWS CloudWatch日志的MCP(模型上下文协议)服务器。它允许AI助手列出CloudWatch日志组,并从AWS CloudWatch读取日志条目,为日志管理和分析提供了便利。
在使用该服务器前,需要确保已配置好AWS凭证,可通过AWS CLI或设置环境变量AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY来完成配置。之后根据自身需求,选择与Claude Desktop一起使用或者使用Docker运行服务器。
list_groups工具,可列出可用的CloudWatch日志组。get_logs工具,能从特定日志组中获取CloudWatch日志。确保已配置AWS凭证。您可以使用AWS CLI或通过设置环境变量来配置:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY将以下内容添加到您的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": "" ,
}
}
}
}
列出可用的CloudWatch日志组:
# 调用list_groups工具
# 此处假设存在调用该工具的函数
result = list_groups()
print(result)
从特定日志组中获取CloudWatch日志:
# 调用get_logs工具
# 此处假设存在调用该工具的函数
result = get_logs(logGroupName='your_log_group_name')
print(result)
列出特定前缀和区域的CloudWatch日志组:
# 调用list_groups工具,指定前缀和区域
# 此处假设存在调用该工具的函数
result = list_groups(prefix='your_prefix', region='your_region')
print(result)
从特定日志组和日志流中,在指定时间范围内获取过滤后的CloudWatch日志:
# 调用get_logs工具,指定日志组、日志流、时间范围和过滤模式
# 此处假设存在调用该工具的函数
result = get_logs(logGroupName='your_log_group_name', logStreamName='your_log_stream_name', startTime='2024-01-01T00:00:00Z', endTime='2024-01-02T00:00:00Z', filterPattern='your_filter_pattern')
print(result)
列出可用的CloudWatch日志组。 参数:
| 参数 | 是否可选 | 详情 |
|---|---|---|
prefix |
可选 | 日志组名称前缀 |
region |
可选 | AWS区域 |
accessKeyId |
可选 | AWS访问密钥ID |
secretAccessKey |
可选 | AWS秘密访问密钥 |
sessionToken |
可选 | AWS会话令牌 |
返回值:包含logGroupName、creationTime和storedBytes的JSON字符串。
从特定日志组中获取CloudWatch日志。 参数:
| 参数 | 是否可选 | 详情 |
|---|---|---|
logGroupName |
必填 | 日志组名称 |
logStreamName |
可选 | 日志流名称 |
startTime |
可选 | ISO格式时间或相对时间(例如,“5m”、“1h”、“1d”) |
endTime |
可选 | ISO格式结束时间 |
filterPattern |
可选 | 日志过滤模式 |
region |
可选 | AWS区域 |
accessKeyId |
可选 | AWS访问密钥ID |
secretAccessKey |
可选 | AWS秘密访问密钥 |
sessionToken |
可选 | AWS会话令牌 |
返回值:包含timestamp、message和logStreamName的JSON字符串。
此服务器使用MCP SDK中的FastMCP类构建,该类提供了一种简单的方式来创建MCP服务器。服务器主要公开了两个工具:
list_groups:列出可用的CloudWatch日志组get_logs:从特定的日志组中读取日志条目每个工具都实现了为@mcp.tool()装饰的异步函数。服务器使用boto3库与AWS服务进行交互。
本项目采用MIT许可证。