You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Re-vendor 2026-07-28 schema at spec ead35b59 (SubscriptionsListenResult)
Picks up modelcontextprotocol/modelcontextprotocol#2953, the only schema/draft
change since the previous vendor pin (2852f30e). The diff is purely additive:
SubscriptionsListenResult and SubscriptionsListenResultMeta are added to
$defs, and SubscriptionsListenResult joins the ServerResult union.
- schema/2026-07-28.json + PINNED.json bumped; v2026_07_28/__init__.py
regenerated. SubscriptionsListenResultMeta added to OPEN_CLASSES so it
preserves arbitrary _meta keys, matching NotificationMetaObject.
- mcp_types: SubscriptionsListenResult added to the monolith and ServerResult
union (before InputRequiredResult, which must stay last); subscriptions/listen
rows in methods.py now point to it instead of EmptyResult.
- lowlevel server: on_subscriptions_listen return type follows the new result.
- tests/types: fixtures and EMPTY_SERVER_RESPONSE_METHODS updated;
SubscriptionsListenResultMeta skipped in parity (modelled as Meta dict in
the monolith, same as the other *MetaObject types).
Copy file name to clipboardExpand all lines: schema/2026-07-28.json
+33Lines changed: 33 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -3220,6 +3220,9 @@
3220
3220
{
3221
3221
"$ref": "#/$defs/ReadResourceResult"
3222
3222
},
3223
+
{
3224
+
"$ref": "#/$defs/SubscriptionsListenResult"
3225
+
},
3223
3226
{
3224
3227
"$ref": "#/$defs/ListPromptsResult"
3225
3228
},
@@ -3389,6 +3392,36 @@
3389
3392
],
3390
3393
"type": "object"
3391
3394
},
3395
+
"SubscriptionsListenResult": {
3396
+
"description": "The response to a {@link SubscriptionsListenRequestsubscriptions/listen}\nrequest, signalling that the subscription has ended gracefully (for example,\nduring server shutdown). Because the listen stream is long-lived, this result\nis sent only when the server tears the subscription down; an abrupt transport\nclose carries no response. The result body is otherwise empty.",
3397
+
"properties": {
3398
+
"_meta": {
3399
+
"$ref": "#/$defs/SubscriptionsListenResultMeta"
3400
+
},
3401
+
"resultType": {
3402
+
"description": "Indicates the type of the result, which allows the client to determine\nhow to parse the result object.\n\nServers implementing this protocol version MUST include this field.\nFor backward compatibility, when a client receives a result from a\nserver implementing an earlier protocol version (which does not include\n`resultType`), the client MUST treat the absent field as `\"complete\"`.",
3403
+
"type": "string"
3404
+
}
3405
+
},
3406
+
"required": [
3407
+
"_meta",
3408
+
"resultType"
3409
+
],
3410
+
"type": "object"
3411
+
},
3412
+
"SubscriptionsListenResultMeta": {
3413
+
"description": "Extends {@link MetaObject} with the subscription-stream identifier carried by a\n{@link SubscriptionsListenResult}. All key naming rules from `MetaObject` apply.",
3414
+
"properties": {
3415
+
"io.modelcontextprotocol/subscriptionId": {
3416
+
"$ref": "#/$defs/RequestId",
3417
+
"description": "Identifies the subscription stream this response closes, so the client can\ncorrelate it with the originating subscription — mirroring the same key on\nthe stream's notifications. The value is the JSON-RPC ID of the\n`subscriptions/listen` request that opened the stream (and equals this\nresponse's `id`)."
3418
+
}
3419
+
},
3420
+
"required": [
3421
+
"io.modelcontextprotocol/subscriptionId"
3422
+
],
3423
+
"type": "object"
3424
+
},
3392
3425
"TextContent": {
3393
3426
"description": "Text provided to or from an LLM.",
0 commit comments