Spring Boot之MCP Client开发全介绍

发布于:2025-05-07 ⋅ 阅读:(44) ⋅ 点赞:(0)

Spring AI MCP(模型上下文协议,Model Context Protocol)客户端启动器为 Spring Boot 应用程序中的 MCP 客户端功能提供了自动配置支持。它支持同步和异步两种客户端实现方式,并提供了多种传输选项。

MCP 客户端启动器提供以下功能:

  • 多客户端实例管理
    支持管理多个客户端实例,方便在应用程序中同时使用多个 MCP 客户端。
  • 自动客户端初始化(如启用)
    如果配置了自动初始化,客户端会在应用程序启动时自动初始化,无需手动干预。
  • 支持多个命名传输方式
    允许配置和使用多个具有不同名称的传输方式,以满足不同的通信需求。
  • 与 Spring AI 的工具执行框架集成
    与 Spring AI 的工具执行框架无缝集成,支持在客户端中执行各种工具操作。
  • 适当的生命周期管理,在应用程序上下文关闭时自动清理资源
    提供完善的生命周期管理,确保在应用程序上下文关闭时,所有相关资源都能被自动清理,避免资源泄漏。
  • 通过自定义器(Customizers)实现客户端创建的可定制化
    支持通过自定义器对客户端的创建过程进行定制,以满足特定的业务需求或配置要求。

标准 MCP 客户端(Standard MCP Client)


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

标准启动器(spring-ai-starter-mcp-client)允许客户端同时通过 STDIO(进程内)和/或 SSE(远程)传输方式连接到单个或多个 MCP 服务器。其中,SSE 连接使用的是基于 HttpClient 的传输实现。每次与 MCP 服务器的连接都会创建一个新的 MCP 客户端实例。可以选择使用同步(SYNC)或异步(ASYNC)的 MCP 客户端(注意:不能同时混合使用同步和异步客户端)。对于生产环境部署,建议使用基于 WebFlux 的 SSE 连接,并搭配 spring-ai-starter-mcp-client-webflux 启动器。

WebFlux 客户端(WebFlux Client)

WebFlux 启动器提供了与标准启动器类似的功能,但它使用的是基于 WebFlux 的 SSE(服务器发送事件,Server-Sent Events)传输实现。


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

网站公告

今日签到

点亮在社区的每一天
去签到