CloudWatch MCP Server

by CharlieFng
2
  • Linux
  • Apple

CloudWatch MCP 服务器

此简化的 MCP 服务器提供了一种通过 MCP 协议与 AWS CloudWatch 资源交互的简化方式。它将 CloudWatch 日志组、日志查询和警报公开为资源和工具。

特征

  • 列出所有 CloudWatch 日志组及其元数据
  • 列出所有 CloudWatch 警报及其当前状态
  • 使用 CloudWatch Insights 跨多个日志组查询 CloudWatch 日志
  • 使用共享模式发现多个日志组中的可用字段
  • 日志查询中 @message 字段的自动 JSON 解析
  • 检查特定日志组是否存在
  • 获取特定日志组的详细信息
  • 按状态过滤警报(所有警报或仅处于 ALARM 状态的警报)
  • 检索所有已保存的 CloudWatch Logs Insights 查询

先决条件

  • Python 3.12 或更高版本
  • 配置 AWS 凭证(通过环境变量、AWS CLI 或 IAM 角色)
  • MCP CLI(版本 0.1.1 或更高版本)
  • Boto3(适用于 Python 的 AWS SDK)

设置

  1. 确保已安装 Python 3.12+。
  2. 创建虚拟环境(可选但推荐):
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 安装依赖项:
    pip install -r requirements.txt
  4. 如果尚未配置 AWS 凭证,请配置:
    aws configure
    或者设置环境变量:
    export AWS_ACCESS_KEY_ID="your-access-key" export AWS_SECRET_ACCESS_KEY="your-secret-key" export AWS_REGION="your-region"

项目结构

  • cloudwatch_server.py - 用于 CloudWatch 集成的 MCP 服务器实现
  • aws_cloudwatch.py - 简化的 AWS CloudWatch 集成模块
  • test_cloudwatch.py - 用于测试 CloudWatch 集成的命令行实用程序

运行服务器

启动 MCP 服务器:

python cloudwatch_server.py

或者使用 MCP CLI:

mcp run cloudwatch_server.py

使用 MCP 服务器

资源

服务器公开以下资源:

  • cloudwatch://log-groups - 列出所有 CloudWatch 日志组
  • cloudwatch://log-groups/{log_group_name} - 获取有关特定日志组的详细信息
  • cloudwatch://alarms - 列出所有 CloudWatch 警报
  • cloudwatch://alarms/in-alarm - 仅列出当前处于 ALARM 状态的 CloudWatch 警报
  • cloudwatch://saved-queries - 列出所有已保存的 CloudWatch Logs Insights 查询

工具

该服务器提供以下工具:

  • query_logs - 使用 CloudWatch Insights 查询 CloudWatch 日志
    • 参数:
      • log_group_names :要查询的单个日志组名称或日志组名称列表
      • query_string :CloudWatch Insights 查询字符串
      • start_time :(可选)查询的开始时间(以 Unix 时间戳毫秒为单位)
      • end_time :(可选)查询的结束时间(以 Unix 时间戳毫秒为单位)
    • 特征:
      • 自动解析@message字段中的JSON
      • 返回 JSON 消息的结构化数据
      • 在单个查询中处理多个日志组
  • discover_log_fields - 发现多个日志组中的可用字段
    • 参数:
      • log_group_names :要分析的单个日志组名称或日志组名称列表
    • 特征:
      • 高效地发现跨多个日志组的字段
      • 假设跨日志组共享模式
      • 检测@message中的嵌套JSON字段
      • 识别字段类型(数字、布尔值、字符串、数组)
  • log_group_exists - 检查 CloudWatch 日志组是否存在
    • 参数:
      • log_group_names :要检查的单个日志组名称或日志组名称列表
    • 返回:
      • 将每个日志组映射到其存在状态的字典
  • get_saved_queries - 获取所有已保存的 CloudWatch Logs Insights 查询
    • 无需参数

测试 CloudWatch 集成

您可以使用提供的测试脚本直接测试 CloudWatch 集成:

# Make the test file executable chmod +x test_cloudwatch.py # List all log groups ./test_cloudwatch.py log-groups # List all alarms ./test_cloudwatch.py alarms # Use a specific AWS profile ./test_cloudwatch.py log-groups --profile my-profile # Enable verbose logging ./test_cloudwatch.py alarms -v

MCP CLI 示例

使用 MCP CLI:

# List all log groups mcp inspect cloudwatch://log-groups # Get details about a specific log group mcp inspect cloudwatch://log-groups/my-log-group-name # List all alarms mcp inspect cloudwatch://alarms # List alarms currently in ALARM state mcp inspect cloudwatch://alarms/in-alarm # List all saved CloudWatch Logs Insights queries mcp inspect cloudwatch://saved-queries # Query logs from multiple log groups using CloudWatch Insights mcp call query_logs --log_group_names '["log-group-1", "log-group-2"]' --query_string "fields @timestamp, @message | limit 10" # Query logs from a single log group (still supported) mcp call query_logs --log_group_names "my-log-group" --query_string "fields @timestamp, @message | limit 10" # Discover fields across multiple log groups mcp call discover_log_fields --log_group_names '["log-group-1", "log-group-2"]' # Check if multiple log groups exist mcp call log_group_exists --log_group_names '["log-group-1", "log-group-2"]' # Get all saved CloudWatch Logs Insights queries mcp call get_saved_queries

执照

麻省理工学院

-
security - not tested
F
license - not found
-
quality - not tested

简化的 MCP 服务器,提供通过 MCP 协议与 AWS CloudWatch 资源(日志组、日志查询和警报)交互的简化方式。

  1. 特征
    1. 先决条件
      1. 设置
        1. 项目结构
          1. 运行服务器
            1. 使用 MCP 服务器
              1. 资源
              2. 工具
            2. 测试 CloudWatch 集成
              1. MCP CLI 示例
                1. 执照

                  Related MCP Servers

                  • Amazon Web Services
                    aws-mcp

                    A
                    security
                    F
                    license
                    A
                    quality
                    A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with your AWS environment. This allows for natural language querying and management of your AWS resources during conversations. Think of better Amazon Q alternative.
                    Last updated -
                    3
                    222
                    TypeScript
                    • Apple
                  • A
                    security
                    A
                    license
                    A
                    quality
                    The Seq MCP Server enables interaction with Seq's API endpoints for logging and monitoring, providing tools for managing signals, events, and alerts with extensive filtering and configuration options.
                    Last updated -
                    3
                    13
                    3
                    JavaScript
                    MIT License
                    • Apple
                  • A
                    security
                    A
                    license
                    A
                    quality
                    The MCP server provides an interface to the Datadog API, enabling seamless management of incidents, monitoring, logs, dashboards, metrics, traces, and hosts. Its extensible design allows easy integration of additional Datadog APIs for future expansions.
                    Last updated -
                    14
                    322
                    36
                    TypeScript
                    Apache 2.0
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    An MCP server that allows AI assistants to access AWS CloudWatch logs by listing log groups and reading log entries.
                    Last updated -
                    4
                    Python

                  View all related MCP servers

                  ID: kq3vp7y75o