当前位置: 首页 > news >正文

70_Spring AI 干货笔记之 STDIO 与 SSE MCP 服务器

一、STDIO 与 SSE MCP 服务器

STDIO 和 SSE MCP 服务器支持多种传输机制,每种都有专门的启动器。

使用 STDIO 客户端或 SSE 客户端连接 STDIO 和 SSE 服务器。

1.1 STDIO MCP 服务器

支持完整 MCP 服务器功能,采用 STDIO 服务器传输。

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-server</artifactId></dependency>
  • 适合命令行和桌面工具

  • 无需额外 Web 依赖

  • 基本服务器组件配置

  • 处理工具、资源和提示规范

  • 管理服务器能力和变更通知

  • 支持同步和异步服务器实现

1.2 SSE WebMVC 服务器

支持完整 MCP 服务器功能,采用基于 Spring MVC 的 SSE(服务器发送事件)服务器传输,并可选 STDIO 传输。

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-server-webmvc</artifactId></dependency>
  • 基于 HTTP 的传输,使用 Spring MVC(WebMvcSseServerTransportProvider)

  • 自动配置的 SSE 端点

  • 可选的 STDIO 传输(通过设置 spring.ai.mcp.server.stdio=true 启用)

  • 包含 spring-boot-starter-web 和 mcp-spring-webmvc 依赖项

1.3 SSE WebFlux 服务器

支持完整 MCP 服务器功能,采用基于 Spring WebFlux 的 SSE(服务器发送事件)服务器传输,并可选 STDIO 传输。

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

此启动器激活 McpWebFluxServerAutoConfiguration 和 McpServerAutoConfiguration 自动配置,提供:

  • 响应式传输,使用 Spring WebFlux(WebFluxSseServerTransportProvider)

  • 自动配置的响应式 SSE 端点

  • 可选的 STDIO 传输(通过设置 spring.ai.mcp.server.stdio=true 启用)

  • 包含 spring-boot-starter-webflux 和 mcp-spring-webflux 依赖项

由于 Spring Boot 的默认行为,当类路径中同时存在 org.springframework.web.servlet.DispatcherServlet 和 org.springframework.web.reactive.DispatcherHandler 时,Spring Boot 将优先使用 DispatcherServlet。因此,如果您的项目使用 spring-boot-starter-web,建议使用 spring-ai-starter-mcp-server-webmvc 而非 spring-ai-starter-mcp-server-webflux。

二、配置属性

2.1 通用属性

所有通用属性前缀为 spring.ai.mcp.server:

2.2 MCP 注解属性

MCP 服务器注解提供了一种使用 Java 注解实现 MCP 服务器处理程序的声明式方法。

服务器 mcp 注解属性前缀为 spring.ai.mcp.server.annotation-scanner:

2.3 SSE 属性

所有 SSE 属性前缀为 spring.ai.mcp.server:

出于向后兼容性原因,SSE 属性没有额外的后缀(如 .sse)。

三、特性和能力

MCP 服务器启动器允许服务器向客户端公开工具、资源和提示。它会根据服务器类型自动将注册为 Spring Bean 的自定义能力处理程序转换为同步/异步规范:

3.1 工具

允许服务器公开语言模型可调用的工具。MCP 服务器启动器提供:

  • 变更通知支持

  • Spring AI 工具根据服务器类型自动转换为同步/异步规范

  • 通过 Spring Bean 自动生成工具规范:

@BeanpublicToolCallbackProvidermyTools(...){List<ToolCallback>tools=...returnToolCallbackProvider.from(tools);}

或使用底层 API:

@BeanpublicList<McpServerFeatures.SyncToolSpecification>myTools(...){List<McpServerFeatures.SyncToolSpecification>tools=.
http://www.jsqmd.com/news/267548/

相关文章:

  • 2026年湖北襄阳、十堰等地家用别墅电梯生产商排名,哪家更靠谱? - 工业品牌热点
  • 基于STM32单片机MPU6050陀螺仪角度加速度无线摄像头设计套件24X(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于大数据网易云音乐排行榜数据分析系统设计与实现
  • 生命死亡之谜:为什么灯塔水母可以长生不老?
  • 视频创作万能工具箱,Sora2源码整合生成、编辑、优化全流程
  • Sora2万能创作系统源码,助您快速部署自有平台
  • 开源可商用的Sora2视频生成系统源码,全能AI视频创作平台
  • 基于51/STM32单片机录音笔语音录放存储音频ISD4004无线APP设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 成都婚纱照推荐|沐纱映画:以“静奢风”定义高级质感,匠心珍藏幸福光影 - charlieruizvin
  • 基于51单片机地震/电动车震动检测防盗语音报警器设计/DIY套件131(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的车型识别与计数系统(深度学习模型+UI界面代码+训练数据集)
  • 2026年辽宁非标封头厂家定制费用分析,新乡市光大机械收费合理 - 工业品牌热点
  • Wolfspeed 取得 300mm SiC 重大突破
  • PyPy魔法:JIT编译器如何让Python代码飞起来
  • 能源化工网页应用怎么集成WebUploader实现分片上传源码?
  • 嵌入式 Linux 开发入门:搭建交叉编译环境与第一个应用程序开发
  • 保险网页项目怎么用javascript实现大文件分片上传及断点续传源码?
  • 基于STM32单片机智能可见光数字通信音频通信光线收发设计25-125(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于深度学习YOLOv10的肺炎检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于STM32单片机生理监控心率彩屏蓝牙APP波形心电图设计24-156(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 丙午新春乐韵奔腾:马年主题金曲榜
  • 基于AI+WebSocket+SpringBoot的在线客服系统的设计与实现
  • 二分搜索(七)744. 寻找比目标字母大的最小字母 二分搜索基本题型
  • 基于深度学习YOLOv10的草莓果实病害检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习YOLOv10的绝缘子缺陷检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 网页编辑器如何优化WordPress的Word公式在线编辑功能?
  • 基于大数据的淘宝月季销售预测数据可视化系统 爬虫
  • 27个大模型应用场景全解析:从文本处理到图像识别,一篇搞定AI核心技术,建议收藏
  • 【wordpress系列教程】05 文章分类与标签
  • 基于AI+Spring Boot协同过滤推荐算法的高考志愿个性化推荐系统