使用说明

项目简介

本项目是一个基于 Spring AI 框架实现的 MCP (Model Context Protocol) 服务器示例。它展示了如何利用 Spring AI 方便地构建 MCP 服务器,并集成了 AWS Bedrock 大语言模型服务。该示例旨在帮助开发者理解 MCP 服务器的核心概念,并学习如何使用 Spring AI 快速搭建自己的 MCP 服务后端。

主要功能点

  • 资源管理 (Resources):虽然 README 中没有明确提及资源管理,但作为 MCP 服务器,它应该具备资源管理能力,用于托管和管理数据资源,并提供数据访问接口。 (需要代码确认具体实现)
  • 工具执行 (Tools):同样,README 未明确提及工具,但 MCP 服务器的核心功能之一是工具注册和执行,允许 LLM 调用外部功能。 (需要代码确认具体实现)
  • Prompt 模板 (Prompts):MCP 服务器负责定义和渲染 Prompt 模板,以支持定制化的 LLM 交互模式。 (需要代码确认具体实现)
  • 集成 AWS Bedrock:示例集成了 AWS Bedrock 服务,可以使用 Bedrock 上的大语言模型进行推理。
  • RESTful API:通过 RESTful API 提供服务接口,客户端可以通过 HTTP 请求与服务器交互。
  • Spring AI 框架:基于 Spring AI 构建,利用 Spring 框架的便利性和 AI 能力。

安装步骤

  1. 配置 AWS Bedrock:

  2. 启动 MCP 服务器:

    • 确保已安装 Gradle。
    • 在项目根目录下,打开终端并执行以下 Gradle 命令启动服务器:
    ./gradlew :server:bootRun

    服务器默认监听 'http://localhost:8080'。

  3. 启动 MCP 客户端/代理 (可选):

    • 虽然 README 中提到启动客户端,但根据描述,'client' 模块更像是用于测试服务器的工具,而非独立的 MCP 客户端。
    • 如果需要运行客户端,可以使用以下命令:
    ./gradlew :client:bootRun

服务器配置 (MCP 客户端配置)

对于 MCP 客户端,需要配置连接到此 MCP 服务器的信息。以下是一个可能的 MCP 客户端配置示例 (JSON 格式):

{
  "serverName": "spring-ai-bedrock-mcp-server",
  "command": "./gradlew",
  "args": [":server:bootRun"],
  "description": "Spring AI MCP Server running on localhost:8080"
}

配置说明:

  • 'serverName': 服务器的名称,可以自定义,用于在客户端中标识该服务器。例如:"spring-ai-bedrock-mcp-server"。
  • 'command': 启动 MCP 服务器的命令。 在本示例中,使用 Gradle 启动 Spring Boot 应用,因此命令为 '"./gradlew"'。
  • 'args': 启动命令的参数。 对于 Gradle Spring Boot 应用,参数为 '[":server:bootRun"]',指定运行 'server' 模块的 'bootRun' 任务。
  • 'description': 服务器的描述信息,方便用户理解该服务器的用途。例如:"Spring AI MCP Server running on localhost:8080"。

注意: 实际的 MCP 客户端可能需要更详细的配置,例如服务器地址、端口、协议等。 上述配置主要参考了 README 中启动服务器的命令,并假设 MCP 客户端需要能够启动或管理 MCP 服务器进程 (尽管本示例更倾向于手动启动服务器)。 更完善的 MCP 客户端配置可能需要根据具体的 MCP 客户端实现和服务器的实际接口进行调整。

基本使用方法

  1. 发送请求:

    • 可以使用 'curl' 命令或 IntelliJ IDEA 中的 'client.http' 文件发送 HTTP POST 请求到服务器的 '/inquire' 端点。
  2. 请求示例 (curl):

    curl -X POST --location "http://localhost:8080/inquire" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        -d 'question=Get employees that have skills related to Java, but not Java'
    • 将 'question' 参数替换为你想要发送给 LLM 的问题。
  3. 查看响应:

    • 服务器将返回 JSON 格式的响应,其中包含 LLM 的回复或其他相关信息。 (响应格式需要根据实际代码确定)

更详细的使用方法: 需要进一步分析仓库代码,才能了解其完整的 API 接口、资源管理、工具调用和 Prompt 模板的使用方式。 请参考仓库中的代码和文档以获取更详细的信息。

信息

分类

AI与计算