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' 简化工具扫描和注册。

安装步骤

  1. 下载源码并安装到本地 Maven 仓库: 由于该 Starter 尚未发布到中央仓库,需要先下载源码,然后在本地进行安装。

    git clone [仓库URL]
    cd server2mcp-spring-boot-starter
    mvn clean install
  2. 添加 Maven 依赖: 在你的 Spring Boot 项目的 'pom.xml' 文件中添加以下依赖:

    <dependency>
        <groupId>com.ai.plug</groupId>
        <artifactId>server2mcp-spring-boot-starter</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  3. 启用 MCP 功能: 在你的 Spring Boot 项目的配置文件 ('application.properties' 或 'application.yml') 中添加以下配置以启用 MCP 功能: application.properties:

    plugin.mcp.enabled=true

    application.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' 可能需要相应修改。

基本使用方法

  1. 创建 Spring 组件: 创建 Spring 组件 (例如 '@Controller', '@Service', '@Component' 等) 来实现你的 AI 工具功能。

  2. 注册为 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 {
    }
  3. 在组件方法上定义工具: 在 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;
        }
    }
  4. 客户端调用: 使用 MCP 客户端连接到你的 Spring Boot 应用启动的 MCP 服务器,即可调用注册的工具。

通过 Server2MCP Spring Boot Starter,你可以专注于实现你的业务逻辑和 AI 工具,而无需从零开始构建 MCP 服务器的基础设施。

信息

分类

开发者工具