边书仪 发表于 2025-6-2 21:57:29

MCP Server Java 开发框架的体验比较(spring ai mcp 和 solon ai mcp)

目前已知的两个 mcp-serverjava 应用开发框架(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>
   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>
    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-mcpsolon-ai-mcp开发基于组件开发基于组件开发配置通过 yaml 配置组件,即是配置(也可引用 yaml 配置)发布通过配置器发布为 ToolCallbackProvider组件,即是发布jdk要求jdk17或以上jdk8或以上端点支持好像只能一个(一个服务内)支持多端点(一个服务内)solon-ai-mcp 的开发相对更简洁,三位一体。且支持多端点。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: MCP Server Java 开发框架的体验比较(spring ai mcp 和 solon ai mcp)