阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

由 Anthropic 於 2024 年 11 月為其 Claude AI 啟動。 MCP(模型上下文協議)已佔領人工智慧世界。

從 OpenAI 和 Neon 到 Cloudflare 和 Sentry,每個人都在嘗試建立自己的MCP 伺服器。讓我們深入了解 MCP 或模型上下文協定。

  • 模型:指大型語言模型或人工智慧模型

  • 上下文:資料或相關資訊(提供給人工智慧模型)

  • 協議:一組規則或標準。

因此,MCP 成為我們用來向大型語言模型提供上下文或相關資訊的一套標準。 Anthropic 將其描述為 AI 模型的 USB-C 連接埠——一種通用的連接和互動方式。

為什麼是 USB-C?

USB-C 類比

還記得我們以前用過的各種各樣的充電器和電纜嗎? USB-C 簡化了這一切。一個連接埠幾乎可以連接所有東西——電源、資料、顯示器等等。這是一個通用標準。

MCP 的目標是為 AI 實現相同的目標。每個 AI 工具不需要與每個資料來源建立獨特的客製化連接(想像一下將 10 個不同的 AI 模型連接到 20 個不同的工具——那就是 200 個客製化整合!),MCP 為它們建立了一種標準的通訊方式。這將“M x N”問題轉變為更簡單的“M + N”設定。

MCP 如何運作?

圖片描述

圖片來源modelcontextprotocol.io

  1. 主機:這通常是您的 AI 應用程式,例如 IDE(例如 Zed、VS Code 或 Cursor)或桌面 AI 應用程式(例如 Claude Desktop)。主人是管理者,監督一切。

  2. MCP 用戶端:在主機內部,您有客戶端。將它們視為專用通訊線路。每個客戶端連接到一個特定的 MCP 伺服器。

  3. MCP 伺服器:這些是網關。伺服器位於特定資料來源之前,例如本公司的文件磁碟機、程式碼儲存庫或資料庫,或網路搜尋功能等工具。它知道如何與特定係統對話並使用 MCP 規則展示其功能。

這些元件使用 JSON-RPC 2.0 進行通信,這只是一種使用 JSON 來回發送訊息的結構化方式。無論客戶端或伺服器由誰建置,這都能保持通訊清晰和一致。

他們之間能交換什麼樣的「語境」?

MCP 使用三個主要建構塊(稱為「原語」)來標準化來回傳遞的內容

  1. 資源:這是伺服器可以提供給 AI 的結構化資料。想想程式碼片段、文件的各個部分或資料庫結果——任何可以加入事實背景的東西。通常,應用程式控制何時提供資源。

  2. 提示:這些是伺服器可以提供的預製說明或範本。想像一下儲存用於總結文字或以特定樣式產生程式碼的提示。通常,用戶會選擇何時使用這些。

  3. 工具:這些是 AI 可以要求伺服器執行的實際操作(通常首先需要您的同意!)。這些包括查詢資料庫、搜尋網絡,甚至發送電子郵件。人工智慧模型通常會決定何時需要工具。

透過標準化這些,任何使用 MCP 的 AI 都可以了解如何透過任何相容的 MCP 伺服器請求資料(資源)、使用預設指令(提示)或執行操作(工具)。

本地設定與雲端存取:本地和遠端伺服器

那麼,這些 MCP 伺服器在哪裡運作?有兩種方法:

  1. 本機 MCP 伺服器:這些伺服器在您的電腦上執行,通常與主機應用程式(如您的 IDE)一起執行。您可以自行設定它們,為它們提供 API 金鑰,然後它們會直接從您的機器上的用戶端監聽請求。他們經常使用直接通訊管道(stdio - 標準輸入/輸出)。非常適合在本地工作的開發人員。

  2. 遠端 MCP 伺服器:這些伺服器位於雲端。您通常在線上連接到它們,通常使用安全登入方法,例如 OAuth。它們使用 Web 協定(SSE/HTTP - 伺服器發送事件和標準 Web 請求)進行通訊。

  • 為什麼要遠程?最終用戶無需進行任何設定 - 只需登入!它們很容易更新,而且至關重要的是,它們允許基於網路的人工智慧代理存取工具和資料,而不僅僅是本地桌面應用程式。

  • Vercel 和 Cloudflare 允許託管遠端或基於伺服器的 MCP,從而更容易根據需要進行部署和變更。

溝通管道:傳輸類型

訊息實際上是如何在客戶端和伺服器之間傳輸的?這就是「傳輸層」。 MCP 在這裡很靈活(與傳輸無關),但兩種常見的方式與我們的本地與遠端理念相關:

  • 標準輸入/輸出(stdio) :非常適合本機伺服器。訊息在同一台機器上執行的客戶端和伺服器進程之間直接傳遞。簡單、直接、無需網路。

  • 伺服器發送事件 (SSE) / HTTP遠端伺服器的首選。伺服器使用高效的 SSE 流向客戶發送訊息,用戶端使用標準 HTTP 請求伺服器發送訊息。可透過網路和防火牆工作。

因此,MCP 定義了什麼(原語)和如何(JSON-RPC 結構),而傳輸層提供了路徑(本地的 stdio,遠端的 SSE/HTTP)。

MCP 中的安全性

模型情境協定 (MCP) 雖然有望實現 AI 代理互通性,但也帶來了重大的安全挑戰,使用者和開發人員必須主動應對,因為它預設缺乏強大的安全治理。

核心安全問題:

  • 缺乏固有安全性:MCP 本身並未執行嚴格的安全措施。建構安全層的責任主要落在實施者身上。

  • 工具中毒:惡意行為者可以透過向人工智慧提供的工具描述或上下文資料注入有害的指令或命令。如果沒有適當的驗證和清理,人工智慧可能會在不知不覺中執行這些指令。

  • 將敏感資料提供給另一個工具:當人工智慧助理可以存取多個工具時,這是一個很大的風險。惡意或受感染的工具可能會誘騙人工智慧使用另一個更具權限的工具的權限,在未經適當授權或用戶不知情的情況下存取或洩露敏感資料。

本地與遠端伺服器風險:

  • 本機伺服器:由於它們通常以使用者級權限執行,授予對本機檔案、網路和系統資源的存取權限,因此具有很高的風險。它們對於有效地沙盒來說可能具有挑戰性,類似於執行不受信任的桌面應用程式所帶來的風險。

  • 遠端伺服器:引入基於網路的攻擊媒介(如中間人)、資料外洩問題以及與安全身份驗證、授權和 API 金鑰管理相關的挑戰。

解決這些風險需要深思熟慮的策略,例如將每個工具視為具有最低必要權限的不同安全邊界。並實施像 OAuth 這樣的強大控制,特別是針對遠端伺服器,並遵守本地伺服器的最小特權原則。

雖然 MCP 是一種強大且穩健的基礎協議,但它不應被視為「開箱即用」的安全協議。開發人員和使用者必須保持警惕並實施全面的安全措施來減輕固有風險。

MCP 的一些用例

  • IDE 中的更聰明的編碼助理:MCP 允許整合開發環境 (IDE) 中的 AI 編碼助理直接連接到您的特定程式碼庫、文件和相關工具。

  • 超語境企業聊天機器人:企業可以建立能夠安全利用內部知識庫的助手,而不是通用聊天機器人。

  • 更強大的 AI 助理:AI 應用程式可以使用 MCP 安全地與電腦上的本機檔案、應用程式和服務進行互動。

總結

MCP 正在建立一種通用語言和即插即用標準,用於將 AI 模型連接到資料和工具世界。透過簡化這些連接、確保其安全性並標準化資訊交換方式,它為跨桌面、IDE 和 Web 的更聰明、更強大、真正有用的 AI 助理鋪平了道路。

了解有關 MCP 的更多資訊的額外資源:

您可以在此處了解如何在 Cursor 中設定 MCP:

https://dev.to/apideck/unlocking-ais-potential-how-to-quickly-set-up-a-cursor-mcp-server-4bk1

感謝您的閱讀

我真心希望它對你有價值。我正在撰寫更多類似的帖子,並研究一些更有趣的想法,我很高興很快就與大家分享。

我不斷分享內容,幫助您發現新工具、開源專案、人工智慧工具、人工智慧概念分解等。

  • 在 DEV 上關注我: @srbhr - 獲取有關我的最新文章和教程的通知。

  • 在 GitHub 上關注我: SRBHR - 探索我正在建立或貢獻的精彩開源專案。

再次感謝您的閱讀!


原文出處:https://dev.to/apideck/beginners-guide-to-the-model-context-protocol-mcp-323h


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!