CloudWatch日志访问工具

一个MCP服务器,提供访问AWS CloudWatch日志的工具,允许AI助手列出日志组和读取日志条目。

  • by serkanh
  • Python
  • 本地部署
  • 27 星标
  • 更新于
在 GitHub 查看 serkanh/cloudwatch-logs-mcp

使用说明

CloudWatch记录MCP服务器

MCP(模型上下文协议)服务器,提供访问AWS CloudWatch日志的工具。此服务器允许AI助手列出日志组并从AWS CloudWatch读取日志条目。

可用工具

list_groups

列出可用的CloudWatch日志组。

参数:

  • prefix (可选):日志组名称前缀
  • region (可选):AWS区域
  • accessKeyId (可选):AWS访问密钥ID
  • secretAccessKey (可选):AWS秘密访问密钥
  • sessionToken (可选):AWS会话令牌

退货: 包含日志组列表的JSON字符串,包括 logGroupName, creationTime,以及 storedBytes.

get_logs

从特定日志组获取CloudWatch日志。

参数:

  • logGroupName (必填):日志组的名称
  • logStreamName (可选):日志流的名称
  • startTime (可选):ISO格式的开始时间或相对时间(例如,“5m”、“1h”、“1d”)
  • endTime (可选):ISO格式的结束时间
  • filterPattern (可选):日志的过滤模式
  • region (可选):AWS区域
  • accessKeyId (可选):AWS访问密钥ID
  • secretAccessKey (可选):AWS秘密访问密钥
  • sessionToken (可选):AWS会话令牌

退货: 包含日志事件的JSON字符串,包括 timestamp, message,以及 logStreamName.

设置

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容器中运行服务器,你可以设置一个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>",
      }
    }
  }
}

实现细节

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

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

每个工具都被实现为一个异步函数,用 @mcp.tool().服务器使用boto3库与AWS CloudWatch Logs API进行交互。

许可证

麻省理工学院