此项目提供了一个基于 Spring Boot 的后端服务示例,该服务实现了 MCP(Model Context Protocol)服务器的一部分功能,主要用于通过 MCP 暴露工具(Tools),供 LLM 应用调用执行特定任务。在这个示例中,它提供了一个用于安排狗狗领养预约的工具。
主要功能点:
- 通过 MCP 协议暴露和执行名为 'scheduleDogAdoptionAppointment' 的工具。
- 支持兼容 MCP 协议的 LLM 客户端通过 MCP 调用该工具来模拟安排领养预约。
- 该服务本身是一个独立的 Spring Boot 应用,可以构建成 Docker 镜像运行。
安装步骤:
- 确保您已安装 Java 23 或更高版本以及 Docker Desktop。
- 克隆此 GitHub 仓库到本地。
- 打开终端,进入仓库的 'scheduling' 目录。
- 运行 Maven 命令 './mvnw spring-boot:build-image' 构建 MCP 服务器的 Docker 镜像。构建成功后,您将得到一个名为 'scheduling' 的 Docker 镜像。
服务器配置:
该 MCP 服务器设计为供 MCP 客户端(如 LLM 应用)调用。MCP 客户端通常需要配置连接到该服务器的详细信息。典型的 MCP 客户端配置信息通常包含服务器名称、启动命令、参数和传输方式。对于此示例构建的 Docker 镜像,您可以参考以下信息构建客户端配置:
- 'server name': 为该 MCP 服务器指定一个描述性名称,例如 'SchedulingService'。
- 'command': 启动 Docker 容器的命令。该命令通常是 'docker run -p <客户端期望端口>:<容器暴露端口> scheduling'。此服务器默认暴露的容器端口是 8081。因此命令可能类似于 'docker run -p 8081:8081 scheduling' (请根据您的客户端需求和网络环境调整端口映射)。
- 'args': 启动命令的附加参数列表,通常为空列表 '[]'。
- 'transport': 使用 'sse' 传输方式。
- 'url': MCP 请求的基地址。对于本地运行且端口映射正确的容器,地址通常是 'http://localhost:8081/sse' (请根据实际部署调整主机名和端口)。
- 'capabilities': 服务器暴露的能力列表,此服务主要暴露 'tools' 能力,所以可以配置为 '["tools"]'。
请注意,上述是构建客户端配置所需的参考信息,而不是实际要在此服务器上运行的代码或命令。
基本使用方法:
该 MCP 服务器不是直接供终端用户交互的。它主要供兼容 MCP 协议的 LLM 应用或客户端在需要执行特定任务时调用。在提供的示例项目中,'adoptions' 服务即为此类 MCP 客户端。当 'adoptions' 服务中的 LLM(通过 Spring AI 的 ChatClient 及其 ToolCallbackProvider 机制)判断需要安排预约时,它会通过 MCP 协议向此调度服务发送请求,调用 'scheduleDogAdoptionAppointment' 工具。
您可以按照仓库 README 中的说明,在成功构建 'scheduling' Docker 镜像后,运行 'adoptions' 服务(该服务会使用 Testcontainers 自动启动 'scheduling' 容器或连接到已存在的容器)。然后,您可以通过向 'adoptions' 服务发送包含预约意图的问题来间接测试 MCP 调度服务的调用。
信息
分类
AI与计算