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
Copy file name to clipboardExpand all lines: docs/migration.md
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1168,9 +1168,9 @@ In practice, replace direct `ServerSession` use with `Server.run(read_stream, wr
1168
1168
1169
1169
### Experimental Tasks support removed
1170
1170
1171
-
Tasks (SEP-1686) have been removed from the MCP specification and are no longer part of this SDK. The `mcp.client.experimental`, `mcp.server.experimental`, `mcp.shared.experimental`, and `mcp.server.lowlevel.experimental` modules have been removed, along with all `Task*` types, the `tasks` capability fields, `Tool.execution`, and the `experimental` properties on `ClientSession`, `ServerSession`, `Server`, and `ServerRequestContext`.
1171
+
The experimental task execution machinery (SEP-1686) is no longer part of this SDK. The `mcp.client.experimental`, `mcp.server.experimental`, `mcp.shared.experimental`, and `mcp.server.lowlevel.experimental` modules have been removed, along with the `experimental` properties on `ClientSession`, `ServerSession`, `Server`, and `ServerRequestContext`. Task execution is expected to return as a separate MCP extension in a future release.
1172
1172
1173
-
Tasks are expected to return as a separate MCP extension in a future release.
1173
+
The 2025-11-25 protocol's task **types** remain available from `mcp.types` (`Task`, `TaskMetadata`, `TaskStatus`, the `tasks/*` request and result types, the `tasks` capability fields, and `Tool.execution`), so task payloads from 2025-11-25 peers can be constructed and parsed. Compared with the v1 experimental module these are plain protocol types: attributes are snake_case (`task_id`, `created_at` — wire names are unchanged), timestamps are plain `str` fields, extra fields are ignored rather than preserved, and the `tasks/*` methods are not members of the request/notification unions — serving them requires registering a handler for the method explicitly.
The lowlevel `Server` also now exposes a `session_manager` property to access the `StreamableHTTPSessionManager` after calling `streamable_http_app()`.
1240
1240
1241
+
### Newer protocol fields are modeled and round-trip
1242
+
1243
+
Fields introduced by the 2026-07-28 protocol revision are now typed on the existing payload models: `result_type` on results, `ttl_ms`/`cache_scope` on cacheable list/read results, `input_responses`/`request_state` on interactive request params, and `extensions` on the capability objects. Inbound payloads carrying these fields now retain them, and user-level `model_dump()` output includes them, where they were previously dropped as unknown fields. This is a strictly-more-lenient change: nothing that parsed before fails now.
1244
+
1245
+
Wire output to peers on protocol versions that predate a field is unaffected — the version-aware boundary (`mcp.types.wire.serialize_for`) drops these fields when emitting for 2025-11-25 and earlier, so existing peers see byte-identical frames.
0 commit comments