MCP Specification · 2026-07-28 · zh-TW
進度
Progress
以 progressToken 與 notifications/progress 回報長時間操作的進度。
Model Context Protocol(MCP)可以透過 notification message,為長時間執行的操作提供選用的進度追蹤。伺服器 MAY(可以)針對用戶端送出的請求傳送進度通知。
進度流程
如果用戶端希望接收某個請求的進度更新,它會在 request metadata 中加入 progressToken:
- progress token MUST(必須)是字串或整數。
- 用戶端可以自行決定 token 的產生方式,但 token 在所有有效請求之間 MUST(必須)唯一。
{
"jsonrpc": "2.0",
"id": 1,
"method": "some_method",
"params": {
"_meta": {
"progressToken": "abc123"
}
}
}
伺服器之後 MAY(可以)送出進度通知,包含:
- 原始
progressToken - 目前的
progress值 - 選用的
total值 - 選用的
message值
{
"jsonrpc": "2.0",
"method": "notifications/progress",
"params": {
"progressToken": "abc123",
"progress": 50,
"total": 100,
"message": "Reticulating splines..."
}
}
progress值在每一次通知中都 MUST(必須)增加,即使不知道總量也一樣。progress與totalMAY(可以)是浮點數。messageSHOULD(應該)提供與目前進度相關、可供人閱讀的資訊。
行為要求
- 進度通知 MUST(必須)只指向由有效請求提供,而且仍對應進行中操作的 token。
- 伺服器收到帶有 progress token 的請求後,仍 MAY(可以)完全不送出進度通知,也可以自行決定通知頻率;若不知道總量,可以省略
total。
典型流程是:用戶端送出帶有 progress token 的 request;伺服器在操作期間送出一連串 notifications/progress;操作完成後,再送出最終 method response。
實作注意事項
- 用戶端與伺服器 SHOULD(應該)追蹤目前有效的 progress token。
- 雙方 SHOULD(應該)實作 rate limiting,避免通知造成 flooding。
- 操作完成後,進度通知 MUST(必須)停止。