项目简介

AWS CloudGuard MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在为 LLM 应用提供 AWS 云服务监控和事件响应能力。它包含两个 MCP 服务器:监控代理服务器和诊断代理服务器,分别负责 AWS CloudWatch 日志和指标的监控分析,以及 Jira 工单的自动创建。

主要功能点

  • AWS 云服务监控: 监控 EC2, Lambda, RDS, CloudTrail 等多种 AWS 服务 CloudWatch 日志和指标。
  • 智能异常检测: 分析日志和指标,识别 AWS 环境中的异常模式和潜在问题。
  • Jira 工单自动创建: 当检测到问题时,自动创建包含详细信息和 AWS 推荐的修复步骤的 Jira 工单。
  • 自然语言交互: 通过自然语言与系统交互,查询 AWS 监控数据和创建 Jira 工单。
  • 多服务器架构: 采用独立的 MCP 服务器分别处理监控和工单任务,提高系统模块化和可维护性。

安装步骤

  1. 安装 uv (Python 包管理器): 按照仓库 README.md 中的指引安装 'uv'。

  2. 克隆仓库:

    git clone https://github.com/madhurprash/AWS_CloudGuardMCP.git
    cd AWS_CloudGuardMCP
  3. 创建 Python 虚拟环境并安装依赖:

    uv venv --python 3.12
    source .venv/bin/activate  # 或 .venv\Scripts\activate (Windows)
    uv pip install --requirement pyproject.toml
  4. 配置 AWS 凭证: 如果尚未配置 AWS 凭证,请创建 '~/.aws/credentials' 和 '~/.aws/config' 文件并配置您的 AWS 访问密钥和区域。

  5. 配置 Jira 环境变量: 导出 Jira API Token、用户名、实例 URL 和项目 Key 等环境变量,例如:

    export JIRA_API_TOKEN="<your-jira-api-token>"
    export JIRA_USERNAME="<your-jira-username>"
    export JIRA_INSTANCE_URL="<your-jira-instance-url>"
    export PROJECT_KEY="<jira-project-key>"

服务器配置

MCP 客户端 (例如 Claude Desktop) 需要以下 JSON 配置信息来连接到 AWS CloudGuard MCP Server。请将以下配置添加到 Claude Desktop 的配置文件 'claude_desktop_config.json' 中。

{
  "mcpServers": {
    "aws_monitoring": {
      "command": "/path/to/your/venv/bin/python3",  // 请替换为您的虚拟环境 Python 路径
      "args": [
        "/path/to/your/repo/server_scripts/monitoring_agent_server.py" // 请替换为您的仓库 server_scripts 目录 monitoring_agent_server.py 路径
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_ID",   // 您的 AWS 访问密钥
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY", // 您的 AWS 密钥
        "AWS_REGION": "<your-aws-region>",           // 您的 AWS 区域
        "MCP_TRANSPORT": "stdio"
      }
    },
    "jira_server": {
      "command": "/path/to/your/venv/bin/python3",  // 请替换为您的虚拟环境 Python 路径
      "args": [
        "/path/to/your/repo/server_scripts/diagnosis_agent_server.py" // 请替换为您的仓库 server_scripts 目录 diagnosis_agent_server.py 路径
      ],
      "env": {
        "JIRA_API_TOKEN": "YOUR_JIRA_API_TOKEN",     // 您的 Jira API Token
        "JIRA_USERNAME": "[email protected]", // 您的 Jira 用户名
        "JIRA_INSTANCE_URL": "https://your-instance.atlassian.net", // 您的 Jira 实例 URL
        "PROJECT_KEY": "YOUR_PROJECT_KEY",          // 您的 Jira 项目 Key
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

注意:

  • 请根据您的实际环境替换 'command' 和 'args' 中的路径。
  • 配置文件路径取决于您的操作系统,详细信息请参考仓库 README.md。

基本使用方法

  1. 启动 MCP 客户端 (例如 Claude Desktop) 并连接到配置的 'aws_monitoring' 和 'jira_server'。
  2. 使用自然语言向客户端提问,例如:
    • "Show me the CloudWatch logs for EC2 in the last 24 hours" (查看 EC2 CloudWatch 日志)
    • "Are there any errors in the Lambda logs?" (检查 Lambda 日志错误)
    • "Create a Jira ticket for the EC2 memory utilization issue" (创建 EC2 内存利用率问题的 Jira 工单)

您也可以直接运行仓库提供的 'client.py' 脚本进行交互式会话。

uv run client.py --model-id=<bedrock-model>

信息

分类

开发者工具