模型上下文協議(MCP):人工智慧與資料的通用聯結器

模型上下文協議(MCP)

我們都曾在日常編碼任務中體驗過人工智慧的應用。我們中的許多人可能都使用過 Replit,這是一款內建人工智慧功能的線上程式碼編輯器,可幫助生成程式碼並提供指導。同樣,像 GitHub Copilot for VS Code 這樣的工具也能透過簡單的擴充套件增強我們的編碼工作流程。如果你嘗試過 Black Box AI Cursor IDE,你就會知道內建的人工智慧輔助如何簡化你的工作。

想象一下,如果這些人工智慧工具可以接入任何資料來源–無論是本地檔案還是遠端服務–而無需為每個連線編寫自定義程式碼。這就是模型上下文協議(MCP)的承諾。

什麼是MCP?

MCP 是一種開放標準,可在資料和人工智慧工具之間建立安全的雙向連線。把它想象成人工智慧應用的 USB-C 埠–一個通用的聯結器,讓不同的工具和資料來源可以相互“對話”。

  • 對於開發人員:無需為每個新資料來源編寫自定義聯結器,您可以根據一個標準協議進行構建。
  • 對於人工智慧工具:有了 MCP,無論資訊儲存在哪裡,您的人工智慧模型都能準確訪問所需的資訊。

MCP為何重要?

隨著人工智慧助手成為我們日常工作流程的一部分(想想內建人工智慧的 Replit 或用於 VS Code GitHub Copilot),我們面臨的挑戰是如何確保它們擁有所需的所有上下文。如今,每個新的資料來源往往都需要定製程式碼,既雜亂又耗時。

MCP 透過以下方式簡化了工作:

  • 提供預建整合:不斷增加的即用聯結器庫。
  • 提供靈活性:在不同的人工智慧提供商之間輕鬆切換。
  • 增強安全性:最佳實踐確保您的資料在自己的基礎設施中保持安全。

在 Block,開源不僅僅是一種開發模式–它是我們工作的基礎,也是我們致力於創造能推動有意義變革的技術的承諾。像模型上下文協議這樣的開放技術,以一種可訪問、透明和協作的方式將人工智慧與現實世界的應用連線起來。— Dhanji R. Prasanna, CTO at Block

現實世界的影響和早期採用

早期採用者(如 Block 和 Apollo 等公司)已經將 MCP 整合到他們的系統中。此外, Zed、Replit、 Codeium Sourcegraph 等開發工具公司也在探索 MCP。這意味著人工智慧代理可以檢索到更多相關資訊,從而更好地理解編碼任務,從而以更少的迭代產生更高質量的程式碼。

MCP如何工作:簡單分解

MCP 客戶端如何訪問外部資源

Fig 1. MCP 客戶端如何訪問外部資源

MCP 採用客戶伺服器架構。這意味著

  • MCP 主機:它們是希望透過 MCP 訪問資料的程式(如 Claude Desktop 或流行的整合開發環境)。
  • MCP 客戶端:與 MCP 伺服器保持 1:1 連線的元件。
  • MCP 伺服器:暴露特定資料來源或工具的輕量級介面卡。
  • 本地資料來源:計算機的檔案、資料庫和服務。
  • 遠端服務:可透過網際網路訪問的外部系統(如 GitHub Slack)。

模型上下文協議的連線生命週期

Fig 2. 模型上下文協議的連線生命週期

1. 初始化

  • 客戶端傳送初始化請求,並提供協議版本和功能
  • 伺服器響應其協議版本和功能
  • 客戶端傳送初始化通知作為確認
  • 開始正常的資訊交換

2. 資訊交換

初始化後,支援以下模式:

  • 請求-響應(Request-Response):客戶端或伺服器傳送請求,對方做出響應
  • 通知:任一方傳送單向資訊

3. 終止

任何一方都可以終止連線:

  • 透過 close() 乾淨關閉
  • 斷開傳輸
  • 錯誤條件

觀看演示

專家怎麼說

亞歷克斯-阿爾伯特(@alexalbert__ X 網站上解釋得很清楚:

  • 挑戰:“讓 LLM 與外部系統互動通常並不那麼容易。如今,每個開發人員都需要編寫自定義程式碼,將他們的 LLM 應用程式與資料來源連線起來。這是一項雜亂無章的重複性工作”。
  • MCP 解決方案:“MCP 透過共享資源、工具和提示的標準協議解決了這個問題”。
  • MCP 的關鍵點:
    • 統一架構:使用相同的協議連線本地(資料庫、檔案)和遠端(API,如 Slack 或 GitHub)資源。
    • 超越資料共享:MCP 伺服器不僅可以公開資料,還可以公開工具(如 API 整合)和提示(模板化互動)。
    • 內建安全性:伺服器可控制自己的資源,無需與人工智慧提供商共享敏感的 API 金鑰。
    • 展望未來:雖然 MCP 目前只支援本地(伺服器在您的機器上執行),但具有企業級身份驗證功能的遠端伺服器支援即將推出。

開始使用MCP

MCP 設計用於快速設定。您可以在 5 分鐘內透過預置的 GitHub、Slack、SQL 資料庫、本地檔案和搜尋引擎等平臺的伺服器實現整合。

工具:讓人工智慧在現實世界中行動

MCP 中的工具允許伺服器公開可執行功能–把它們想象成專門的“操作按鈕”,人工智慧模型可以按下這些按鈕來執行任務、執行計算或與外部系統互動。有了工具,人工智慧不僅能理解資料,還能根據資料採取行動,成為連線想法與執行的強大橋樑。

什麼是工具?

  • 發現:客戶可以使用工具/列表端點發現可用的工具。這可以讓人工智慧知道它可以執行哪些操作。
  • 呼叫:透過 tools/call 端點呼叫工具。當人工智慧需要採取行動時,例如新增兩個數字或建立一個 GitHub 問題,它就會向相應的工具傳送請求,然後伺服器就會執行操作。
  • 靈活性:工具的範圍很廣,從簡單的任務(如基本計算器)到更復雜的操作(如與外部 API 整合)。

如何定義工具?

每個工具都有一個唯一的名稱、一個可選的人性化描述和一個 JSON 模式,該模式指定了工具所需的引數。例如:

最新成果

瞭解模型上下文協議 (MCP) 的最新進展:

2025-02-14: Java SDK釋出

我們很高興地宣佈,由 Spring AI 在 VMware Tanzu 開發的 Java SDK 現已成為 MCP 的官方 Java SDK。這一新成員加入了我們現有的 Kotlin SDK,Spring AI 團隊將把它作為 MCP 社羣的重要組成部分加以維護。

2025-01-27: Python SDK 1.2.1

MCP Python SDK 1.2.1 版本釋出,提供了重要的穩定性改進和錯誤修復。

2025-01-18: SDK 和伺服器改進

  • 在 TypeScript SDK 中引入了簡化的、類似快遞的 API。
  • 我們的客戶列表中新增了八個客戶。

2025-01-03: 更多 SDK 和伺服器改進

  • Python SDK 中新增了 FastMCP API。
  • 為了便於部署,MCP 伺服器在伺服器倉庫中進行了 docker 化。

2024-12-21: Kotlin SDK 釋出

JetBrains 為 MCP 推出了 Kotlin SDK!有關 MCP Kotlin 伺服器實現的示例,請檢視此資源庫。

有關這些更新的詳細資訊,請閱讀此處

未來發展

模型上下文協議在不斷發展。以下是我們 2025 年上半年的優先事項概覽:

  • 遠端 MCP 支援:透過改進的身份驗證(OAuth 2.0)、服務發現以及對無伺服器、無狀態操作的支援,實現安全的遠端連線。
  • 參考實施:提供全面的客戶端示例和簡化的流程,以便提出新的協議功能,幫助開發人員使用 MCP 進行構建。
  • 分發與發現:透過標準化包裝、簡化安裝、增強安全性的沙盒以及集中式伺服器登錄檔,使 MCP 伺服器更易於訪問。
  • 代理支援:透過更好地支援分層代理系統、互動式工作流和長期執行操作的即時流,擴充套件複雜工作流的功能。
  • 更廣泛的生態系統:投資於社羣主導的標準,擴大對音訊和影片等新模式的支援,並探索正式的標準化。

技術術語表

  • JSON(JavaScript 物件符號):一種輕量級、易讀的格式,用於在系統間交換資料。它看起來類似於日常語言中的列表或字典。
  • OAuth(開放授權):應用程式訪問其他網站上的資訊而無需提供密碼的一種方式。可以將其視為線上服務的代客鑰匙。
  • API(應用程式設計介面):讓不同軟體應用程式相互通訊的一套規則。它就像服務員為你點餐和送餐,只不過這裡是傳送和接收資料。
  • 客戶端-伺服器架構: 一種計算模式,客戶端(如網路瀏覽器或應用程式)向伺服器(儲存資料的強大計算機)傳送請求,然後伺服器傳送回您需要的資訊或服務。
  • MCP(模型上下文協議):一種開放標準,為人工智慧工具和資料來源提供通用聯結器,類似於 USB-C 埠,可讓不同裝置使用同一根電纜連線。
  • OAuth 2.0:OAuth 的最新版本,被廣泛用於在不共享密碼的情況下,安全地授予第三方應用程式有限的線上賬戶訪問許可權。
  • Stdio(標準輸入/輸出):在同一臺機器上執行的程式透過讀取輸入和寫入輸出進行通訊的一種方式,類似於你與附近的人使用對講機的方式。
  • SSE(伺服器傳送事件):一種允許伺服器透過單一連線向網路客戶端傳送自動即時更新的技術,就像在手機上接收即時新聞更新一樣。

小結

MCP 正在為人工智慧無縫訪問任何資料來源的未來鋪平道路,使整合更簡單、更安全、更高效。正如 USB-C 埠提供了一種通用方式,可以用同一根線纜連線手機、筆記型電腦和平板電腦等裝置,MCP 也是人工智慧工具和資料來源的通用聯結器。

想象一下您在日常生活中如何使用熟悉的連線:

  • 家庭 Wi-Fi:就像您的路由器可以讓您的所有裝置連線並共享資訊,而無需為每臺裝置配備專用電纜一樣,MCP 允許不同的人工智慧應用使用一個標準協議連線各種資料來源。
  • 電源插座:把 MCP 想象成一個標準化的電源插座,讓您可以插入任何裝置,無論它是在哪裡製造的。同樣,MCP 可使人工智慧系統與各種資料來源(無論是本地檔案、資料庫還是遠端服務)協同工作,而無需每次都進行獨特的整合。

透過用一個通用協議取代繁雜的自定義聯結器,MCP 將成為更智慧、更互聯的人工智慧系統的支柱。這不僅能簡化開發人員的技術工作,還能透過更強大、更能感知上下文的人工智慧工具豐富我們的日常體驗。

評論留言