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