跳至內容

模型上下文協議

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
模型上下文協議
開發單位Anthropic
規範發布2024年11月25日 (2024-11-25)
官方網站modelcontextprotocol.io 編輯維基數據鏈接

模型上下文協議(英語:Model Context Protocol,縮寫:MCP)是Anthropic所推動的一項開放標準[1],目的是為大型語言模型應用提供一個標準化接口,使其能夠連接外部數據源和工具,並與其交互[2]

MCP的目標在克服大型語言模型應用僅依賴其訓練數據的局限性,使其能夠獲取所需的上下文信息,以執行更廣泛的任務。MCP通過定義一套通用的準則和格式,使得大型語言模型應用可以在需要時動態地獲取相關信息、執行操作,從而增強其功能和使用範圍。

概述

[編輯]
MCP客戶端與服務器的關係

模型上下文協議的核心在於建立一個標準化的通信層,使得大型語言模型能夠在處理用戶請求或執行任務時,如果需要訪問外部信息或功能,可以通過MCP客戶端向MCP服務器發送請求。MCP服務器則負責與相應的外部數據源或工具進行交互,獲取數據並按照MCP協議規範進行格式化,最後將格式化後的數據返回給大型語言模型。大型語言模型接收到上下文信息後,可以將其用於生成更準確、更相關的回覆,或者執行用戶請求的操作。

核心概念

[編輯]
  • 協議規範(Protocol Specification): 定義了客戶端和服務器端之間通信的規則、數據格式、請求和響應結構以及錯誤處理機制。[3]
  • MCP客戶端(MCP Client): 在 LLM或其服務基礎設施端的實現,負責構建請求並發送給MCP服務器。Anthropic 提供了多種編程語言(如Python、TypeScript和Java)的SDK,以簡化MCP客戶端的開發。[4]
  • MCP服務器(MCP Server): 在外部系統端的實現,接收來自MCP客戶端的請求,與實際的數據源或工具進行交互,並將獲取的數據按照MCP協議規範格式化後返回給客戶端。
  • 上下文信息交換(Contextual Information Exchange): 促進大型語言模型與外部系統之間上下文信息的雙向交換。
  • 能力協商(Capability Negotiation): 允許客戶端和服務器在通信開始時確定彼此支持的功能和協議版本。[5]

技術細節

[編輯]

模型上下文協議 的技術實現旨在為大型語言模型應用與外部數據源和工具之間的無縫集成提供標準化的方法。[2] 該協議基於JSON-RPC 2.0消息格式,建立狀態連接,並支持服務器和客戶端的能力協商。[2]

基礎協議

[編輯]

MCP的核心通信協議基於JSON-RPC 2.0消息格式。[6] 這是一種輕量級的遠程過程調用協議,使用JSON作為數據格式。[6] MCP連接是狀態化的,允許在連接的生命周期內進行多次請求和響應。[2] 協議還支持 服務器和客戶端的能力協商,使得雙方在通信開始時可以確定彼此支持的功能。[2]

通信方式

[編輯]

MCP使用JSON-RPC 2.0消息在主機(發起連接的大型語言模型應用)、[2] 客戶端(主機應用內的連接器)[2] 和服務器(提供上下文和能力的外部服務)[2] 之間建立通信。[2]

服務器功能

[編輯]

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

  • 資源(Resources): 供用戶或 AI 模型使用的上下文和數據。[2]
  • 提示(Prompts): 供用戶使用的模板化消息和工作流。[2]
  • 工具(Tools): 供 AI 模型執行的函數。[2]

客戶端功能

[編輯]

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

  • 採樣(Sampling): 服務器發起的代理行為和遞歸 LLM 交互。[2]

附加實用工具

[編輯]

MCP 還定義了以下附加實用工具,以增強協議的功能:

  • 配置(Configuration)[2]
  • 進度跟蹤(Progress tracking)[2]
  • 取消(Cancellation)[2]
  • 錯誤報告(Error reporting)[2]
  • 日誌記錄(Logging)[2]

應用場景

[編輯]

MCP可以應用於增強型AI助手、知識管理系統、客戶服務聊天機器人、內容創作工具、軟件開發、金融分析和醫療保健等領域。[7][8]

參見

[編輯]

參考資料

[編輯]

外部連結

[編輯]