项目简介
'Serverless API Helper (MCP)' 项目是AWS serverless-samples仓库中的一个子示例,专门用于演示如何构建一个基于Model Context Protocol (MCP) 的服务器端应用。该应用集成AWS Bedrock智能代理,为开发者提供实时的API开发指导、治理建议和自动化OpenAPI规范构建能力。它作为一个MCP服务器,通过标准协议向支持MCP的LLM客户端暴露这些功能。
主要功能点
该MCP服务器提供以下通过MCP协议暴露的AI赋能工具:
- API专家咨询 (ask_api_expert): 回答关于API开发、管理、生命周期、安全性、部署、运维等方面的问题,特别是与Amazon API Gateway和AWS AppSync相关的最佳实践。
- OpenAPI规范构建 (build_openapi_specification): 根据用户需求和用例描述,自动生成符合OpenAPI规范的API定义,包含AWS API Gateway特有的扩展。
- API构建 (build_API): 根据用例和需求,生成包含OpenAPI规范、基础设施即代码模板(如SAM, CDK)和业务逻辑代码框架。
- API检查 (inspect_API): 分析现有API Gateway的配置和OpenAPI规范,评估其是否符合AWS最佳实践和安全标准,并提供改进建议。
安装步骤
本项目是aws-samples/serverless-samples 仓库下的一个示例 ('apigw-ai-agents' 子目录),设计用于在AWS serverless环境中部署。完整的部署过程通常涉及:
- 克隆整个'serverless-samples'仓库。
- 配置AWS凭证和默认区域。
- 根据 'apigw-ai-agents' 目录下的具体说明(可能使用AWS SAM, CDK或其他IaaS工具)部署所需的AWS资源,包括Bedrock智能代理、Lambda函数等。
- 配置Bedrock智能代理,使其能够调用仓库中 'apigw-ai-agents/tools/' 目录下对应的Lambda函数。
注意: 提供的代码片段主要展示了MCP服务器的核心Python逻辑。要成功运行和使用该MCP服务器,需要根据'apigw-ai-agents'目录下的详细文档进行完整的AWS资源部署和配置。
服务器配置
MCP客户端需要以下配置信息来连接并使用此服务器。这些信息应以JSON格式提供给客户端进行配置。
{ "server name": "api-helper", "command": "python", "args": ["apigw-ai-agents/mcp/api-helper/api_helper.py"], "comment": "通过标准输入/输出运行的API辅助MCP服务器" }
- '"server name"': MCP服务器在其能力声明中使用的名称,在此示例代码中被初始化为"api-helper"。
- '"command"': 启动MCP服务器进程的命令,在此示例中为Python解释器。
- '"args"': 传递给命令的参数列表,这里是MCP服务器脚本的路径。
- '"comment"': 对服务器的简单描述,方便用户识别。
注意: 上述 'command' 和 'args' 假定您在已克隆的仓库根目录下运行该服务器,且Python环境已正确配置。实际部署到AWS Lambda或其他环境时,启动方式和参数可能会有所不同,应参考具体的部署文档进行调整。例如,部署为Lambda函数时,MCP客户端可能通过特殊的API Gateway或连接器与之通信,而非直接启动进程。此处提供的配置适用于在本地环境中直接运行脚本作为MCP服务器进行测试或开发。
基本使用方法
一旦MCP服务器通过上述配置被MCP客户端成功启动和连接,LLM客户端即可通过标准的JSON-RPC请求调用服务器暴露的工具。
例如,LLM客户端可以发送一个'tool_code/execute'请求来调用'ask_api_expert'工具,并在'parameters'中提供问题字符串。MCP服务器将接收请求,调用相应的Python函数(该函数会与配置好的AWS Bedrock代理交互),然后将Bedrock代理的响应作为'tool_code/execute'请求的'result'返回给LLM客户端。
用户可以通过LLM客户端的界面,以自然语言的方式提问或请求执行特定任务(如构建API规范),LLM客户端将负责将用户的请求转换为相应的MCP工具调用。
信息
分类
开发者工具