内容
# CloudWatch Logs MCP Server
一个 MCP (Model Context Protocol) server,提供用于访问 AWS CloudWatch logs 的工具。此 server 允许 AI 助手列出日志组并从 AWS CloudWatch 读取日志条目。
## Available Tools
### list_groups
列出可用的 CloudWatch 日志组。
**Parameters:**
- `prefix` (optional): 日志组名称前缀
- `region` (optional): AWS 区域
- `accessKeyId` (optional): AWS 访问密钥 ID
- `secretAccessKey` (optional): AWS secret access key
- `sessionToken` (optional): AWS 会话令牌
**Returns:** 包含日志组列表的 JSON 字符串,包括 `logGroupName`、`creationTime` 和 `storedBytes`。
### get_logs
从特定的日志组获取 CloudWatch logs。
**Parameters:**
- `logGroupName` (required): 日志组的名称
- `logStreamName` (optional): 日志流的名称
- `startTime` (optional): ISO 格式的开始时间或相对时间(例如,“5m”、“1h”、“1d”)
- `endTime` (optional): ISO 格式的结束时间
- `filterPattern` (optional): 日志的筛选模式
- `region` (optional): AWS 区域
- `accessKeyId` (optional): AWS 访问密钥 ID
- `secretAccessKey` (optional): AWS secret access key
- `sessionToken` (optional): AWS 会话令牌
**Returns:** 包含日志事件的 JSON 字符串,包括 `timestamp`、`message` 和 `logStreamName`。
## Setup
### AWS Credentials
确保您已配置 AWS 凭证。您可以使用 AWS CLI 或通过设置环境变量来设置它们:
- `AWS_ACCESS_KEY_ID`
- `AWS_SECRET_ACCESS_KEY`
### Usage with Claude Desktop
将以下内容添加到您的 `claude_desktop_config.json` 中:
```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 容器中运行 server,您可以设置 Dockerfile 并使用以下配置:
```json
{
"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>",
}
}
}
}
```
## Implementation Details
此 server 使用 MCP SDK 中的 FastMCP 类构建,该类提供了一种创建 MCP server 的简单方法。该 server 公开两个主要工具:
1. `list_groups`: 列出可用的 CloudWatch 日志组
2. `get_logs`: 从特定的日志组读取日志条目
每个工具都实现为一个用 `@mcp.tool()` 修饰的 async 函数。该 server 使用 boto3 库与 AWS CloudWatch Logs API 交互。
## License
MIT