MCP介紹

AI 的信息每天都在更新,最近比較受歡迎的叫MCP(Model Context Protocol,模型上下文協議)是一種由Anthropic於2024年11月推出的開源標準化協議,旨在簡化大型語言模型(LLM)與外部數據源和工具的互動。MCP伺服器作為該協議的核心組成部分,是一個獨立的程式,負責向LLM提供特定的功能或數據,例如存取檔案系統、資料庫(如PostgreSQL)、外部API(如GitHub、Slack)或執行特定任務(如搜尋、操作日曆)。它的設計理念類似於HTTP協議之於網頁應用,提供了一個統一的「連接器」,讓LLM能夠輕鬆與外部世界互動。

MCP伺服器如何與LLM互動?

MCP採用客戶端-伺服器架構,具體互動流程如下:

  1. 初始化與發現:當MCP客戶端(如Claude Desktop或支援MCP的應用程式)啟動時,它會連接到本機或遠端的MCP伺服器,並詢問伺服器提供的功能(即工具清單)。
  2. 工具註冊:伺服器回應可用工具(如「查詢資料庫」、「獲取當前時間」),客戶端將這些工具註冊到LLM的上下文中。
  3. 需求觸發:當用戶向LLM提出問題或任務(例如「幫我檢查GitHub上的最新提交」),LLM識別出需要外部數據,隨即透過MCP客戶端向對應的MCP伺服器發送請求。
  4. 執行與回饋:MCP伺服器執行任務(例如調用GitHub API),將結果返回給客戶端,LLM再根據結果生成回應。
  5. 雙向通信:與傳統API不同,MCP支援雙向互動,伺服器甚至可以反向利用客戶端的AI能力(例如生成內容),無需額外的API金鑰。

這種標準化互動讓LLM突破訓練數據的限制,實現即時、動態的功能擴展。

用戶的優勢

MCP伺服器為用戶帶來了多方面的便利:

  • 統一整合:無需為每個外部工具開發獨立的整合程式,MCP提供了一個通用的介面,減少開發時間與成本。
  • 靈活性:用戶可以根據需求啟動不同的MCP伺服器,例如連接到個人Google Drive或企業級資料庫,隨時切換LLM提供者(如從Claude換到其他模型)而無需重寫程式碼。
  • 即時性:透過MCP,LLM能存取最新數據(例如天氣、股票價格),解決傳統模型知識過時的問題。
  • 可擴展性:隨著MCP生態系統成長,用戶可從開源社區獲取現成的伺服器(例如Cloudflare、Discord整合),直接應用於自己的工作流。
  • 個人化體驗:MCP伺服器能根據用戶的特定數據(如個人日曆、聊天記錄)提供量身定制的回應。

性能與安全的區別

MCP伺服器在性能與安全方面的設計與傳統方法有明顯差異:

  • 性能:
    • 優勢:MCP伺服器通常運行於本機或私有雲端,減少了遠端API調用的延遲,提升回應速度。雙向通信也讓互動更高效,避免單向請求的多次往返。
    • 挑戰:由於目前多數MCP實現以本機為主,對於需要高吞吐量的企業應用,擴展性可能受限。遠端部署尚在發展中,可能需要額外的基礎設施支持。
  • 安全:
    • 優勢:MCP內建權限控制,每次工具使用需用戶明確授權,確保LLM不會未經許可存取敏感數據。此外,數據傳輸支援TLS加密,符合企業級安全標準。
    • 挑戰:與傳統API相比,MCP的雙向通信增加了伺服器端的安全管理複雜性,例如防止惡意伺服器利用客戶端AI能力。開發者需自行配置防火牆、身份驗證等額外措施。

個人資料如何保護?

MCP在設計上非常重視個人資料的隱私與安全,提供多層保障:

  • 本地優先:大多數MCP伺服器預設運行於用戶設備上,數據無需上傳至雲端,降低了洩露風險。
  • 明確授權:每次LLM調用MCP伺服器工具時,系統會提示用戶確認,確保敏感操作(如讀取檔案、發送郵件)在掌控之中。
  • 模組化控制:伺服器功能被限制在明確定義的工具範圍內,LLM無法隨意存取未授權的數據。例如,一個GitHub MCP伺服器只能存取指定的儲存庫,而非整個帳戶。
  • 加密與日誌:數據傳輸使用TLS加密,同時支援集中式日誌記錄,讓企業用戶能追蹤所有AI存取行為,符合合規性需求(如GDPR、HIPAA)。
  • 開源透明:作為開源協議,用戶和開發者可審查MCP伺服器的程式碼,確保無隱藏的後門或數據收集行為。

那究竟如何用呢,我剛剛在網上看到了一個使用Cherry Studio + MCP的 教學,這還是公測版,目前LLM studio 和ollama 還是未能支持MCP的

https://mp.weixin.qq.com/s/a8XlAw4wrdJpKGVUWneaqg

https://github.com/punkpeye/awesome-mcp-servers?tab=readme-ov-file

這是一個例子,可以根據用戶指令去幹事,這裡可以看到你可以拼接不同的服務到大模型或者不同的大模型API 上去,那就不用擔心處理的不夠好。找個時間測試一下。