Bedrock MCP客户端服务

一个基于Spring Boot的REST API应用,作为模型上下文协议(MCP)的客户端,用于与Amazon Bedrock AI模型交互,支持计算、天气信息获取和网页检索等功能。

  • by sverze
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sverze/aws-bedrock-mcp-client-server

使用说明

AWS基岩MCP客户端和服务器

一个Spring Boot应用程序,作为模型上下文协议(MCP)的客户端,通过工具使用功能与Amazon Bedrock AI模型进行交互。

应用程序概述

此应用程序为以下内容提供REST API:

  • 与亚马逊基岩模型沟通
  • 使用MCP工具进行计算、天气信息和网页检索
  • 处理可能需要多种工具的复杂AI查询
  • 该应用程序作为API网关后面的AWS Lambda函数运行,使其无服务器且可扩展。

先决条件

  • 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

您将获得对以下服务具有特权的凭据

  • 拉姆达
  • API网关
  • 基岩
  • 基岩模型 人类十四行诗4.0

要配置本地凭据,请运行以下命令:

aws configure

###构建应用程序

该项目遵循多模块Maven结构。要构建所有模块,请从父目录运行以下命令:

mvn clean package install -DWEATHER_API_KEY=<your_api_key_here>

这将按照正确的顺序构建所有模块:

  • aws基岩mcp服务器
  • aws基岩mcp客户端
  • aws基岩mcp客户端服务器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网关URL。 您需要此URL才能与API交互并执行以下测试。

测试API

部署后,您可以使用curl或Postman等工具测试API端点:

  1. 测试Hello World端点

    curl https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/hello
    

    预期响应: MCP客户端的Hello World!

  2. 列出可用工具

    curl https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/tools
    
  3. 执行计算

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/calculate?operation=add&a=5&b=3"
    
  4. 获取天气信息

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/weather?location=New%20York&format=celsius"
    
  5. 将网页转换为markdown

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/webpage?url=https://example.com"
    
  6. 做一个复杂的查询-天气

    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"
    
  7. 进行复杂查询-总结网页

    curl -X POST "https://<your-api-id>.execute-api.<region>.amazonaws.com/prod/query?query=Summarise%20the%20following%20webpage%20https://example.com"
    

监控和日志

在CloudWatch日志中查看应用程序日志:

  • 导航到AWS CloudWatch控制台
  • 检查/aws/lambda/McpClientServerFunction日志组

清理

要删除所有已部署的资源,请执行以下操作:

cd aws-bedrock-mcp-client-server-cdk
cdk destroy

建筑

此应用程序实现了无服务器架构:

  • API网关用作HTTP端点
  • AWS Lambda运行Spring Boot应用程序
  • Amazon Bedrock提供AI模型功能
  • MCP服务器提供工具实现
  • AWS CDK堆栈创建并配置所有必要的AWS资源,包括具有访问Amazon Bedrock的适当权限的IAM角色。