返回 MCP 目录
public公开dns本地运行

cloudwatch-logs-mcp

一个提供AWS CloudWatch日志访问工具的MCP服务器

article

README

🚀 CloudWatch日志MCP服务器

CloudWatch日志MCP服务器是一个提供工具以访问AWS CloudWatch日志的MCP(模型上下文协议)服务器。它允许AI助手列出CloudWatch日志组,并从AWS CloudWatch读取日志条目,为日志管理和分析提供了便利。

🚀 快速开始

在使用该服务器前,需要确保已配置好AWS凭证,可通过AWS CLI或设置环境变量AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY来完成配置。之后根据自身需求,选择与Claude Desktop一起使用或者使用Docker运行服务器。

✨ 主要特性

  • 日志组管理:提供list_groups工具,可列出可用的CloudWatch日志组。
  • 日志读取:提供get_logs工具,能从特定日志组中获取CloudWatch日志。
  • 灵活配置:支持通过AWS CLI、环境变量、Claude Desktop配置文件以及Docker容器等多种方式进行配置。

📦 安装指南

AWS凭证

确保已配置AWS凭证。您可以使用AWS CLI或通过设置环境变量来配置:

  • AWS_ACCESS_KEY_ID
  • AWS_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>",
      }
    }
  }
}

💻 使用示例

基础用法

list_groups

列出可用的CloudWatch日志组:

# 调用list_groups工具
# 此处假设存在调用该工具的函数
result = list_groups()
print(result)

get_logs

从特定日志组中获取CloudWatch日志:

# 调用get_logs工具
# 此处假设存在调用该工具的函数
result = get_logs(logGroupName='your_log_group_name')
print(result)

高级用法

list_groups

列出特定前缀和区域的CloudWatch日志组:

# 调用list_groups工具,指定前缀和区域
# 此处假设存在调用该工具的函数
result = list_groups(prefix='your_prefix', region='your_region')
print(result)

get_logs

从特定日志组和日志流中,在指定时间范围内获取过滤后的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)

📚 详细文档

可用工具

list_groups

列出可用的CloudWatch日志组。 参数: | 参数 | 是否可选 | 详情 | | ---- | ---- | ---- | | prefix | 可选 | 日志组名称前缀 | | region | 可选 | AWS区域 | | accessKeyId | 可选 | AWS访问密钥ID | | secretAccessKey | 可选 | AWS秘密访问密钥 | | sessionToken | 可选 | AWS会话令牌 |

返回值:包含logGroupNamecreationTimestoredBytes的JSON字符串。

get_logs

从特定日志组中获取CloudWatch日志。 参数: | 参数 | 是否可选 | 详情 | | ---- | ---- | ---- | | logGroupName | 必填 | 日志组名称 | | logStreamName | 可选 | 日志流名称 | | startTime | 可选 | ISO格式时间或相对时间(例如,“5m”、“1h”、“1d”) | | endTime | 可选 | ISO格式结束时间 | | filterPattern | 可选 | 日志过滤模式 | | region | 可选 | AWS区域 | | accessKeyId | 可选 | AWS访问密钥ID | | secretAccessKey | 可选 | AWS秘密访问密钥 | | sessionToken | 可选 | AWS会话令牌 |

返回值:包含timestampmessagelogStreamName的JSON字符串。

🔧 技术细节

此服务器使用MCP SDK中的FastMCP类构建,该类提供了一种简单的方式来创建MCP服务器。服务器主要公开了两个工具:

  1. list_groups:列出可用的CloudWatch日志组
  2. get_logs:从特定的日志组中读取日志条目

每个工具都实现了为@mcp.tool()装饰的异步函数。服务器使用boto3库与AWS服务进行交互。

📄 许可证

本项目采用MIT许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端