【技术文档摘要】:
非常感谢大家的支持!这是一个我投入了大量精力的项目。虽然这个项目是由我个人发起的,但我坚信它拥有优秀的架构和实用价值。目前,该项目基于2025年6月18日的版本;一旦有新版本发布,所有这些功能都将统一更新。
(√) 首先,我要道歉,因为我忘记提到最新的Server2MCP发行版是基于Spring AI SNAPSHOT版本和mcp-java-sdk SNAPSHOT版本的。 因此,您现在无法直接应用此项目,我承诺在10月10日前进行更新。
这是一个用于自动集成MCP(模型控制协议)服务的Spring Boot启动器。
@ToolScan注解支持自定义工具注册@ResourceScan注解支持自定义资源注册@PromptScan注解支持自定义提示注册由于尚未推送到中央仓库,您可以下载源代码,在'server 2mcp starter webmvc'文件夹执行mvn clean install,然后添加依赖引用
<dependency>
<groupId>com.ai.plug</groupId>
<artifactId>server2mcp-starter-webmvc</artifactId>
<version>1.1.4-SNAPSHOT</version>
</dependency>
然后在配置文件中添加配置:
plugin:
mcp:
enabled: true
parser:
params: JAVADOC, TOOL, SpringMVC, JACKSON, SWAGGER2, SWAGGER3 # 可选,默认注册除JAVADOC以外的解析器
des: JAVADOC, TOOL, JACKSON, SWAGGER3, SWAGGER2 # 可选,默认注册除JAVADOC以外的解析器
scope: interface # 有两种配置,custom和interface。默认情况下,interface会在控制器下预注册为工具;Custom则不会预注册工具
以上是启动项目的最基本配置,包括spring.ai.mcp.server-side等所有原生配置。接口配置会默认将您的启动类路径下的所有控制器注册为MCP接口。如果接口方法或类上有@Depreciated注解,则不会被注册。
Javadoc的解析逻辑本质上是对源代码文件进行解析,上线后Java代码以字节码类文件的形式存在,所以Javadoc无法使用。然而,Javadoc的注解方式仍然很受开发者欢迎,所以不能完全放弃。这里有一个解决方案。要使用Javadoc解析器,必须将源代码打包到资源目录中。如果您使用Maven,需要添加一个打包配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-java-sources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
可以理解为向AI开放接口,因此这些接口与常规接口相同,只是可以通过AI调用。相关知识文档:模型上下文协议(MCP)::Spring AI参考,介绍 - 模型上下文协议 和 介绍 - 模型上下文协议
有了这个框架,您不再需要从头开始构建一个MCP服务应用程序,也不需要在高度耦合的复制代码上添加@Tool注解,或者在源代码中添加MCP功能。您只需根据配置类添加自定义的@ToolScan注解,即可轻松完成MCP接口的注册。遇到MCP SDK修订怎么办?不用担心,核心内容由我维护,使用方法不变
您可以轻松地通过使用多个自定义的AI对话接口,然后简单地在客户端调用相应的MCP接口,构建一个多代理应用程序。
它可以快速访问您的管理系统中的AI对话调用,具有高度定制性。您不需要关注AI领域的任何细节,只需专注于您喜欢的Web和前端领域,就可以实现酷炫的效果。相比而言
它可以与简单的MCP客户端如光标一起使用,轻松完成接口调试
这个框架实际上非常简单,代码中可能存在许多漏洞和不足之处,请原谅我。
根据Apache 2.0许可发布的代码