|
4 | 4 | 1. [Lifecycle](#lifecycle) |
5 | 5 | 1. [Discovery (`server/discover`)](#discovery-(server/discover)) |
6 | 6 | 1. [Per-request `_meta` keys](#per-request-meta-keys) |
| 7 | + 1. [Subscriptions (`subscriptions/listen`)](#subscriptions-(subscriptions/listen)) |
7 | 8 | 1. [Transports](#transports) |
8 | 9 | 1. [Stdio Transport](#stdio-transport) |
9 | 10 | 1. [Streamable Transport](#streamable-transport) |
@@ -141,6 +142,22 @@ Server-side handlers can read them |
141 | 142 | through `ServerRequest[P].ProtocolVersion()`, `ServerRequest[P].ClientInfo()`, |
142 | 143 | and `ServerRequest[P].ClientCapabilities()`. |
143 | 144 |
|
| 145 | +### Subscriptions (`subscriptions/listen`) |
| 146 | + |
| 147 | +Introduced in `2026-07-28` by |
| 148 | +[SEP-2575](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2575), |
| 149 | +`subscriptions/listen` replaces the legacy `resources/subscribe` RPC and |
| 150 | +the GET-based SSE endpoint with a single long-lived request that |
| 151 | +multiplexes every kind of server-to-client change notification a client |
| 152 | +opts in to. On the wire the client sends one `subscriptions/listen` |
| 153 | +request whose `notifications` field enumerates what it wants |
| 154 | +(`toolsListChanged`, `promptsListChanged`, `resourcesListChanged`, and/or |
| 155 | +a list of resource URIs in `resourceSubscriptions`); the server replies |
| 156 | +first with a `notifications/subscriptions/acknowledged` notification |
| 157 | +reporting the honored subset, then streams every change notification on |
| 158 | +the same request, and finally closes with a `SubscriptionsListenResult` |
| 159 | +when it tears the subscription down. |
| 160 | + |
144 | 161 | ## Transports |
145 | 162 |
|
146 | 163 | A |
|
0 commit comments