推出 Model Context Protocol Java SDK

釋出 | Mark Pollack | 2025 年 2 月 14 日 | ...

這篇博文由 David Soria ParraChristian TzolovDariusz Jędrzejczyk 聯合撰寫。

什麼是 MCP

Model Context Protocol (MCP) 是由 Anthropic 開發的一項開放協議,它正在改變 AI 應用程式連線和共享上下文的方式。它已獲得跨 AI 應用程式的廣泛支援,作為大型語言模型 (LLM) 與資料來源、工具和 AI 代理互動的標準介面。無論您是構建需要訪問資料庫的自主系統,編排複雜的 AI 工作流,還是建立多個代理協作的系統,MCP 都提供了使這些整合無縫的基礎層。

MCP 的獨特之處在於其對可組合性和互操作性的關注。 MCP 不僅僅是連線到資料來源,它還使開發人員能夠構建豐富、互動式的 AI 系統,在這些系統中,代理可以透過一致的介面共享上下文、訪問工具並協同工作。這意味著您可以快速接入不斷增長的預構建整合生態系統,同時保持在不同 LLM 提供商之間切換的靈活性,使其成為構建複雜 AI 應用程式的理想基礎。

推出 MCP Java SDK

去年 11 月開始的實驗性專案,現已發展成為與 Spring AI 團隊和 Anthropic 的激動人心的合作。我們很高興地宣佈,該實驗性專案已移入官方 MCP Java SDK。
該 SDK 是該協議的最新語言繫結,與 Python、TypeScript 和 Kotlin SDK 一起,可在 modelcontextprotocol.io 上找到。Java 長期以來一直是企業的語言,MCP Java SDK 使組織能夠更輕鬆地開發尖端的 AI 應用程式。

MCP Java SDK 為整合 AI 模型與外部工具和資料來源提供了全面的基礎。該 SDK 的主要功能包括:

客戶端和伺服器實現

  • 支援同步和非同步 MCP 通訊。
  • 支援協議版本相容性協商,實現順暢的互操作性。

工具和資源管理

  • 動態發現、註冊和執行工具。
  • 接收關於工具和資源的即時列表變更通知。
  • 使用 URI 模板管理資源,實現結構化訪問和訂閱。

Prompt 處理和 AI 取樣支援

  • 檢索和管理 Prompt,以自定義 AI 模型行為。
  • 支援取樣策略,以微調 AI 互動。

多種傳輸實現

  • 基於 Stdio 的傳輸,用於直接程序通訊。
  • 基於 Java HttpClient 的 SSE 客戶端傳輸,用於基於 HTTP 的流式傳輸。
  • 基於 Servlet 的 SSE 伺服器傳輸,用於傳統伺服器環境中的 HTTP 流式傳輸。
  • 基於 Spring 的傳輸,用於與 Spring Boot 無縫整合。
    • 基於 Spring WebFlux 的 SSE 傳輸,用於響應式應用程式。

    • 基於 Spring WebMVC 的 SSE 傳輸,用於基於 Servlet 的應用程式。

請查閱 文件,瞭解有關入門的更多資訊,並訪問 GitHub 倉庫 來提出問題和參與討論。

Spring AI 和 MCP

Spring AI 專案透過新增開發人員生產力增強功能來擴充套件 MCP Java SDK,以整合 Spring Boot 應用程式。藉助 Spring Boot starters,開發人員可以使用 Spring 的依賴注入和配置管理來快速配置 MCP 客戶端和伺服器,從而更輕鬆地將 AI 驅動的工作流整合到他們的應用程式中。

客戶端 Starters

  • spring-ai-mcp-client-spring-boot-starter – 支援 STDIO 和基於 HTTP 的 SSE 傳輸的核心客戶端啟動器。
  • spring-ai-mcp-client-webflux-spring-boot-starter – 用於響應式應用程式的基於 WebFlux 的 SSE 傳輸實現。

伺服器 Starters

  • spring-ai-mcp-server-spring-boot-starter – 支援 STDIO 傳輸的核心伺服器啟動器。
  • spring-ai-mcp-server-webmvc-spring-boot-starter – 用於基於 Servlet 的應用程式的基於 Spring MVC 的 SSE 傳輸實現。
  • spring-ai-mcp-server-webflux-spring-boot-starter – 用於響應式應用程式的基於 WebFlux 的 SSE 傳輸實現。

以下是如何宣告式配置一個透過 STDIO 傳輸的客戶端應用程式的示例。在 application.yml 中,定義以下配置:

spring:
  ai:
    mcp:
      client:
        stdio:
          servers-configuration: classpath:mcp-servers.json

引用的 JSON 檔案以 Claude Desktop 格式定義了要連線的伺服器。

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    }
  }
}

當客戶端應用程式啟動時,它將啟動 MCP 伺服器,建立 STDIO 通訊通道,並管理伺服器的生命週期。

Spring AI M6 還引入了 @Tool 註解,這簡化了 MCP 伺服器的建立。有關更多資訊,請閱讀 Spring AI 關於 MCP 的 參考文件

下一步

我們期待在 GitHub 上收到反饋,並非常感謝 Anthropic 團隊的支援。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有