規範(草案)

協議版本: 草案

模型上下文協議(MCP)是一個開放協議, 使 LLM 應用程序與外部數據源和工具之間能夠無縫集成。無論您是在構建 AI 驅動的IDE、 增強聊天界面,還是創建自定義 AI 工作流,MCP 都提供了一種標準化的方式將 LLM 與所需的上下文連接起來。

本規範定義了權威的協議要求,基於 schema.ts 中的 TypeScript 架構。

有關實現指南和示例,請訪問 mcpcn.com

本文檔中的關鍵詞"必須"、“禁止”、“要求”、“應當”、“不應當”、“應該”、“不應該”、 “推薦”、“不推薦”、“可以"和"可選"應按照 BCP 14 [RFC2119] [RFC8174] 中的描述進行解釋, 當且僅當它們以全大寫形式出現時,如此處所示。

概述

MCP 為應用程序提供了一種標準化的方式來:

  • 與語言模型共享上下文信息
  • 向 AI 系統暴露工具和功能
  • 構建可組合的集成和工作流

該協議使用 JSON-RPC 2.0 消息在以下組件之間建立通信:

  • 主機:啟動連接的 LLM 應用程序
  • 客戶端:主機應用程序內的連接器
  • 服務器:提供上下文和功能的服務

MCP 從語言服務器協議獲得了一些靈感, 該協議標準化瞭如何在整個開發工具生態系統中添加對編程語言的支持。類似地, MCP 標準化瞭如何將額外的上下文和工具集成到 AI 應用程序的生態系統中。

關鍵細節

基礎協議

  • JSON-RPC 消息格式
  • 有狀態連接
  • 服務器和客戶端能力協商

功能

服務器向客戶端提供以下任何功能:

  • 資源:用戶或 AI 模型使用的上下文和數據
  • 提示:為用戶提供的模板化消息和工作流
  • 工具:AI 模型可以執行的函數

客戶端可以向服務器提供以下功能:

  • 採樣:服務器發起的智能行為和遞歸 LLM 交互

附加實用工具

  • 配置
  • 進度跟蹤
  • 取消
  • 錯誤報告
  • 日誌記錄

安全性與信任和安全

模型上下文協議通過任意數據訪問和代碼執行路徑啟用強大的功能。 這種能力帶來了重要的安全和信任考量,所有實施者必須仔細處理。

關鍵原則

  1. 用戶同意和控制

    • 用戶必須明確同意並理解所有數據訪問和操作
    • 用戶必須保留對共享哪些數據和採取哪些行動的控制權
    • 實施者應提供清晰的用戶界面,用於審查和授權活動
  2. 數據隱私

    • 主機必須在向服務器暴露用戶數據之前獲得明確的用戶同意
    • 未經用戶同意,主機不得將資源數據傳輸到其他地方
    • 用戶數據應受到適當訪問控制的保護
  3. 工具安全

    • 工具代表任意代碼執行,必須謹慎對待
    • 主機必須在調用任何工具之前獲得明確的用戶同意
    • 用戶應在授權使用之前瞭解每個工具的功能
  4. LLM 採樣控制

    • 用戶必須明確批准任何 LLM 採樣請求
    • 用戶應控制:
      • 是否進行採樣
      • 將發送的實際提示
      • 服務器可以看到哪些結果
    • 該協議有意限制服務器對提示的可見性

實施指南

雖然 MCP 本身不能在協議級別強制執行這些安全原則,但實施者應該

  1. 在其應用程序中構建健壯的同意和授權流程
  2. 提供清晰的安全影響文檔
  3. 實施適當的訪問控制和數據保護
  4. 在其集成中遵循安全最佳實踐
  5. 在其功能設計中考慮隱私影響

瞭解更多

探索每個協議組件的詳細規範: