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