首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >速看!新版SpringAI的2个致命问题

速看!新版SpringAI的2个致命问题

作者头像
磊哥
发布2025-07-02 08:26:35
发布2025-07-02 08:26:35
5640
举报
文章被收录于专栏:王磊的博客王磊的博客

无论是使用最新正式版的 Spring AI,还是最新正式版 Spring AI Alibaba,在实现自定义 MCP 服务器端和客户端的时候,一定要注意这两个问题,不然你会发现你的 MCP 服务器端能启动,但客户端就是连接不上,并且控制台也都是误报信息。

注意事项一

自定义 MCP 服务器端添加依赖时,如果是非标准 stdio 模式,当前项目一定要记得排除掉 spring-boot-starter-web 依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

也就是说,你的 spring-ai-starter-mcp-server-webflux 依赖不能和 spring-boot-starter-web 依赖并存,以下是错误配置:

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>

因为当有 spring-boot-starter-web 依赖时会默认使用 tomcat 启动服务,这样项目虽然启动了,但 mcp service 服务并未启动,mcp service 服务是使用 netty 启动的,如下图所示:

注意事项二

Spring AI 正式版之后,在使用客户端注册 MCP 工具时要使用 ToolCallbacks 而不是 Tools,如果在新版本中使用后者就会启动报错。

错误用法

代码语言:javascript
复制
@Bean
public ChatClient chatClient(ChatModel chatModel, ToolCallbackProvider tools) {
    return ChatClient
            .builder(chatModel)
            .defaultTools(tools.getToolCallbacks())
            .build();
}

或者以下方式也是错误的:

代码语言:javascript
复制
@Bean
public ChatClient chatClient(ChatModel chatModel, ToolCallbackProvider tools) {
    return ChatClient
            .builder(chatModel)
            .defaultTools(tools)
            .build();
}

正确用法

代码语言:javascript
复制
@Bean
public ChatClient chatClient(ChatModel chatModel, ToolCallbackProvider tools) {
    return ChatClient
            .builder(chatModel)
            .defaultToolCallbacks(tools.getToolCallbacks())
            .build();
}

小结

在进行 Spring AI 或 Spring AI Alibaba 老项目升级时,或使用最新正式版框架时,一定要注意这两个问题,不然就会导致自定义的 MCP 服务能启动,但客户端就是连接不上的问题。

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、Dify、Spring AI Alibaba、智能体(AI Agent)、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注意事项一
  • 注意事项二
    • 错误用法
    • 正确用法
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档