The MCP subscriptions listen stream and notification delivery
Verified 2026-09-30 · 29 sources · tier 1–3
Also known as Last-Event-ID, subscriptions/listen, toolsListChanged.
The Model Context Protocol defines a subscriptions listen stream that a client opens to receive server notifications 23. This subscriptions listen stream replaces the former resources subscribe request, bringing resource subscriptions and tool list notifications into a single filter-based mechanism rather than running them in parallel 17.
How it works
The 2026-07-28 message flow diagram shows the server answering a subscriptions listen request with a notification named notifications slash subscriptions slash acknowledged 1. The subscriptions page states that a server MUST NOT send notification types that the client has not explicitly requested 18. In the 2026-07-28 revision, a server that declared the list changed capability SHOULD send the tool list changed notification to clients that have opened a subscriptions listen stream with the tools list changed filter set to true 27. Delivery of a tool list changed notification to a subscribed client is graded as a SHOULD rather than a MUST 21.
WarmTransfer's reading of the sources is that the Tools page depicts a client re-issuing the tools list request after a notification inside an optional fragment of its message flow diagram rather than requiring it 20. Furthermore, we infer that Multi Round-Trip Requests do not share the long-lived connection machinery that subscriptions use 29.
Filter negotiation and caching
A subscription filter type that the server does not support is omitted from the acknowledgment rather than raising an error, and the client-side check that would catch the omission is graded as a SHOULD 22. WarmTransfer's reading of the sources is that a client whose requested toolsListChanged filter is silently dropped from the subscription acknowledgment receives no notification, so the caching page's invalidation scenario never applies to it even though the server advertised listChanged 16.
Transport differences and reconnects
The subscriptions page states a client obligation for the standard input and output transport: a client MUST demultiplex incoming notifications by subscription identifier 26.
For Streamable HTTP, resumable server-sent event streams via the Last-Event-ID header are not supported in the 2026-07-28 revision 24. Client reconnection after a dropped stream is graded MAY, and the specification publishes no backoff schedule, no retry cap, and no way to learn what was missed 25.
The specification does not state what becomes of a notifiable event that occurs while no client holds a matching subscription; neither the subscriptions page, the streamable transport page, the tools page, nor the changelog addresses retention, queueing, or replay 28. Similarly, the Resources page does not state what becomes of a notifiable event that occurs while no client holds a matching subscription, as no queueing, retention, or replay language appears in its prose, its code samples, or its diagram 19.
See also
- Model Context Protocol transports compared
- Tool schema signature monitoring and drift handling
- Stateful tools in the Model Context Protocol
- Webex published MCP servers for external AI clients
- Fidelity of the corpus text extraction pipeline
- Model Context Protocol resources and the caching utility
- Whether a cached tool list defeats a change notification
- Webex Contact Center AI agent assist and virtual agents
- Contact center transcription and redaction
- Agent assist and real-time guidance
- Virtual agents and conversational IVR design
- Automated call summarization and wrap-up
- AI quality management and auto scoring
- Webex AI Agent Studio scripted and autonomous agents
- AI transparency technical notes
- Model Context Protocol actions in Webex contact centre AI
- Supported languages and voices for Webex AI agents
- Unified CCX Webex AI Agent integration
- Agentic apps registration approval and identity badges
- Third-party model and speech vendors behind Webex contact centre AI
Applicability
Applies to: Model Context Protocol project and Model Context Protocol specification. Sources checked 2026-09-05. In the 2026-07-28 revision, a server that declared the list changed capability SHOULD send the tool list changed notification to clients that have opened a subscriptions listen stream with the tools list changed filter set to true 27. Resumable server-sent event streams via the Last-Event-ID header are not supported in the 2026-07-28 revision 24.
What remains uncertain
Whether the corpus extractor drops diagrams entirely is not covered by the sources below. What becomes of an event with no subscriber is not covered by the sources below beyond the documented absence of queueing, retention, or replay language in the specification 2819. Whether any Webex MCP server implements subscriptions is not covered by the sources below. Whether a client can discover supported filters before subscribing is not covered by the sources below. The Discovery page new in this revision is not covered by the sources below. The specification Resources page is not covered by the sources below beyond the absence of retention, queueing, or replay rules for unheld subscriptions 19. The full list of subscribable event types is not covered by the sources below. How subscriptions differ between stdio and streamable HTTP is not covered by the sources below.
See also
Parent of
- Model Context Protocol transports compared — The one client obligation is transport scoped
Related to
- Webex published MCP servers for external AI clients — Whether any Webex server implements subscriptions is unknown
Scopes
- Tool schema signature monitoring and drift handling — Delivery guarantees decide whether drift is detectable
Referenced by
- Tool schema signature monitoring and drift handling — Notification delivery is gated on the subscription stream
- Whether a cached tool list defeats a change notificationstub — The notification only arrives over a subscription stream the server agreed to honour
- Model Context Protocol transports compared — Recorded as supplied to the run (parent-of; marked inbound; with mcp-subscriptions-listen). The run could not read the relationship table; so the edge direction is carried over unverified. Evidence in this packet: subscriptions/listen has transport-scoped client obligations. On stdio the client MUST correlate notifications by subscriptionId and MUST re-send subscriptions/listen after a reconnect; on Streamable HTTP the client cancels by closing the SSE stream.
- Stateful tools in the Model Context Protocol — Introduced in the same specification revision
- Fidelity of the corpus text extraction pipelinestub — A finding was recoverable only from the raw payload
- Model Context Protocol resources and the caching utility — Resource subscriptions were folded into that stream
Sources
- 1The 2026-07-28 message flow diagram shows the server answering a subscriptions listen request with a notification named notifications slash subscriptions slash acknowledged.Model Context Protocol specification 2026-07-28, Server Features: Tools · Tools > Message Flow diagram · Checked 2026-09-05
- 2The 2026-07-28 Resources page Message Flow section is a mermaid sequenceDiagram with no prose, and it shows subscriptions/listen (resourceSubscriptions) followed by notifications/subscriptions/acknowledged and then notifications/resources/updated.Model Context Protocol specification 2026-07-28, Resources · Message Flow · Checked 2026-09-30
- 3The Subscriptions page states in prose that the server MUST send notifications/subscriptions/acknowledged as the first message for a subscription and MUST NOT send any notification on that subscription before it.Model Context Protocol specification 2026-07-28, Subscriptions · Acknowledgment, first paragraph · Checked 2026-09-30
- 4The repository source file for the 2026-07-28 Subscriptions page was reported to contain no mermaid block and four JSON code blocks, the same inventory as the published page.docs/specification/2026-07-28/basic/patterns/subscriptions.mdx · whole file · Checked 2026-09-30
- 5The MCP 2026-07-28 Subscriptions page, as served, contains four json code blocks and one table and contains no mermaid block and no image.Model Context Protocol specification 2026-07-28, Subscriptions · whole page · Checked 2026-09-30
- 6The 2026-07-28 Tools Message Flow diagram places the update steps inside an 'opt listChanged' block in which the client first sends subscriptions/listen (toolsListChanged: true) and the server sends notifications/subscriptions/acknowledged before notifications/tools/list_changed.Model Context Protocol specification 2026-07-28, Server Features: Tools · Message Flow, mermaid block, 'opt listChanged' group · Checked 2026-09-30
- 7On the 2026-07-28 Tools page the string notifications/subscriptions/acknowledged appears only inside the Message Flow mermaid block; the page's prose does not mention the acknowledgement.Model Context Protocol specification 2026-07-28, Server Features: Tools · whole page; sole occurrence under Message Flow · Checked 2026-09-30
- 8MCP revision 2026-07-28 replaced the Streamable HTTP GET endpoint and the resources/subscribe and resources/unsubscribe methods with subscriptions/listen, a single long-lived POST-response stream for opted-in server-to-client change notifications.Model Context Protocol specification 2026-07-28, Key Changes · section Major changes, item 4 · Checked 2026-09-30
- 9In Streamable HTTP under MCP revision 2026-07-28, long-lived change notifications are delivered on the SSE response stream of a subscriptions/listen POST, while request-scoped notifications such as notifications/progress and notifications/message flow only on the response stream of the request they relate to.Model Context Protocol specification 2026-07-28, Streamable HTTP · section Receiving Messages, paragraph beginning Long-lived notification streams · Checked 2026-09-30
- 10In MCP revision 2026-07-28 a client cancels a subscriptions/listen subscription by closing the SSE stream on Streamable HTTP, or by sending notifications/cancelled referencing the subscriptions/listen request ID on stdio.Model Context Protocol specification 2026-07-28, Subscriptions · section Cancellation, first bullet · Checked 2026-09-30
- 11In MCP revision 2026-07-28 the server MUST send notifications/subscriptions/acknowledged before any other notification on a subscription; on stdio this ordering is defined per subscription ID rather than per channel, so messages belonging to other subscriptions MAY be interleaved before it.Model Context Protocol specification 2026-07-28, Subscriptions · section Acknowledgment, first paragraph · Checked 2026-09-30
- 12On stdio in MCP revision 2026-07-28, if the connection is terminated and then re-established the client MUST re-send subscriptions/listen to re-establish its subscriptions, because the server holds no subscription state across reconnections.Model Context Protocol specification 2026-07-28, Subscriptions · section Cancellation, subsection Graceful Closure, paragraph beginning On stdio · Checked 2026-09-30
- 13On stdio in MCP revision 2026-07-28 clients MUST correlate notifications delivered for an active subscriptions/listen request using the io.modelcontextprotocol/subscriptionId field in _meta.stdio · section Receiving Messages, numbered item 3 · Checked 2026-09-30
- 14The MCP 2026-07-28 Cancellation page says a server MUST send notifications/cancelled referencing a subscriptions/listen request ID when it tears down that subscription stream, and MUST NOT send notifications/cancelled for any other purpose.disputedCancellation - MCP specification revision 2026-07-28 · introduction, second paragraph; section Behavior Requirements item 2 · Checked 2026-09-30
- 15The MCP 2026-07-28 Subscriptions page says that a server ending a subscription on its own initiative SHOULD send a successful subscriptions/listen response (resultType complete) before closing the stream, and describes no server-sent notifications/cancelled.disputedModel Context Protocol specification 2026-07-28, Subscriptions · section Cancellation, second bullet, and subsection Graceful Closure · Checked 2026-09-30
- 16A client whose requested toolsListChanged filter is silently dropped from the subscription acknowledgment receives no notification, so the caching page's invalidation scenario never applies to it even though the server advertised listChanged.inferredModel Context Protocol specification 2026-07-28, Subscriptions · Acknowledgment section combined with the caching page's Interaction with Notifications · Checked 2026-09-05
- 17The subscriptions listen stream replaces the former resources subscribe request, so resource subscriptions and tool list notifications now share one filter-based mechanism rather than running in parallel.Model Context Protocol specification 2026-07-28, Subscriptions · Subscriptions · Checked 2026-09-05
- 18The subscriptions page states that a server MUST NOT send notification types the client has not explicitly requested.Model Context Protocol specification 2026-07-28, Subscriptions · Subscriptions · Checked 2026-09-05
- 19The Resources page does not state what becomes of a notifiable event that occurs while no client holds a matching subscription; no queueing, retention or replay language appears in its prose, its code samples or its diagram.Model Context Protocol specification 2026-07-28, Resources · whole page · Checked 2026-09-05
- 20The Tools page depicts a client re-issuing the tools list request after a notification inside an optional fragment of its message flow diagram rather than requiring it.inferredModel Context Protocol specification 2026-07-28, Server Features: Tools · Tools > Message Flow diagram · Checked 2026-09-05
- 21Delivery of a tool list changed notification to a subscribed client is a SHOULD rather than a MUST.Model Context Protocol specification 2026-07-28, Server Features: Tools · Tools > List Changed Notification · Checked 2026-09-05
- 22A subscription filter type the server does not support is omitted from the acknowledgment rather than raising an error and the client side check that would catch the omission is a SHOULD.Model Context Protocol specification 2026-07-28, Subscriptions · Subscriptions, filter negotiation · Checked 2026-09-05
- 23The Model Context Protocol defines a subscriptions listen stream that a client opens to receive server notifications.Model Context Protocol specification 2026-07-28, Subscriptions · Subscriptions · Checked 2026-09-05
- 24Resumable server-sent event streams via the Last-Event-ID header are not supported in the 2026-07-28 revision.Model Context Protocol specification 2026-07-28, Streamable HTTP · Streamable HTTP · Checked 2026-09-05
- 25Client reconnection after a dropped stream is graded MAY and the specification publishes no backoff schedule no retry cap and no way to learn what was missed.Model Context Protocol specification 2026-07-28, Streamable HTTP · Streamable HTTP · Checked 2026-09-05
- 26The subscriptions page states a client obligation for the standard input and output transport: a client MUST demultiplex incoming notifications by subscription identifier.Model Context Protocol specification 2026-07-28, Subscriptions · Subscriptions, stdio transport · Checked 2026-09-05
- 27In the 2026-07-28 revision a server that declared the list changed capability SHOULD send the tool list changed notification to clients that have opened a subscriptions listen stream with the tools list changed filter set to true.Model Context Protocol specification 2026-07-28, Server Features: Tools · Tools > List Changed Notification · Checked 2026-09-05
- 28The specification does not state what becomes of a notifiable event that occurs while no client holds a matching subscription; neither the subscriptions page the streamable transport page the tools page nor the changelog addresses retention queueing or replay.Model Context Protocol specification 2026-07-28, Subscriptions · Subscriptions, whole page · Checked 2026-09-05
- 29Multi Round-Trip Requests do not share the long-lived connection machinery that subscriptions use.inferredModel Context Protocol specification 2026-07-28, Multi Round-Trip Requests · Multi Round-Trip Requests · Checked 2026-09-05
Documents
Cancellation - MCP specification revision 2026-07-28
Model Context Protocol specification 2026-07-28, Key Changes
Model Context Protocol specification 2026-07-28, Multi Round-Trip Requests
Model Context Protocol specification 2026-07-28, Resources
Model Context Protocol specification 2026-07-28, Server Features: Tools
Model Context Protocol specification 2026-07-28, Streamable HTTP
Model Context Protocol specification 2026-07-28, Subscriptions
stdio
docs/specification/2026-07-28/basic/patterns/subscriptions.mdx
Cite this page
APA
WarmTransfer. (2026, September 30). The MCP subscriptions listen stream and notification delivery. WarmTransfer. https://warmtransfer.net/knowledge/mcp-subscriptions-listen
BibTeX
@misc{warmtransfer-mcp-subscriptions-listen,
title = {The MCP subscriptions listen stream and notification delivery},
author = {{WarmTransfer}},
year = {2026},
url = {https://warmtransfer.net/knowledge/mcp-subscriptions-listen},
note = {Verified 2026-09-30}
}