概述
Model Context Protocol 的 Java SDK 實現了 AI 模型和工具之間的標準化集成。
功能特性
- MCP 客戶端和服務器端實現支持:
- 多種傳輸實現:
- 默認傳輸:
- 基於標準輸入輸出的進程通信傳輸
- 基於 Java HttpClient 的 HTTP SSE 客戶端流傳輸
- 基於 Servlet 的 HTTP SSE 服務器流傳輸
- 基於 Spring 的傳輸:
- WebFlux SSE 客戶端和服務器端響應式 HTTP 流傳輸
- WebMVC SSE 基於 servlet 的 HTTP 流傳輸
- 默認傳輸:
- 支持同步和異步編程範式
架構
SDK 採用分層架構,具有清晰的關注點分離:
- 客戶端/服務器層 (McpClient/McpServer):都使用 McpSession 進行同步/異步操作, McpClient 處理客戶端協議操作,McpServer 管理服務器端協議操作。
- 會話層 (McpSession):使用 DefaultMcpSession 實現管理通信模式和狀態。
- 傳輸層 (McpTransport):通過以下方式處理 JSON-RPC 消息序列化/反序列化:
- 核心模塊中的 StdioTransport (標準輸入/輸出)
- 專用傳輸模塊中的 HTTP SSE 傳輸 (Java HttpClient, Spring WebFlux, Spring WebMVC)
MCP 客戶端是 Model Context Protocol (MCP) 架構中的重要組件,負責建立和管理與 MCP 服務器的連接。 它實現了協議的客戶端部分。

MCP 服務器是 Model Context Protocol (MCP) 架構中的基礎組件,為客戶端提供工具、資源和功能。 它實現了協議的服務器端部分。

關鍵交互:
- 客戶端/服務器初始化:傳輸設置、協議兼容性檢查、能力協商和實現細節交換。
- 消息流:JSON-RPC 消息處理,包括驗證、類型安全的響應處理和錯誤處理。
- 資源管理:資源發現、基於 URI 模板的訪問、訂閱系統和內容檢索。
依賴
將以下 Maven 依賴添加到你的項目中:
核心 MCP 功能:
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp</artifactId>
</dependency>對於 HTTP SSE 傳輸實現,添加以下依賴之一:
<!-- 基於 Spring WebFlux 的 SSE 客戶端和服務器傳輸 -->
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-spring-webflux</artifactId>
</dependency>
<!-- 基於 Spring WebMVC 的 SSE 服務器傳輸 -->
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-spring-webmvc</artifactId>
</dependency>核心 MCP 功能:
dependencies {
implementation platform("io.modelcontextprotocol.sdk:mcp")
//...
}對於 HTTP SSE 傳輸實現,添加以下依賴之一:
// 基於 Spring WebFlux 的 SSE 客戶端和服務器傳輸
dependencies {
implementation platform("io.modelcontextprotocol.sdk:mcp-spring-webflux")
}
// 基於 Spring WebMVC 的 SSE 服務器傳輸
dependencies {
implementation platform("io.modelcontextprotocol.sdk:mcp-spring-webmvc")
}物料清單 (BOM)
物料清單 (BOM) 聲明瞭特定版本使用的所有依賴項的推薦版本。 在應用程序的構建腳本中使用 BOM 可以避免你自己指定和維護依賴項版本。 相反,你使用的 BOM 版本決定了所使用的依賴項版本。 除非你選擇覆蓋它們,否則它還確保你默認使用受支持和測試過的依賴項版本。
將 BOM 添加到你的項目中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-bom</artifactId>
<version>0.7.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>dependencies {
implementation platform("io.modelcontextprotocol.sdk:mcp-bom:0.7.0")
//...
}Gradle 用戶還可以通過利用 Gradle (5.0+) 對使用 Maven BOM 聲明依賴約束的原生支持來使用 Spring AI MCP BOM。 這是通過在 Gradle 構建腳本的依賴部分添加 ‘platform’ 依賴處理程序方法來實現的。 如上面的代碼片段所示,然後可以使用無版本聲明的方式添加你想使用的一個或多個 spring-ai 模塊的啟動器依賴,例如 spring-ai-openai。
將版本號替換為你想使用的 BOM 版本。
可用依賴
BOM 管理的可用依賴項如下:
- 核心依賴
io.modelcontextprotocol.sdk:mcp- 提供 Model Context Protocol 實現的基本功能和 API 的核心 MCP 庫。
- 傳輸依賴
io.modelcontextprotocol.sdk:mcp-spring-webflux- 用於響應式應用的基於 WebFlux 的服務器發送事件 (SSE) 傳輸實現。io.modelcontextprotocol.sdk:mcp-spring-webmvc- 用於基於 servlet 的應用的基於 WebMVC 的服務器發送事件 (SSE) 傳輸實現。
- 測試依賴
io.modelcontextprotocol.sdk:mcp-test- MCP 應用的測試工具和支持。