大家好,我是小肥肠,专注AI干货知识分享,今天将给大家分享的是Spring AI搭建MCP Server教程,让你10分钟搭建一个自己的专属MCP Server,本期教程干货满满,一次看不完可以点击收藏做个记号下次看。如果你正在学习AI相关知识,欢迎关注小肥肠哦~
1. 写在开头
最近在捣鼓 AI 开发时发现市面上的 MCP Server 虽然种类挺多,但落到具体细分小众业务场景里面就需要自己亲手开发。作为一个拥有9年研发经验的JAVAer看到 Spring AI 把 MCP 集成玩得风生水起后也决定下场实操一番。

我搭建过程也是蜿蜒曲折,折腾好几天总算是搭起来了,先是换JAVA版本,我之前一直美滋滋的用JAVA8,这次也是被强行升级到JAVA17,还有Maven版本的更和IDE的更新,总之这次算是我的开发工具大换血了。装备换完,开发MCP Server再基于Client调用也就10分钟的事情,如果你对本期教程感兴趣就继续往下看,正文开始咯~
2. MCP Server 的传输模式
MCP Server 的传输模式各有千秋,其中 stdio、sse 和 Streamable HTTP 较为常用。Streamable HTTP 适合复杂网络交互,而 stdio 和 sse 应用更为高频,他俩一个主打本地交互的便捷,一个专注实时数据推送,这也是本文要重点讲解的内容,下面就来深入了解它们的原理与适用场景。
2.1. 标准输入输出(stdio)模式
stdio 模式主打一个本地交互的便捷。它利用操作系统自带的标准输入(stdin)和标准输出(stdout)流在进程间传递数据。MCP 客户端像启动一个小弟进程那样启动 MCP 服务器,然后通过标准输入流把消息传给服务器,服务器处理完再通过标准输出流把响应发回来。数据呢,是以 JSON 格式序列化,一行一个完整的 JSON 对象,就像排队报数一样,采用 JSON Lines/JSONL 格式通信。
这种模式简单高效很适合在本地开发测试,或者对同时处理很多请求要求不高的场景。但它也有短板,它的模式为同步阻塞模型,即得等前一条消息传完才能处理下一条,遇到大量并发请求或者复杂交互场景,就有点力不从心了。

2.2. 服务器发送事件(SSE)模式
sse 模式则专注于实时数据推送。它是基于 HTTP/1.1 的长连接技术,实现服务器向客户端的单向实时通信。客户端通过 HTTP POST 端点发送请求,服务器就通过 SSE 长连接主动给客户端 投喂 数据。服务器推送的数据都按 SSE 格式,每个事件都带着 data: 这个前缀标识。像实时通知、股票行情更新这些场景,大量客户端连接但只需要服务器推送数据,sse 模式就派上用场了。
sse是异步事件驱动模型,支持实时或接近实时的交互,在分布式系统或者高并发场景里表现不错,不过它也有局限,只支持服务器向客户端的单向通信,而且断线了不能自动重连或者恢复会话。

3. MCP Server搭建实战
由于篇幅限制,这篇文章先教大家搭建stido模式,下篇将会献上sse传输模式搭建,感兴趣的可以点点关注,防止我更新以后你找不到我。
3.1. 配置要求
基于Spring ai构建MCP Server需要保障你的开发工具满足以下条件:
环境要求 版本要求 推荐版本 说明 JDK 17+ JDK 17.0.12 必须使用Java 17或更高版本,推荐使用最新的LTS版本 Maven 3.6.x Maven 3.9.6 构建工具版本要求,推荐使用最新的3.x稳定版 Spring Boot 3.x Spring Boot 3.2.3 框架版本要求,需要使用3.x系列版本 IDE - IntelliJ IDEA 2024 版本越新越好
3.2. 基于stdio模式访问天气查询MCP Server
3.2.1. 基于Spring AI编写天气查询MCP Server
基于stdio模式访问MCP Server搭建较为简单,因为我想写系列流程,我就用模块的方式来搭建,源码等SSE文章出来以后会放出来。
为了更好的阅读体验,来飞书看吧:
https://pa23ntdf1gf.feishu.cn/docx/YE7udlzUoow3gHxVSKzcKtfOnJd
Comments on "JAVAer 狂喜!10 分钟用 Spring AI 搭专属 MCP Server,手把手教程来了" :