Capture
One read of Model Context Protocol
1 pages moved out of 144 read.
specification/2026-07-28/basic/patterns/subscriptions Changed · +7 / -6 lines
from line 117
* The **client** cancels it — close the SSE stream (HTTP) or send `notifications/cancelled` referencing the `subscriptions/listen` request ID (stdio). -* The **server** tears it down (e.g., during shutdown) — it **SHOULD** send the - empty `subscriptions/listen` response to signal a graceful end (see +* The **server** tears it down (e.g., during shutdown) — it **SHOULD** send a + successful `subscriptions/listen` response to signal a graceful end (see [Graceful Closure](#graceful-closure)), then close the stream. * The underlying transport closes (HTTP timeout, TCP disconnect, stdio process exit).
from line 127
When the server ends a subscription on its own initiative (for example, during shutdown), it **SHOULD** respond to the original `subscriptions/listen` request -with an empty result before closing the stream. This is the JSON-RPC response to -the long-lived request, correlated by its `id`, and signals that the subscription -ended gracefully — as opposed to an abrupt transport drop, which carries no -response. +with a completion result before closing the stream. The result carries no +method-specific data beyond the standard result fields and subscription +metadata. This is the JSON-RPC response to the long-lived request, correlated by +its `id`, and signals that the subscription ended gracefully — as opposed to an +abrupt transport drop, which carries no response. ```json theme={null} {