返回市场
云监控日志-MCP

云监控日志-MCP

作者:serkanh25 星标更新:2025-03-30

项目介绍

CloudWatch Logs MCP Server

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

可用工具

list_groups

列出可用的CloudWatch日志组。

参数:

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

返回值: 包含日志组列表的JSON字符串,包括logGroupNamecreationTimestoredBytes

get_logs

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

参数:

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

返回值: 包含日志事件的JSON字符串,包括timestampmessagelogStreamName

配置

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>",
      }
    }
  }
}

实现细节

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

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

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

许可证

MIT