乐于分享
好东西不私藏

我用 Spring AI + MCP 开发的工具,3 天调用破 5000!附完整实现代码

我用 Spring AI + MCP 开发的工具,3 天调用破 5000!附完整实现代码

做AI开发的朋友应该都有同感:现在的大模型,聊日常、写文案确实强,但一落地到真实业务,短板特别明显。

尤其是需要生成图表、查询专业外部数据、执行固定业务逻辑的时候,大模型很容易“凭空发挥”,要么答非所问,要么直接幻觉乱编,根本没法上线使用。

最近我基于 Spring AI 实战开发了两个落地可用的 MCP 工具服务,上传魔塔社区后,短短3天使用量直接突破 5000+。

今天把完整的落地思路、开发流程、踩坑经验一次性分享出来,新手也能看懂,直接上手复刻。(全文干货无废话,建议收藏)

一、为什么现在做AI项目,一定要用 MCP?

很多人对 MCP(模型上下文协议)还比较陌生,我用大白话讲清楚:

MCP 本质就是大模型的标准化插件能力。

大模型本身只有“语言生成能力”,它不会查数据、不会画图、不会执行业务逻辑、不会对接外部系统。

而 MCP 就是用来补齐这些短板的:

  • 让大模型可以精准调用后端工具

  • 不再瞎编、不再幻觉、回答更精准

  • 协议标准化,一次开发,全平台通用

  • 基于 Spring Boot 开发,后端开发者上手零压力

简单说:想要 AI 项目真正落地,不靠 Prompt 硬撑,就必须靠 MCP 工具化。

二、我上线的两个爆款 MCP 服务(实用性拉满)

这次我没有做花里胡哨的功能,只做了两个真正高频刚需的服务,也是使用量暴涨的核心原因。

1、数据可视化 MCP 服务

绝大多数AI问答、智能报表、BI项目都会卡在这里:大模型只会说数据,不会出图。

我开发的这个服务,纯后端渲染、不依赖前端 ECharts。

大模型接收用户数据后,直接调用后端工具生成图表,开箱即用。

适用场景:数据分析、自动报表、智能BI、办公AI助手等。

2、古诗词 MCP 服务

很多文案AI、教学AI、文化问答模型,自带诗词知识库非常有限,很容易答错题、编诗句。

这个服务可以让大模型精准检索唐诗、宋词,支持随机获取、分类查询、内容解读,彻底避免诗词问答幻觉。

适用场景:文案创作、语文教学、文化问答、AI陪读等。

三、Spring AI 开发 MCP 完整实战流程

下面给大家梳理一套可直接复刻的标准开发流程。

1. 项目依赖引入

基于 Spring Boot,只需要引入 MCP 服务核心依赖:

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency>    <groupId>org.springframework.ai</groupId>    <artifactId>spring-ai-starter-mcp-server-webflux</artifactId>    <version>${spring-ai.version}</version></dependency>

2. 核心工具开发(@Tool 注解)

所有要给大模型调用的能力,都通过 @Tool 注解暴露,模型会自动识别参数、描述、功能用途。

以诗词查询工具为例:

@Tool(description = "获取随机一首诗词。参数type可选,值为'唐诗'或'宋词',不传则从所有诗词中获取")public String getRandomPoem(    @ToolParam(description = "诗词类型,可选值:唐诗 或 宋词,不传则从所有诗词中获取") String type) {    log.info("获取随机诗词,类型: {}", type);    List<Poem> poems;    if (Objects.isNull(type) || type.isBlank()) {        poems = poemDataService.getAllPoems();    } else if (TYPE_TANGSHI.equals(type)) {        poems = poemDataService.getPoemsByType(TYPE_TANGSHI);    } else if (TYPE_SONGCI.equals(type)) {        poems = poemDataService.getPoemsByType(TYPE_SONGCI);    } else {        log.warn("无效的诗词类型: {}", type);        return buildErrorResponse("无效的诗词类型,请传入'唐诗'或'宋词'");    }    if (poems.isEmpty()) {        log.warn("未找到符合条件的诗词,类型: {}", type);        return buildErrorResponse("未找到符合条件的诗词");    }    Poem randomPoem = poems.get(random.nextInt(poems.size()));    log.info("随机获取到诗词: {} - {}", randomPoem.getAuthor(), randomPoem.getTitle());    return toJsonString(randomPoem);}

这种写法的好处:语义清晰、模型自动理解、无需复杂Prompt约束。

3. MCP 服务配置与端点暴露

yml 核心配置,开启流式HTTP协议,支持双向通信,适配主流MCP客户端:

spring:  application:    name: mcp-server-tang-song  ai:    mcp:      server:        enabled: true        name: mcp-server-tang-song        version: 1.0.0        type: SYNC        protocol: stateless        streamable-http:          mcp-endpoint: /mcp/state

4. 注册工具到 MCP 容器

将自定义的所有工具类注册进上下文,让大模型可发现、可调用:

@Configurationpublic class McpServerConfig {    private static final Logger log = LoggerFactory.getLogger(McpServerConfig.class);    private final PoemTools poemTools;    public McpServerConfig(PoemTools poemTools) {        this.poemTools = poemTools;    }    @Bean    public ToolCallbackProvider poemToolCallbackProvider() {        log.info("注册诗词查询工具到MCP服务");        MethodToolCallbackProvider provider = MethodToolCallbackProvider.builder()                .toolObjects(poemTools)                .build();        log.info("诗词查询工具注册完成");        return provider;    }}

5. 本地测试 & 上线发布

本地启动项目后,通过 MCP 客户端连接服务端点,测试工具调用是否正常。 功能稳定后,即可打包发布到魔塔社区,供所有开发者直接接入使用。


四、客户端接入教程(超简单)

不管是自己开发的AI应用,还是支持MCP的客户端,接入逻辑都一样:

  1. 进入客户端「MCP 服务管理」

  2. 新增外部服务地址

  3. 填入你的公开 MCP 服务地址

  4. 启用对应工具(图表生成/诗词查询)

  5. 直接对话调用即可

接入完成后,模型会自动判断场景、自动调用工具、自动返回结果。

示例提问:

  • 帮我生成一份数据柱状图

  • 来一首描写秋天的宋词并解读


五、实战踩坑总结(新手必看)

我在开发、上线、适配过程中踩了不少坑,这里一次性总结出来,帮大家避坑:

1、不要过度依赖 Prompt 约束模型

单纯靠提示词限制幻觉,效果极不稳定。真正落地必须靠 MCP工具兜底 + 标准化输出。

2、协议一定要开启 streamable-http

很多新手服务对接失败,就是因为用了旧协议,不支持流式双向调用,导致工具无响应。

3、工具描述必须清晰规范

@Tool、@ToolParam 的描述越精准,模型调用成功率越高。描述模糊会出现“能识别工具,但不会正确传参”的问题。

4、知识库/业务数据一定要本地兜底

不要让模型自由发挥,所有专业数据、诗词数据、图表逻辑,全部后端固化,模型只负责整理和输出。


六、最后聊聊我的感悟

这次两个小服务能够短时间破5000使用量,其实不是技术多复杂,而是真正踩中了AI落地的核心:

大模型只能做“表层生成”,真正的业务能力,必须靠后端工具化实现。

Spring AI + MCP 就是目前最适合 Java 开发者的 AI 落地方案。

不需要高深算法、不需要微调模型,只要你会写接口、会封装工具,就能做出可上线、可复用的AI能力。


互动交流💬

你在做 Spring AI 开发时,还遇到了哪些落地难题?你最想开发什么场景的 MCP 工具? 欢迎评论区一起交流探讨!

觉得文章对你有帮助,点赞、在看、转发一波,持续更新更多AI落地实战干货!

#SpringAI #MCP #大模型开发 #后端开发 #AI落地 #程序员干货

相关学习资料