模型上下文協議 (MCP)
| MCP 新手? 從我們的 MCP 入門指南開始,獲取快速介紹和實際示例。 |
模型上下文協議 (MCP) 是一種標準化協議,使 AI 模型能夠以結構化方式與外部工具和資源互動。可以將其視為 AI 模型與現實世界之間的橋樑——允許它們透過一致的介面訪問資料庫、API、檔案系統和其他外部服務。它支援多種傳輸機制,以提供跨不同環境的靈活性。
MCP Java SDK 提供了模型上下文協議的 Java 實現,透過同步和非同步通訊模式,實現與 AI 模型和工具的標準化互動。
Spring AI 透過專門的 Boot Starters 和 MCP Java 註解全面支援 MCP,使得構建能夠無縫連線到外部系統的複雜 AI 驅動應用程式比以往任何時候都更容易。這意味著 Spring 開發人員可以參與 MCP 生態系統的兩方面——構建消費 MCP 伺服器的 AI 應用程式,以及建立向更廣泛的 AI 社群公開基於 Spring 的服務的 MCP 伺服器。使用 Spring Initializer 啟動您的 AI 應用程式,並獲得 MCP 支援。
MCP Java SDK 架構
| 本節概述了 MCP Java SDK 架構。有關 Spring AI MCP 整合,請參閱 Spring AI MCP Boot Starters 文件。 |
Java MCP 實現遵循三層架構,將關注點分離以實現可維護性和靈活性
客戶端/伺服器層(頂層)
頂層處理主要應用程式邏輯和協議操作
-
McpClient - 管理客戶端操作和伺服器連線
-
McpServer - 處理伺服器端協議操作和客戶端請求
-
這兩個元件都利用下面的會話層進行通訊管理
會話層(中間層)
中間層管理通訊模式並維護連線狀態
-
McpSession - 核心會話管理介面
-
McpClientSession - 客戶端特定會話實現
-
McpServerSession - 伺服器特定會話實現
傳輸層(底層)
底層處理實際的訊息傳輸和序列化
-
McpTransport - 管理 JSON-RPC 訊息序列化和反序列化
-
支援多種傳輸實現(STDIO、HTTP/SSE、Streamable-HTTP 等)
-
為所有更高級別的通訊提供基礎
| MCP 客戶端 | |
|---|---|
MCP 客戶端是模型上下文協議 (MCP) 架構中的一個關鍵元件,負責建立和管理與 MCP 伺服器的連線。它實現了協議的客戶端部分,處理
|
|
| MCP 伺服器 | |
|---|---|
MCP 伺服器是模型上下文協議 (MCP) 架構中的一個基礎元件,它向客戶端提供工具、資源和功能。它實現了協議的伺服器端,負責
|
|
有關使用低階 MCP 客戶端/伺服器 API 的詳細實現指南,請參閱 MCP Java SDK 文件。對於使用 Spring Boot 的簡化設定,請使用下面描述的 MCP Boot Starters。
Spring AI MCP 整合
Spring AI 透過以下 Spring Boot 啟動器提供 MCP 整合
客戶端啟動器
-
spring-ai-starter-mcp-client- 核心啟動器,提供STDIO、基於 Servlet 的Streamable-HTTP、Stateless Streamable-HTTP和SSE支援 -
spring-ai-starter-mcp-client-webflux- 基於 WebFlux 的Streamable-HTTP、Stateless Streamable-HTTP和SSE傳輸實現
伺服器啟動器
WebMVC
伺服器型別 |
依賴項 |
財產 |
|
|
|
|
|
|
|
|
Spring AI MCP 註解
除了程式設計方式的 MCP 客戶端和伺服器配置之外,Spring AI 還透過 MCP 註解模組為 MCP 伺服器和客戶端提供基於註解的方法處理。這種方法透過使用 Java 註解的清晰、宣告式程式設計模型來簡化 MCP 操作的建立和註冊。
MCP 註解模組使開發人員能夠
-
使用簡單的註解建立 MCP 工具、資源和提示
-
宣告性地處理客戶端通知和請求
-
減少樣板程式碼並提高可維護性
-
自動為工具引數生成 JSON 模式
-
訪問特殊引數和上下文資訊
主要功能包括