Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Skip to main content
Message Patterns
Progress
The Model Context Protocol (MCP) supports optional progress tracking for long-running
operations through notification messages. The server MAY send progress notifications
to report the status of requests the client has issued.
The server MAY then send progress notifications containing:
Progress Flow
When a client wants to receive progress updates for a request, it includes aprogressToken in the request metadata.
- Progress tokens MUST be a string or integer value
- Progress tokens can be chosen by the client using any means, but MUST be unique across all active requests.
{
"jsonrpc": "2.0",
"id": 1,
"method": "some_method",
"params": {
"_meta": {
"progressToken": "abc123"
}
}
}
- The original progress token
- The current progress value so far
- An optional “total” value
- An optional “message” value
{
"jsonrpc": "2.0",
"method": "notifications/progress",
"params": {
"progressToken": "abc123",
"progress": 50,
"total": 100,
"message": "Reticulating splines..."
}
}
- The
progressvalue MUST increase with each notification, even if the total is unknown. - The
progressand thetotalvalues MAY be floating point. - The
messagefield SHOULD provide relevant human readable progress information.
Behavior Requirements
-
Progress notifications MUST only reference tokens that:
- Were provided in an active request
- Are associated with an in-progress operation
-
Servers receiving a request with a progress token MAY:
- Choose not to send any progress notifications
- Send notifications at whatever frequency they deem appropriate
- Omit the total value if unknown
Implementation Notes
- Clients and servers SHOULD track active progress tokens
- Both parties SHOULD implement rate limiting to prevent flooding
- Progress notifications MUST stop after completion
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.
