成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速上手:Anthropic MCP 協議規范

發布于 2025-3-20 07:28
瀏覽
0收藏

本文整理了MCP的基本協議規范,包括協議架構、協議基本消息類型、協議生命周期管理、協議的傳輸層

1. 協議之架構

1.1 基本組件

1.2 基本消息類型

1.3 能力協商

2. 協議規范之基本消息類型

2.1 Requests(消息請求)

2.2 Responses(消息應答)

2.3 Notifications(通知)

2.4 舉例:Client獲取Server Tool列表

3. 協議規范之生命周期管理

3.1 Initialization(初始化):

3.2 Operation(操作)

3.3 Shutdown(關閉)

4. 協議規范之傳輸層

5. 參考


整個規范,可以分幾個大塊來了解:協議架構、協議基本消息類型、協議生命周期管理、協議的傳輸層

快速上手:Anthropic MCP 協議規范-AI.x社區

1. 協議之架構

Model Context Protocol (MCP) 采用 client-host-server 架構,每個 host 可以運行多個client實例。

這種架構使用戶能夠在各個應用程序中集成人工智能能力,同時保持清晰的安全邊界并隔離關注點。

MCP 基于 JSON-RPC 構建,提供了一種有狀態的會話協議,專注于上下文交換和 clients 與servers之間的采樣協調。

JSON-RPC 2.0 規范: ???https://www.jsonrpc.org/specification??

1.1 基本組件

快速上手:Anthropic MCP 協議規范-AI.x社區

Host

Host進程充當容器和協調者(比如Cline,cursor等):

  • 創建和管理多個客戶端實例
  • 控制客戶端連接權限和生命周期
  • 協調 AI/LLM 集成和采樣
  • 管理Clients之間的上下文聚合

Clients

每個客戶端由Host創建,并保持一個獨立的 server 連接(比如由Cline代碼內嵌的SDK Client):

  • 和每個 server 建立一個有狀態的會話
  • 處理協議協商和能力交換
  • 雙向路由協議消息
  • 管理訂閱和通知
  • 維護 servers 之間的安全邊界

host 應用程序創建并管理多個 clients,每個 client 與特定 server 之間具有一對一的關系。

Servers

server 提供專業的上下文和能力:

  • 通過 MCP 原語暴露resources、tools 和prompts
  • 通過client 提供的接口請求sampling
  • 可以是本地進程或遠程服務

1.2 基本消息類型

MCP 定義了基于 JSON-RPC 2.0 的三種核心消息類型:

  • Requests: 雙向消息,帶有方法和參數,期望有響應
  • Responses: 匹配特定請求 ID 的成功結果或錯誤
  • Notifications: 無需回復的單向消息

1.3 能力協商

Model Context Protocol 使用了一種基于能力(capability-based)的協商機制,在初始化階段,clients和servers會明確聲明它們支持的功能,而這些能力決定了在會話期間可以使用哪些協議特性和原語(primitives)

快速上手:Anthropic MCP 協議規范-AI.x社區


2. 協議規范之基本消息類型

所有在 MCP clients 和 servers 之間的消息必須遵循 JSON-RPC 2.0 規范。該協議定義了三種基本類型的消息:

消息類型

描述

約束

??Requests??

用于具體操作的消息,比如查詢所有Tool、調用Tool等,支持的所有類型詳見2.1.1

必須包含唯一的 ID 和方法名稱

??Responses??

應答??Requests??

必須包含與請求相同的 ID

??Notifications??

單向消息,不需要回復

不得包含 ID

2.1 Requests(消息請求)

??Requests??可以從Client端或者Server端發起

格式要求:

{
  jsonrpc: "2.0";
  id: string | number;
  method: string;
  params?: {
    [key: string]: unknown;
  };
}
  • 請求必須包含一個字符串或整數類型的 ID。
  • ID 不能為??null?? 。
  • 請求 ID 在同一會話中不得被請求者之前使用過。

2.1.1 Requests的關鍵業務類型:

Request method

發起方

響應方

描述

initialize

Client

Server

初始化會話

tools/list

Client

Server

發現可用的工具

tools/call

Client

Server

調用工具

resources/list

Client

Server

發現可用的資源

resources/read

Client

Server

要獲取資源內容

resources/templates/list

Client

Server

發現可用的參數化資源

resources/subscribe

Client

Server

以訂閱特定資源,并在其發生變化時接收通知

prompts/list

Client

Server

發現可用的提示詞

prompts/get

Client

Server

要獲取特定的提示詞

roots/list

Server

Client

列出Server有權限訪問Client的文件系統Root節點,暴露目錄和文件

sampling/createMessage

Server

Client

使Server能夠利用 AI 能力的生成能力

2.2 Responses(消息應答)

??Responses??是對requests的回復。

格式要求:

{
  jsonrpc: "2.0";
  id: string | number;
  result?: {
    [key: string]: unknown;
  }
  error?: {
    code: number;
    message: string;
    data?: unknown;
  }
}
  • Responses 必須包含與其對應 request 相同的 ID。
  • 必須設置??result?? 或??error?? 之一。不得同時出現。
  • 錯誤代碼必須是整數。

2.3 Notifications(通知)

??Notifications??是從client 發送到server 或反向發送的。不需要回復。

格式要求:

{
  jsonrpc: "2.0";
  method: string;
  params?: {
    [key: string]: unknown;
  };
}

通知不得包含 ID。

2.4 舉例:Client獲取Server Tool列表

快速上手:Anthropic MCP 協議規范-AI.x社區

要查詢可用的工具,Client發送一個 ??tools/list?? 請求

Request(請求)

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {
    "cursor": "optional-cursor-value"
  }
}

Response(響應)

{
  "jsonrpc": "2.0",
"id": 1,
"result": {
    "tools": [
      {
        "name": "get_weather",
        "description": "Get current weather information for a location",
        "inputSchema": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "City name or zip code"
            }
          },
          "required": ["location"]
        }
      }
    ],
    "nextCursor": "next-page-cursor"
  }
}

3. 協議規范之生命周期管理

MCP定義了client-server連接的嚴格生命周期,確保了能力協商和狀態管理。

快速上手:Anthropic MCP 協議規范-AI.x社區

  1. Initialization(初始化): 能力協商和協議版本一致
  2. Operation(操作): 正常的協議通信
  3. Shutdown(關閉): 連接的優雅關閉

3.1 Initialization(初始化):

初始化階段必須是 client 和 server 之間的第一次交互。在此階段,client 和 server確定協議版本兼容性、交換和協商各自的能力、分享實施細節。

由client 發送一個包含 ??initialize?? 請求來啟動此階段,包含:

  • 支持的協議版本
  • Client 能力
  • Client 信息

{
  "jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {
      "roots": {
        "listChanged": true
      },
      "sampling": {}
    },
    "clientInfo": {
      "name": "ExampleClient",
      "version": "1.0.0"
    }
  }
}

server 必須響應其自身的能力和信息:

{
  "jsonrpc": "2.0",
"id": 1,
"result": {
    "protocolVersion": "2024-11-05",
    "capabilities": {
      "logging": {},
      "prompts": {
        "listChanged": true
      },
      "resources": {
        "subscribe": true,
        "listChanged": true
      },
      "tools": {
        "listChanged": true
      }
    },
    "serverInfo": {
      "name": "ExampleServer",
      "version": "1.0.0"
    }
  }
}

成功初始化后,client 必須發送一個 ??initialized?? 通知以表明它已準備好開始正常操作:

{
  "jsonrpc": "2.0",
  "method": "notifications/initialized"
}

3.1.1 版本協商

在 ??initialize?? 請求中,client 必須發送其支持的協議版本。這應該是client 支持的最新版本。

如果server支持請求的協議版本,則必須以相同的版本進行響應。否則,server必須以其支持的其他協議版本進行響應。這應該是server支持的最新版本。

如果client 不支持server響應中的版本,則應該斷開連接。

3.1.2 能力協商

client 和server 在會話期間將提供哪些可選的協議功能。

關鍵能力包括:

類別

能力

描述

Client

??roots??

提供文件系統根目錄的能力

Client

??sampling??

支持LLM采樣請求

Client

??experimental??

描述對非標準實驗特性的支持

Server

??prompts??

提供提示模板

Server

??resources??

提供可讀的資源

Server

??tools??

公開可調用的工具

Server

??logging??

發出結構化日志消息

Server

??experimental??

描述對非標準實驗特性的支持

3.2 Operation(操作)

在操作階段,client 和 server 根據協商的能力交換消息。

遵守協商的協議版本

僅使用成功協商的能力

3.3 Shutdown(關閉)

在關閉階段,連接被優雅地終止。

client 發送斷開連接通知

server 關閉連接

清理相關資源

4. 協議規范之傳輸層

MCP 目前定義了兩種標準的 client-server通信傳輸機制:stdio(標準輸入輸出)和基于 SSE 的 HTTP。客戶端應盡可能支持 stdio。

此外,客戶端和服務器也可以以可插拔的方式實現自定義傳輸機制。

5. 參考

??https://spec.modelcontextprotocol.io/specification/2024-11-05/??

本文轉載自??AI取經路??,作者:AI取經路


收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 一本一道久久a久久精品蜜桃 | 水蜜桃久久夜色精品一区 | 亚洲一区二区在线视频 | 久久精品二区 | 天堂va在线观看 | 免费一区二区三区在线视频 | 亚洲国产欧美一区 | 亚洲欧洲小视频 | 一区在线观看 | 久久免费精品 | 午夜爱爱毛片xxxx视频免费看 | 玖玖操 | 毛片黄片免费看 | 久久精品在线免费视频 | 毛片1| 天天爱综合 | 国产丝袜一区二区三区免费视频 | 麻豆久久久久久 | 久久久精| 国产精品视频网 | 九九久久精品 | 日本一区二区在线视频 | 欧美福利久久 | 91xxx在线观看 | 福利片在线 | 国产一区二区自拍 | 久久综合婷婷 | 综合国产 | 精品在线一区二区三区 | 亚洲一级av毛片 | 免费黄篇| 亚洲九色 | 黄色毛片网站在线观看 | 国产高清在线视频 | 日韩av一区二区在线观看 | 日韩一区二区三区在线观看 | 亚洲精品国产第一综合99久久 | 在线播放国产视频 | 国产精品国产三级国产aⅴ中文 | 久久久久久看片 | 欧美日韩精品区 |