MCP Server Java 开发框架的体验比较(spring ai mcp 和 solon ai mcp)
目前已知的两个 mcp-server java 应用开发框架(ID类的,封装后体验都比较简洁):
- spring-ai-mcp,支持 java17 或以上
- solon-ai-mcp,支持 java8 或以上(也支持集成到 springboot2, jfinal, vert.x 等第三方框架)
下面分别用两个框架,构建一个天气查询的 mcp 工具服务。
1、spring ai mcp server(支持 java17 或以上)
添加关键的依赖包(版本号与 springboot 各自独立)
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
添加配置(为服务端点命名)
spring.ai.mcp.server.name: jdbc-mcp-server
示例代码(构建服务,然后发布为 ToolCallbackProvider)
@Service
public class JdbcQueryService {
@Tool(description = "查询天气预报")
public String getWeather(@ToolParam(description = "城市位置") String location) {
return "晴,14度";
}
}
@Configuration
public class McpConfig {
@Bean
ToolCallbackProvider jdbcQueryTools(JdbcQueryService jdbcQueryService) {
return MethodToolCallbackProvider
.builder()
.toolObjects(jdbcQueryService)
.build();
}
}
2、solon ai mcp server(支持 java8 或以上)
添加关键的依赖包(版本号随 solon 一致)
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-mcp</artifactId>
<version>3.2.0</version>
</dependency>
示例代码(跟 mvc 的开发非常像)
@McpServerEndpoint(name="mcp-case1", sseEndpoint = "/case1/sse")
public class McpServerTool {
@ToolMapping(description = "查询天气预报")
public String getWeather(@ToolParam(description = "城市位置") String location) {
return "晴,14度";
}
}
solon ai mcp server 支持多端点。就是一个服务就可提供多组工具(供不同的场景使用,灵活性更好):
- 可以有一组关于天气的工具
- 可以再有一组关于地图的工具
3、总结
开发体验比较
| 比较 | srping-ai-mcp | solon-ai-mcp |
|---|---|---|
| 开发 | 基于组件开发 | 基于组件开发 |
| 配置 | 通过 yaml 配置 | 组件,即是配置(也可引用 yaml 配置) |
| 发布 | 通过配置器发布为 ToolCallbackProvider | 组件,即是发布 |
| jdk要求 | jdk17或以上 | jdk8或以上 |
| 端点支持 | 好像只能一个(一个服务内) | 支持多端点(一个服务内) |
solon-ai-mcp 的开发相对更简洁,三位一体。且支持多端点。
MCP Server Java 开发框架的体验比较(spring ai mcp 和 solon ai mcp)的更多相关文章
- 轻量级的Java 开发框架 Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development a ...
- [转] 为什么说 Java 程序员必须掌握 Spring Boot ?
Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot ...
- 【转】为什么说 Java 程序员必须掌握 Spring Boot ?
Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot ...
- 为什么说 Java 程序员必须掌握 Spring Boot ?
原作者https://www.cnblogs.com/ityouknow/p/9175980.html Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人 ...
- 为什么说 Java 程序员必须掌握 Spring Boot ?(转)
Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot ...
- 为什么说Java程序员必须掌握 Spring Boot ?
Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot ...
- 第65节:Java后端的学习之Spring基础
Java后端的学习之Spring基础 如果要学习spring,那么什么是框架,spring又是什么呢?学习spring中的ioc和bean,以及aop,IOC,Bean,AOP,(配置,注解,api) ...
- 又一个小而美的Java 开发框架: Solon 1.2 新篇
Solon 1.2 发布后,取消了X类名前缀.故对此文做些调整. Solon 是Java世界里一个新的极易上手的Java开发框架.参考过 Javalin . Spring boot 等很多现有框架的设 ...
- Java WebService 教程系列之 Spring 整合 CXF
Java WebService 教程系列之 Spring 整合 CXF 一.引入 jar 包 <dependency> <groupId>org.apache.cxf</ ...
- JAVA开发框架
1.Bootstrap Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍 ...
随机推荐
- flutter3-dymall仿抖音直播商城|Flutter3.27短视频+直播+聊天App实例
自研flutter3.27+dart3.6+getx实战抖音短视频+聊天+直播电商带货app商城应用. flutter_dymall一款基于最新版Flutter3.27+Dart3.x+Getx+me ...
- .NET周刊【2月第1期 2025-02-02】
国内文章 dotnet 9 已知问题 默认开启 CET 导致进程崩溃 https://www.cnblogs.com/lindexi/p/18700406 本文记录 dotnet 9 的一个已知且当前 ...
- mybatis之配置优化
属性优化 properties 外部配置文件[db.properties] driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/m ...
- PADS无模命令总结表
无模命令总结表 1.C 补充格式,在内层负片设计时用来显示 Plane 层的焊盘及 Thermal.使用方法是,从键盘上输入 C 显示,再次输入 C 可去除显示. 2.D 打开/关闭当前层显示,使用方 ...
- 关于选择最佳.NET Core SSH服务器库的全面分析
关于选择最佳.NET Core SSH服务器库的全面分析 在安全远程访问领域,SSH(安全外壳协议)服务器对于在潜在不安全的网络上实现客户端与服务器之间的安全通信至关重要.对于使用.NET Core的 ...
- SSM - 狂神的项目示例
出于对狂神的崇拜,总结SSM项目. 基本介绍 项目分层 基本介绍 项目名称:ssmbuild 介绍:通过书籍管理系统实现一个简单的SSM项目,可以作为其他Java Web项目的借鉴. 主要功能模块:查 ...
- Halcon学习教程(二) 测量量测相关(点到线距离,线到线距离,轮廓线距离,一维测量,圆形测量,矩形测量等)
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/18740576 本篇讲一些测量用到的算子和实例,想了解更多就得去看看halcon实例里一维测量里 ...
- 「二」移动光标、vim进入与退出、文本编辑之删除、插入、添加、编辑、光标移动、撤销
移动光标 h:向左移动 j:向下移动 k:向上移动 l:向右移动 vim进入与退出 按鍵, 确保处于正常模式 輸入:q! <回车>(丢弃所做的任何改动) 文本编辑之删除 在正常模式下修改命 ...
- linux服务器压力/性能测试命令
linux命令下使用ab -c500 -n2000 http://www.test.cn 进行压力测试 在Linux命令行中,ab 是 Apache HTTP server benchmarki ...
- 依赖倒置 DIP、依赖注入 DI、控制反转 IoC 和工厂模式
1. 依赖倒置 依赖倒置原则(Dependency Inversion Principle, DIP)是 SOLID 原则中的一项,其核心思想是通过抽象解耦高层模块和低层模块,使二者都依赖于抽象而非具 ...