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></