Spring Boot 之MCP Server开发全介绍

Spring AI 的 MCP(模型上下文协议,Model Context Protocol)服务器启动器为在 Spring Boot 应用程序中设置 MCP 服务器提供了自动配置功能。它使得 MCP 服务器功能能够与 Spring Boot 的自动配置系统实现无缝集成。

MCP 服务器启动器具备以下特性:

  • MCP 服务器组件的自动配置:能够自动配置 MCP 服务器所需的各种组件,简化配置流程。
  • 支持同步和异步操作模式:提供同步和异步两种操作模式,以满足不同应用场景的需求。
  • 多种传输层选项:支持多种传输层协议,增强系统的灵活性和可扩展性。
  • 灵活的工具、资源和提示规范:允许灵活指定工具、资源和提示信息,便于根据具体需求进行定制。
  • 变更通知能力:具备变更通知功能,能够实时感知并处理系统中的状态变化。

标准MCP服务器(Standard MCP Server)

完整支持 MCP 服务器的所有功能,并使用 STDIO 服务器传输方式。

依赖配置如下:


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

该启动器适用于命令行工具和桌面应用程序。

特点

  • 无需额外的 Web 依赖:不依赖任何额外的 Web 组件,即可独立运行。
  • 自动配置功能:启动器会激活McpServerAutoConfiguration自动配置类,负责以下工作:
    • 配置基础服务器组件:设置服务器运行所需的基础组件。
    • 处理工具、资源和提示信息规范:管理工具、资源和提示信息的配置与定义。
    • 管理服务器功能和变更通知:监控并处理服务器功能的变更及通知。
    • 提供同步和异步服务器实现:支持同步和异步两种服务器实现方式,以满足不同需求。

WebMVC 服务器传输(WebMVC Server Transport)

完整支持 MCP 服务器的所有功能,基于 Spring MVC 并提供基于 SSE(服务器发送事件,Server-Sent Events)的服务器传输方式,同时可选支持 STDIO 传输方式。

依赖配置如下:


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

该启动器会激活McpWebMvcServerAutoConfiguration和McpServerAutoConfiguration两个自动配置类,以提供以下功能:

  • 基于 Spring MVC 的 HTTP 传输:使用WebMvcSseServerTransportProvider提供基于 HTTP 的 SSE 传输功能。
  • 自动配置的 SSE 端点:自动配置用于服务器发送事件的端点,便于客户端接收服务器推送的更新。
  • 可选的 STDIO 传输方式:通过设置spring.ai.mcp.server.stdio=true可以启用可选的 STDIO 传输方式,增加部署的灵活性。
  • 包含pring-boot-starter-web 和mcp-spring-webmvc 依赖**:自动引入构建 Web 应用所需的 Spring Boot 启动器以及与 MCP 相关的 Spring Web MVC 依赖,简化项目配置。

WebFlux 服务器传输(WebFlux Server Transport)

完整支持 MCP 服务器的所有功能,基于 Spring WebFlux 并提供基于 SSE(服务器发送事件,Server-Sent Events)的服务器传输方式,同时可选支持 STDIO 传输方式。

依赖配置如下:


<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-mcp-server-webflux
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oscar999

送以玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值