目前已知的两个 mcp-server java 应用开发框架(ID类的,封装后体验都比较简洁):
- spring-ai-mcp,支持 java17 或以上
- solon-ai-mcp,支持 java8 或以上(也支持集成到 springboot2, jfinal, vert.x 等第三方框架)
下面分别用两个框架,构建一个天气查询的 mcp 工具服务。
1、spring ai mcp server(支持 java17 或以上)
添加关键的依赖包(版本号与 springboot 各自独立)
org.springframework.ai
spring-ai-mcp-server-spring-boot-starter
1.0.0-M6
添加配置(为服务端点命名)
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 一致)
org.noear
solon-ai-mcp
3.2.0
示例代码(跟 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 的开发相对更简洁,三位一体。且支持多端点。