关于 AWS Bedrock MCP Client and Server
这是一个 Spring Boot 应用,通过 REST API 将 Amazon Bedrock 模型与 MCP 工具结合。适用于需要模型调用工具的应用,可部署为由 API Gateway 提供入口的 AWS Lambda 函数。
主要功能
- 01通过 REST API 查询 Amazon Bedrock
- 02提供计算和天气 MCP 工具
- 03获取网页并转换为 Markdown
- 04处理需要多个工具的复杂查询
- 05部署到 API Gateway 后的 AWS Lambda
适用场景
- 01让 Bedrock 借助工具进行数值计算
- 02查询指定地点的天气
- 03通过模型查询总结网页
MCP 相关
应用同时包含 MCP 客户端和服务端:客户端在与 Amazon Bedrock 交互时使用 MCP 工具,服务端提供计算、天气和网页获取工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AWS Bedrock MCP 客户端和服务端
一个 Spring Boot 应用,为模型上下文协议(MCP)提供客户端,支持与具备工具使用能力的 Amazon Bedrock AI 模型交互。
应用概览
此应用提供 REST API,可用于:
- 与 Amazon Bedrock 模型通信
- 使用 MCP 工具进行计算、获取天气信息和检索网页
- 处理可能需要调用多个工具的复杂 AI 查询
- 应用作为 AWS Lambda 函数运行在 API Gateway 后方,具备无服务器和可扩展的特性。
前置条件
- Java 21 或更高版本
- Maven 3.8+
- 已配置适当凭证的 AWS CLI
- 已安装 AWS CDK(npm install -g aws-cdk)
- Weather API 密钥,获取地址:https://www.weatherapi.com/my/
环境设置
克隆仓库
git clone https://github.com/sverze/aws-bedrock-mcp-client-server
cd aws-bedrock-mcp-client-server
配置 AWS
你需要拥有以下服务权限的凭证
- Lambda
- API Gateway
- Bedrock
- Bedrock Model Anthropic Sonnet 4.0
要配置本地凭证,请运行以下命令:
aws configure
###构建应用
此项目采用多模块 Maven 结构。要构建所有模块,请在父目录中运行:
mvn clean package install -DWEATHER_API_KEY=<your_api_key_here>
这将按正确顺序构建所有模块:
- aws-bedrock-mcp-server
- aws-bedrock-mcp-client
- aws-bedrock-mcp-client-server-cdk
部署到 AWS
AWS 部署由 AWS CDK 管理。要部署应用,请运行以下命令:
cd aws-bedrock-mcp-client-server-cdk
cdk bootstrap
cdk deploy --context WEATHER_API_KEY=<your_api_key_here>
部署完成后,CDK 会在终端中输出 API Gateway URL。 你需要使用此 URL 与 API 交互,并执行以下测试。
测试 API
部署完成后,你可以使用 curl 或 Postman 等工具测试 API 端点:
-
测试 Hello World 端点
curl https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/hello预期响应:来自 MCP 客户端的 Hello World!
-
列出可用工具
curl https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/tools -
执行计算
curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/calculate?operation=add&a=5&b=3" -
获取天气信息
curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/weather?location=New%20York&format=celsius" -
将网页转换为 Markdown
curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/webpage?url=https://example.com" -
执行复杂查询——天气
curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/query?query=What%20is%20the%20weather%20in%20London%20and%20calculate%2045%20divided%20by%209" -
执行复杂查询——总结网页
curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/query?query=Summarise%20the%20following%20webpage%20https://example.com"
监控和日志
在 CloudWatch Logs 中查看应用日志:
- 前往 AWS CloudWatch 控制台
- 查看 /aws/lambda/McpClientServerFunction 日志组
清理
要移除所有已部署的资源:
cd aws-bedrock-mcp-client-server-cdk
cdk destroy
架构
此应用采用无服务器架构:
- API Gateway 作为 HTTP 端点
- AWS Lambda 运行 Spring Boot 应用
- Amazon Bedrock 提供 AI 模型能力
- MCP 服务提供工具实现
- AWS CDK 堆栈创建并配置所有必要的 AWS 资源,包括具备适当权限、可访问 Amazon Bedrock 的 IAM 角色。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。