Skip to content

Progress

Documentation Index

完全なドキュメント索引は modelcontextprotocol.io/llms.txt で取得してください。 さらに調べる前に、このファイルを使って利用可能なすべてのページを見つけてください。

Model Context Protocol (MCP) は、長時間実行される操作について、notification メッセージを通じた任意の進捗追跡をサポートしています。どちらの当事者も progress notification を送信して、操作状態の更新を提供できます。

Progress Flow

ある当事者が request に対する進捗更新を受け取りたい場合、その request の metadata に progressToken を含めます。

  • progress token は文字列または整数値でなければなりません (MUST)。
  • progress token は送信側が任意の方法で選んでかまいませんが、すべての active request の間で一意でなければなりません (MUST)。
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "some_method",
  "params": {
    "_meta": {
      "progressToken": "abc123"
    }
  }
}

受信側は、その後、次の内容を含む progress notification を送信してもかまいません (MAY)。

  • 元の progress token
  • 現時点までの progress 値
  • 省略可能な total
  • 省略可能な message
{
  "jsonrpc": "2.0",
  "method": "notifications/progress",
  "params": {
    "progressToken": "abc123",
    "progress": 50,
    "total": 100,
    "message": "Reticulating splines..."
  }
}
  • progress 値は、total が不明であっても、notification のたびに増加しなければなりません (MUST)。
  • progress 値と total 値には浮動小数点数を使ってもかまいません (MAY)。
  • message フィールドは、人が読める関連する進捗情報を提供するべきです (SHOULD)。

Behavior Requirements

  1. progress notification は、次の条件を満たす token だけを参照しなければなりません (MUST)。

    • active な request で提供されたものである
    • 進行中の操作に関連付けられている
  2. progress request の受信側は、次のようにしてもかまいません (MAY)。

    • progress notification をまったく送らない
    • 適切と判断する任意の頻度で notification を送る
    • 不明な場合は total 値を省略する
  3. task-augmented requests では、元の request で提供された progressToken を、CreateTaskResult が返された後であっても、その task の存続期間を通じて progress notification に使い続けなければなりません (MUST)。progress token は、task が terminal status に到達するまで、その task に関連付けられた有効なものとして残ります。

    • task に対する progress notification は、初回の task-augmented request で提供された同じ progressToken を使わなければなりません (MUST)。
    • task に対する progress notification は、task が terminal status(completedfailed、または cancelled)に到達した後は停止しなければなりません (MUST)。
sequenceDiagram participant Sender participant Receiver Note over Sender,Receiver: Request with progress token Sender->>Receiver: Method request with progressToken Note over Sender,Receiver: Progress updates Receiver-->>Sender: Progress notification (0.2/1.0) Receiver-->>Sender: Progress notification (0.6/1.0) Receiver-->>Sender: Progress notification (1.0/1.0) Note over Sender,Receiver: Operation complete Receiver->>Sender: Method response

Implementation Notes

  • 送信側と受信側は、active な progress token を追跡するべきです (SHOULD)。
  • 両当事者は、過剰送信を防ぐために rate limiting を実装するべきです (SHOULD)。
  • progress notification は、完了後に停止しなければなりません (MUST)。