Server2MCP Spring Boot Starter
项目简介
Server2MCP Spring Boot Starter 是一个 Spring Boot 启动器,旨在简化 MCP (Model Context Protocol) 服务器的开发。它通过自动化配置,使得开发者可以更轻松地将 Spring 组件暴露为 MCP 工具,供 LLM 客户端调用。
主要功能点
- 自动化 MCP 服务配置: 类似于 Mybatis Plus 对 Mybatis 的增强,Server2MCP Starter 提供非侵入式的 MCP 服务自动化配置。
- 支持 MCP 原生功能: 完整支持 Java SDK 中的 MCP 原生功能,包括工具注册和回调机制等。
- 自定义工具解析: 支持自定义工具描述信息的解析,允许用户根据自身需求扩展解析器。
- Spring AI 集成: 深度集成 Spring AI,利用 Spring AI 提供的 MCP Server 能力。
- 注解驱动: 通过自定义注解 '@ToolScan' 和 '@ToolScans' 简化工具扫描和注册。
安装步骤
-
下载源码并安装到本地 Maven 仓库: 由于该 Starter 尚未发布到中央仓库,需要先下载源码,然后在本地进行安装。
git clone [仓库URL] cd server2mcp-spring-boot-starter mvn clean install -
添加 Maven 依赖: 在你的 Spring Boot 项目的 'pom.xml' 文件中添加以下依赖:
<dependency> <groupId>com.ai.plug</groupId> <artifactId>server2mcp-spring-boot-starter</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> -
启用 MCP 功能: 在你的 Spring Boot 项目的配置文件 ('application.properties' 或 'application.yml') 中添加以下配置以启用 MCP 功能: application.properties:
plugin.mcp.enabled=trueapplication.yml:
plugin: mcp: enabled: true
服务器配置 (MCP 客户端配置)
MCP 客户端需要配置连接 MCP 服务器的信息。以下是一个 JSON 格式的配置示例,用于配置 Server2MCP Spring Boot Starter 构建的 MCP 服务器。
{ "serverName": "Server2MCP Server", "command": "java", "args": [ "-jar", "your-spring-boot-app.jar" // **[请替换为你的 Spring Boot 应用的 JAR 文件名]** ], "protocol": "stdio", // **[传输协议,例如 stdio, sse, websocket。根据你的实际部署选择]** "description": "Server2MCP Spring Boot Starter MCP Server" }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义。
- 'command': 启动 MCP 服务器的命令,通常为 'java'。
- 'args': 启动命令的参数列表。
- '-jar your-spring-boot-app.jar': [必须配置] 指定 Spring Boot 应用的 JAR 文件路径。请将 'your-spring-boot-app.jar' 替换为你的实际 JAR 文件名。
- 'protocol': [可选配置] MCP 客户端与服务器通信的传输协议。常用的协议包括 'stdio' (标准输入输出), 'sse' (Server-Sent Events), 'websocket'。 如果你的 Spring Boot 应用默认使用 'stdio' 或其他协议,请根据实际情况配置。默认值可能为 'stdio',具体取决于 Spring AI MCP 客户端的实现。 请查阅 Spring AI MCP 客户端文档以确定支持的协议和默认值。
- 'description': MCP 服务器的描述信息,可以自定义。
注意: 上述配置假设你的 Spring Boot 应用打包成 JAR 文件 ('your-spring-boot-app.jar'),并且可以通过 'java -jar your-spring-boot-app.jar' 命令启动。你需要根据你的实际打包方式和启动命令进行调整。 如果你的应用部署在 Docker 容器或其他环境中,'command' 和 'args' 可能需要相应修改。
基本使用方法
-
创建 Spring 组件: 创建 Spring 组件 (例如 '@Controller', '@Service', '@Component' 等) 来实现你的 AI 工具功能。
-
注册为 MCP 工具:
- 自动扫描: 默认情况下,所有在你的 Spring Boot 应用启动类路径下的 '@Controller' 注解的类都会被自动注册为 MCP 工具。
- 自定义扫描: 使用 '@ToolScan' 或 '@ToolScans' 注解在配置类或启动类上,自定义需要扫描的包路径和过滤器,更灵活地控制哪些组件被注册为 MCP 工具。
例如,使用 '@ToolScan' 注解扫描指定包下的组件:
import com.ai.plug.common.annotation.ToolScan; import org.springframework.context.annotation.Configuration; @Configuration @ToolScan("com.example.ai.tools") // **[请替换为你的工具类所在的包路径]** public class ToolConfiguration { } -
在组件方法上定义工具: 在 Spring 组件的方法上使用 Spring AI 的 '@Tool' 注解来定义 MCP 工具的名称、描述和输入参数。
import org.springframework.ai.tool.annotation.Tool; import org.springframework.stereotype.Component; @Component public class MyTools { @Tool("calculate_sum") public int calculateSum(@ToolParam("a") int a, @ToolParam("b") int b) { return a + b; } } -
客户端调用: 使用 MCP 客户端连接到你的 Spring Boot 应用启动的 MCP 服务器,即可调用注册的工具。
通过 Server2MCP Spring Boot Starter,你可以专注于实现你的业务逻辑和 AI 工具,而无需从零开始构建 MCP 服务器的基础设施。
信息
分类
开发者工具