Expand description
subscriptions/listen, independent of the transport that carries it.
SEP-2575 (2026-07-28) replaced the HTTP GET stream and
resources/subscribe with one request: the client names the notifications
it wants, and the server acknowledges the subset it will honour and then
tags every notification with _meta["io.modelcontextprotocol/subscriptionId"],
whose value is the JSON-RPC id of the subscriptions/listen request. On
Streamable HTTP the notifications ride that request’s response stream; on
stdio they share the one channel and the id is how a client tells them
apart. The decisions — what to honour, how to tag, what to acknowledge —
are the same on both, so they live here once.
- “The server MUST NOT send notification types the client has not explicitly requested.”
- The acknowledgement lists “the subset of requested notification types the server agreed to honor”, omitting any it does not support.
- It “MUST be the first message the server sends carrying the subscription’s ID”.
Structs§
- Honoured
- What this server agreed to send on one subscription.
Constants§
- SUBSCRIPTION_
ID_ KEY - The
_metakey every message on a subscription carries.
Functions§
- acknowledgement
- The
notifications/subscriptions/acknowledgedframe. - honour
- Decides which of
requestedthis server will honour forpeer. - start
- Subscribes
sinkto everythinghonourednames, tagged withmeta. - tag
- The
_metaobject tagging a subscription opened by requestid.