项目简介 本项目提供了一个基于模型上下文协议(MCP)的服务器实现,专门用于智能化管理AWS支持案例。它旨在将AWS Support API的功能封装为LLM可调用的工具,并通过AWS Bedrock AgentCore安全、可扩展地运行。这意味着您的AI代理可以创建、查询、更新和解决AWS支持案例,甚至可以提供案例总结和洞察。

主要功能点

  • 智能AWS支持案例管理:自动创建、跟踪和解决AWS支持案例。
  • 智能总结与洞察:对现有支持案例进行总结分析,并提供最佳实践建议和洞察。
  • MCP工具集成:将AWS Support API封装为可供LLM调用的MCP工具(例如,创建支持案例、查询案例、添加通信、解决案例)。
  • 多语言支持:支持案例内容的多语言自动检测和处理。
  • 附件管理:支持向支持案例添加附件。
  • 诊断与监控:提供诊断资源以监控服务器性能和错误。
  • AgentCore托管:可以无缝移植到AWS Bedrock AgentCore运行时,实现高可用和可扩展的AI交互。

安装步骤 本项目推荐在Jupyter Notebook或JupyterLab环境中部署和验证。

  1. 克隆仓库
    git clone https://github.com/percy-han/AWS-Support-Case-Agent.git
    cd AWS-Support-Case-Agent
  2. 配置AWS服务
    • 确保已安装Python 3.10+。
    • 配置AWS CLI并具备适当权限。
    • 重要:开通AWS Support API访问权限(需要商业或企业支持计划)。
    • 在AWS Bedrock控制台中启用所需的模型访问权限,推荐Claude 3 Sonnet或Haiku。
  3. MCP服务器设置
    • 打开 'MCP/MCP_On_AgentCore.ipynb' 文件。
    • 按照Notebook中的所有单元格顺序执行,它将处理MCP服务器所需的所有安装和配置(包括Cognito用户池、IAM角色等)。
    • 在Notebook中可以验证MCP服务器是否已成功运行并注册了工具。
  4. Agent设置(可选,用于调用MCP服务器)
    • 打开 'Agent/Case_Agent_On_AgentCore.ipynb' 文件。
    • 按照Notebook中的所有单元格顺序执行,它将部署一个调用MCP服务器的Bedrock Agent。
    • 在Notebook中可以验证Agent调用MCP服务器的效果。

服务器配置 此MCP服务器通常由LLM客户端或AWS Bedrock AgentCore调用。MCP客户端需要通过JSON-RPC协议连接到服务器。以下是针对MCP客户端的配置示例(JSON格式):

{
  "serverName": "aws-support-mcp-server",
  "command": "python",
  "args": [
    "MCP/awslabs/aws_support_mcp_server/server.py",
    "--port", "8888",
    "--debug"
  ],
  "transport": "streamable-http",
  "environmentVariables": {
    "AWS_REGION": "your-aws-region",
    "AWS_PROFILE": "your-aws-profile-name"
  },
  "auth": {
    "type": "bearer",
    "tokenProvider": {
      "type": "aws_secrets_manager",
      "secretId": "support_mcp_server/cognito/credentials",
      "key": "bearer_token"
    }
  },
  "documentation": "https://github.com/percy-han/AWS-Support-Case-Agent#readme"
}

配置参数注释

  • 'serverName': 您给MCP服务器定义的名称,建议保持唯一性。
  • 'command': 启动MCP服务器所使用的命令,这里是'python'。
  • 'args': 启动MCP服务器所需的参数列表。
    • 'MCP/awslabs/aws_support_mcp_server/server.py': 服务器的入口文件路径。
    • '--port 8888': 服务器监听的端口。
    • '--debug': 开启调试模式,提供更详细的日志和诊断信息。
  • 'transport': 服务器使用的传输协议,此处为'streamable-http',与客户端的连接方式匹配。
  • 'environmentVariables': 启动服务器时需要设置的环境变量。
    • 'AWS_REGION': 指定AWS区域,例如'us-east-1'。
    • 'AWS_PROFILE': 指定AWS CLI配置文件中的Profile名称(如果使用)。
  • 'auth': 认证信息配置,此处为Bearer Token认证。
    • 'type': 认证类型,此处为'bearer'。
    • 'tokenProvider': 获取Bearer Token的方式。
      • 'type': Token提供者类型,此处为'aws_secrets_manager',表示从AWS Secrets Manager获取。
      • 'secretId': Secrets Manager中存储Bearer Token的Secret ID,例如'support_mcp_server/cognito/credentials'。
      • 'key': Secret中存储Bearer Token的键名,例如'bearer_token'。
  • 'documentation': MCP服务器的文档URL,通常是GitHub仓库的README链接。

基本使用方法 一旦MCP服务器部署并运行,LLM客户端(如Bedrock Agent)即可通过JSON-RPC协议调用其提供的工具和资源。

例如,一个Agent可以通过调用 'create_support_case' 工具来创建新的AWS支持案例:

  • 调用工具:
    • 'create_support_case': 创建新的AWS支持案例。
    • 'describe_support_cases': 查询现有支持案例。
    • 'add_communication_to_case': 向案例添加沟通记录。
    • 'resolve_support_case': 解决支持案例。
    • 'describe_services': 查询AWS服务及其类别。
    • 'describe_severity_levels': 查询支持案例的严重级别。
    • 'add_attachments_to_set': 添加附件到附件集。
    • 'describe_supported_languages': 查询支持的语言。
  • 访问资源:
    • 'resource://diagnostics': 获取服务器的诊断信息。

具体的调用代码示例可以在 'Agent/Case_Agent_On_AgentCore.ipynb' 中找到,演示了如何通过'boto3'客户端调用部署在Bedrock AgentCore上的Agent,进而间接调用MCP服务器。

信息

分类

AI与计算