如何将Spring Boot 2接口改造为MCP服务,供大模型调用!
Solon MCP 与 Spring AI 在现有服务改造中的全面对比:易用性与扩展性深度分析
一、背景与概述
随着人工智能技术的快速发展,将 AI 能力集成到现有 Java 服务中已成为企业数字化转型的关键需求。在这一背景下,MCP(Model Context Protocol)作为一种新兴的开放标准,正在成为连接大语言模型与外部工具和数据源的桥梁。Solon MCP 和 Spring AI 作为两种主流的 Java 开发框架,都提供了对 MCP 协议的支持,但在设计理念、技术实现和适用场景上存在显著差异。
Solon 是新一代的 Java 企业级应用开发框架,它从零开始构建,不依赖 Java-EE,具有灵活的接口规范和开放生态,旨在替代 Spring 生态系统。Solon AI 是 Solon 框架在 AI 领域的扩展,提供了完整的智能体应用开发支持,包括 MCP 协议实现。而 Spring AI 是 Spring 官方推出的 AI 应用开发框架,旨在将 AI 能力无缝集成到 Spring 生态系统中。
对于已经构建了大量 Java 服务的企业来说,选择合适的 AI 集成框架至关重要。本文将从易用性和扩展性两个维度,深入分析 Solon MCP 相较于 Spring AI 在现有服务改造场景下的优势,帮助开发者做出明智的技术决策。
1.1 技术架构概览
Solon MCP 和 Spring AI 在技术架构上存在明显差异:
维度 | Spring AI MCP | Solon AI MCP |
---|---|---|
JDK 版本要求 | 仅支持 JDK 17+ | 支持 JDK 8+ |
架构设计 | 模块化三层架构(客户端 / 服务器层、会话层、传输层) | 轻量化设计,类似 MVC 开发风格 |
开发复杂度 | 需配置较多组件(如 ToolCallbackProvider、协议版本协商) | 极简配置(仅需 @McpServerEndpoint 注解) |
传输协议支持 | 原生支持 SSE(HTTP 流式)和 STDIO(进程间通信) | 同样支持 SSE 和 STDIO,但配置更简化 |
扩展性 | 深度整合 Spring 生态(如 Spring Boot Starter、依赖注入) | 灵活嵌入多框架(Spring Boot2/3、JFinal、Vert.x) |
生态与社区 | 背靠 Spring 官方生态,文档完善,社区活跃 | 国产框架,生态逐渐完善,侧重轻量化和本土化需求 |
二、易用性对比分析
在现有服务改造过程中,易用性直接影响开发效率和项目周期。Solon MCP 在以下几个方面展现出明显优势:
2.1 开发门槛与学习曲线
Solon MCP 采用了极简的开发模型,大幅降低了学习门槛:
声明式开发模型:Solon MCP 采用注解驱动的开发方式,开发者只需使用@McpServerEndpoint
和@ToolMapping
等注解,即可快速将现有服务转换为 MCP 服务。这种方式与传统的 Web 开发习惯高度一致,显著降低了学习成本。
@McpServerEndpoint(sseEndpoint = "/mcp/sse")
@Mapping("/web/api")
@RestController
public class McpServerTool {@ToolMapping(description = "查询天气预报")@GetMapping("get\_weather")public String get\_weather(@ToolParam(description = "城市位置") String location) {return "晴,14度";}@ToolMapping(description = "查询城市降雨量")@GetMapping("get\_rainfall")public String get\_rainfall(@ToolParam(description = "城市位置") String location) {return "555毫米";}
}
统一参数注解:Solon AI v3.3.0 移除了专用的ToolParam
注解,改用更通用的Param
注解,保持了与 Solon 生态的一致性,降低了开发者的记忆负担。
相比之下,Spring AI MCP 需要配置较多组件(如ToolCallbackProvider
、协议版本协商),学习曲线较陡。开发者需要熟悉 Spring 的三层架构设计和众多配置类,这对于不熟悉 Spring 生态的开发者来说有一定难度。
2.2 对现有代码的兼容性与迁移成本
Solon MCP 在兼容现有代码方面表现出色:
多框架支持:Solon AI 可以轻松嵌入到 Spring Boot2、Spring Boot3、JFinal、Vert.x 等框架中使用,这意味着企业无需完全重构现有系统即可引入 MCP 功能。
多种改造方案:Solon 提供了多种将现有 REST 服务转换为 MCP 服务的方案,包括:
-
复用 MVC 注解:在原有 MVC 注解基础上,给方法和参数添加描述信息
description
,再添加@McpServerEndpoint
注解即可。 -
添加完整的 MCP 相关注解:这种方案适用于 Spring Boot2-web、Spring Boot3-web、Spring-MVC 或 JFinal 等项目,原控制器的代码无需改动,只需添加 MCP 相关注解,就像添加 Swagger 注解一样。
一键迁移工具:Solon 提供了通过 OpenRewrite 将现有 REST 服务一键转换为 MCP 服务的工具,可节省 90% 的迁移成本。
相比之下,Spring AI 更强调与 Spring 生态的深度集成,对于非 Spring 项目的兼容性有限。如果企业使用的是其他框架(如 JFinal、Vert.x 等),迁移到 Spring AI 的成本较高。
2.3 配置复杂度与灵活性
Solon MCP 在配置方面提供了简洁而灵活的解决方案:
极简配置:Solon MCP 只需通过@McpServerEndpoint
注解即可完成基本配置,例如指定 SSE 端点路径。
灵活的客户端配置:Solon MCP 客户端配置简单直观:
@Bean
public McpClientProvider mcpClientProvider() {return McpClientProvider.builder().server("http://ai-service:8080/mcp").channel("sse") // 支持stdio和sse两种通道.headerSet("Authorization", "Bearer " + System.getenv("MCP\_TOKEN")).httpProxy("http://proxy:8888") // 可选代理配置.build();}
多环境支持:Solon MCP 可以轻松适应不同的运行环境,包括开发、测试和生产环境,通过简单的配置文件切换即可实现。
相比之下,Spring AI 虽然提供了丰富的配置选项,但也增加了配置的复杂性。开发者需要了解 Spring 的配置机制和各个 AI 模型的特定配置参数,这对于初学者来说可能会感到困惑。
三、实践
3.1 引入依赖
<dependency><groupId>org.noear</groupId><artifactId>solon-ai-mcp</artifactId></dependency>
3.2 接口上添加mcp注解
- 控制器上添加mcp端点
@McpServerEndpoint(channel = McpChannel.SSE, name="demo1", mcpEndpoint = "/mcp/demo1/sse")
2.方法添加ToolMapping
@ToolMapping(description = "发送邮件,title是文章标题, content是文章内容,sender是发送人,receiver是接收人,入参要是json对象,返回是发送成功的邮件id")@PostMapping("sendMail")public String sendMail(@Body @RequestBody InformationData data){String content = data.getContent();String sender = data.getSender();String title = data.getTitle();String receiver = data.getReceiver();log.info("{}{}{}{}", sender, title, content, receiver);return "SUCCESS"+System.currentTimeMillis();}
3.3 配置mcp服务端
3.4 测试
🌟 总结
通过MCP协议,你的Spring Boot接口可以轻松“升维”,成为大模型的“手和脚”!🤖🛠️ 这种改造不仅能提升AI应用的实用性,还能为你的业务打开新的智能化场景!🌈
如果你正在探索AI+传统系统的融合,不妨试试这个方案!记得点赞收藏哦~👍✨