发现 AI 代理的未来arrow_forward

api2mcp4j

calendar_today收录于 2026年4月23日
category智能体与应用工具
code开源
工作流自动化JavaSpring BootMCPAI代理智能体与应用工具开发者工具/代码协议/API/集成

面向 Spring Boot 的非侵入式 MCP Server 生成器,自动将现有 REST Controller 转换为 MCP Tools,零/低代码接入 MCP 生态。

项目概述#

api2mcp4j 是一个基于 Spring Boot 的非侵入式 MCP Server 生成器,自动扫描项目中的 @RestController@Service Bean,将其方法注册为 MCP 协议的 Tool、Resource 和 Prompt,无需修改业务代码即可将现有 REST API 暴露给 AI Agent 调用。

核心能力#

自动发现与注册#

  • 自动扫描 @RestController / @Service Bean,注册方法为 MCP Tools
  • 自动跳过 @Deprecated 方法
  • 提供 @ToolScan@ResourceScan@PromptScan 注解进行细粒度扫描控制
  • 支持 scope: interface(全量注册)与 scope: custom(仅注解注册)两种模式

多解析器智能融合#

按配置的解析器优先级链逐级提取描述与参数 Schema,后者覆盖前者:

  • Swagger/OpenAPI:支持 v2 与 v3,提取接口描述与参数信息
  • Javadoc:通过 JavaParser 解析 .java 源文件提取注释(需额外配置源码拷贝到 classpath)
  • Spring MVC 元数据:从 @RequestMapping 等注解提取路径、方法等
  • Jackson 序列化元数据:推导参数 JSON Schema
  • Spring AI 原生描述:兼容 Spring AI 的 @Tool 注解描述
  • 自定义注解:支持自研 @McpTool 注解提供描述

协议兼容性#

  • 完整兼容 MCP Java SDK 最新特性:callbacks、resources、prompts
  • 独立 McpTool 注解体系,与 Spring AI @Tool 解耦,可独立使用
  • 兼容 Cursor、Continue 及任意标准 MCP Client

双栈支持#

  • server2mcp-starter-webmvc:面向 Spring MVC
  • server2mcp-starter-webflux:面向响应式 WebFlux

典型场景#

  • 快速暴露内部管理系统 API 给 AI Agent — 现有 REST 接口直接变为 AI 可调用的工具
  • 构建多 Agent 系统 — 将微服务自动转化为 MCP Tools,供多个 Agent 协作调用
  • 遗留项目快速拥抱 MCP 生态 — 最低改造成本接入
  • 原型化 AI 功能 — 避免在 REST 与 MCP 之间维护两套代码

不适用场景#

  • 非 Spring Boot 的 Java 项目
  • 需要脱离 HTTP 层的纯 Stdio MCP Server(当前通过 Web 端点暴露)
  • 对 Tool 描述精度有极高要求、需要完全手写 Prompt 的场景

架构设计#

采用 Maven 多模块结构:

模块职责
server2mcp-common公共工具类与基础设施
server2mcp-core核心逻辑:Bean 扫描、多解析器调度、MCP Tool/Resource/Prompt 注册
server2mcp-autoconfigureSpring Boot 自动配置入口
server2mcp-starter-webmvcSpring MVC Starter
server2mcp-starter-webfluxSpring WebFlux Starter
server2mcp-test测试模块

核心流程:自动配置触发 → Bean 扫描 → 多解析器融合 → MCP Tool 注册,暴露在默认 /mcp 端点。

设计理念:类比 MyBatis-Plus 对 MyBatis 的增强模式,通过自动配置与注解扫描,在不侵入业务代码的前提下桥接 REST 到 MCP。

关键配置#

plugin:
  mcp:
    enabled: true
    parser:
      params: SWAGGER3, SWAGGER2, SpringMVC, JACKSON, TOOL
      des:    SWAGGER3, SWAGGER2, JAVADOC, TOOL, JACKSON
    scope: interface  # 'interface' = 全量注册; 'custom' = 仅注解注册
配置路径说明
plugin.mcp.enabled总开关(true/false)
plugin.mcp.scope扫描范围模式
plugin.mcp.parser.params参数解析器优先级链
plugin.mcp.parser.des描述解析器优先级链
spring.ai.mcp.*MCP 端点路径等底层配置

安装与上手#

⚠️ 项目尚未发布至 Maven Central,需从源码构建。

git clone https://github.com/TheEterna/api2mcp4j.git
cd api2mcp4j/server2mcp-starter-webmvc
mvn clean install
<dependency>
    <groupId>com.ai.plug</groupId>
    <artifactId>server2mcp-starter-webmvc</artifactId>
    <version>1.1.4-SNAPSHOT</version>
</dependency>

WebFlux 用户替换为 server2mcp-starter-webflux

待确认事项#

  • Maven Central 发布时间:README 路线图提及计划发布,但截至调研时 1.1.4-SNAPSHOT 尚未上线
  • MCP SDK 版本稳定性:依赖 io.modelcontextprotocol.sdk 0.14.0-SNAPSHOT(非正式发布版),生产使用需注意
  • Spring AI 版本兼容性:依赖 Spring AI 1.1.0-SNAPSHOT,与正式版兼容性待验证
  • 文档站为 SPA(JS 渲染),内容无法完全提取验证
  • 未见公开的生产部署案例或用户反馈
  • 当前仅通过 Web 端点(SSE)暴露 MCP,Stdio 传输支持未明确

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。

rocket_launch