🔥 把 Java WebApi 快速转为 Mcp-Server(使用 Solon AI MCP)
solon-ai-mcp,提供了各种 mcp 相关能力,支持 java8, java11, java17, java21, java24 。是 solon-ai 项目的重要组成部分,也可以嵌入到 springboot2, springboot3, jfinal, vert.x 等项目中使用。
依赖包:
<dependency> <groupId>org.noear</groupId> <artifactId>solon-ai-mcp</artifactId> <version>最新版</version> </dependency>
1、看一个简单的 web 控制器
此控制器有两个方法:get_weather,获取天气;get_rainfall,获取降雨量。后面基于它进行快速改造演示。
@Mapping("/web/api") @Controller public class McpServerTool { @Mapping("get_weather") public String get_weather(String location) { return "晴,14度"; } @Mapping("get_rainfall") public String get_rainfall(String location) { return "555毫米"; } }
2、改造方案1:复用 mvc 注解,并添加 @McpServerEndpoint
注解
在 mvc 注解基础上,给方法和参数添加描述信息 description
信息(只适合 solon-web 项目,它的注解带有 description
属性)。再添加 @McpServerEndpoint
注解
@McpServerEndpoint(sseEndpoint = "/mcp/sse") @Mapping("/web/api") @Controller public class McpServerTool { @Mapping(path="get_weather", description = "查询天气预报") public String get_weather(@Param(description = "城市位置") String location) { return "晴,14度"; } @Mapping(path="get_rainfall", description = "查询城市降雨量") public String get_rainfall(@Param(description = "城市位置") String location) { return "555毫米"; } }
这个方案的提醒说明:
@Mapping
(通用注解)相当于 ai 的@ToolMapping
(专用注解)@Param
(通用注解)相当于 ai 的@ToolParam
(专用注解)- 必须申明
description
属性(否则会异常提示)
3、改造方案2:在控制器上,添加完整的 Mcp 相关注解
这个方案也适合 springboot2-web、sprngboot3-web、spring-mvc 或 jfinal 等项目,原控制器的代码不用动(原来有没有注解,不影响)。就像添加 swagger 注解那样,添加 mcp 相关注解即可。
注解简单说明(?
表示可选属性):
注解 | 描述 |
---|---|
@ToolMapping(name?, description, returnDirect?, resultConverter?) | 工具映射 |
@ToolParam(name?, description, required?) | 工具的参数申明 |
改造后的代码:
@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毫米"; } }
4、也可以转为本地的大模型工具提供者使用(ToolProvider)
上两个方案去掉 @McpServerEndpoint
注解,就不会发布为 MCP 服务端点。使用 MethodToolProvider 加载它,就能成为本地的工具提供者。
MethodToolProvider toolProvider = new MethodToolProvider(new McpServerTool()); var chatModel = ChatModel.of(...) .defaultToolsAdd(toolProvider) //添加默认工具 .build(); chatModel.prompt("杭州今天的天气怎么样?") .call();
5、附代码仓库
solon-ai(源码)
- https://gitee.com/opensolon/solon-ai
- https://gitcode.com/opensolon/solon-ai
- https://github.com/opensolon/solon-ai
solon-ai-mcp-embedded-examples(嵌入示例)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
重磅消息:OpenAuth.Net 文档站全新上线!
OpenAuth.Net已正式启用全新的文档站点,为广大开发者提供更加清晰、全面的技术支持。新文档站采用现代化的设计风格,优化了内容结构,使开发者能够更便捷地获取所需信息。新文档中心采用vuepress-theme-plume编写。效果如下: 新文档站采用了更加合理的分类体系,将核心功能、开发指南、API参考等内容进行了清晰分类,方便开发者快速定位所需内容。OpenAuth.Net文档中心是目前开源领域少有的无需支付任何费用即可畅阅的知识中心,不仅能够为开发者提供快速了解OpenAuth.Net渠道,更是初学者的知识宝库。欢迎大家浏览学习:http://doc.openauth.net.cn/ 未来计划 我们将持续完善文档内容,并计划增加以下内容: 更多实际业务场景的最佳实践 视频教程和在线培训资料 社区贡献的插件和扩展模块文档 欢迎广大开发者访问新文档站,同时我们也期待您的反馈和建议,共同打造更好的OpenAuth.Net生态系统!
- 下一篇
Kimi 发布全新通用音频基础模型 Kimi-Audio
Kimi 发布新的开源项目 — 全新通用音频基础模型 Kimi-Audio。 根据介绍,Kimi-Audio-7B-Instruct基于Qwen2.5-7B架构,并结合Whisper技术,展现了强大的多功能性。该模型支持多种音频相关任务,包括但不限于:语音识别(ASR)、音频问答(AQA)、音频字幕(AAC)、语音情感识别(SER)、声音事件/场景分类(SEC/ASC)、文本到语音(TTS)、语音转换(VC)以及端到端语音对话。 Kimi-Audio采用创新的混合音频输入机制,以12.5Hz的采样率处理音频数据,显著提升了模型对复杂音频信号的理解能力。 官方披露,该模型在超过1300万小时的多样化音频数据上进行训练,涵盖语音、音乐、环境音等多种类型。Moonshot AI还开源了Kimi-Audio的训练代码、模型权重以及评估工具包。 Kimi-Audio在多项基准测试中展现了领先的性能,超越了现有的开源和部分闭源模型。其在语音识别、情感分析和音频问答等任务中的表现尤为突出,展现了强大的泛化能力。Kimi-Audio的开源评估工具包为行业提供了一个标准化的测试平台。
相关文章
文章评论
共有0条评论来说两句吧...