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