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
Add multi-version protocol types: complete per-version model packages
One superset type set in mcp.types plus a complete, hand-validated model
package per spec version; serialization validates dumps through the
negotiated version's models at a single wire boundary.
Copy file name to clipboardExpand all lines: docs/migration.md
+14-3Lines changed: 14 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1166,11 +1166,18 @@ In practice, replace direct `ServerSession` use with `Server.run(read_stream, wr
1166
1166
1167
1167
`BaseSession` is still used by `ClientSession`, which never relied on these members. `RequestResponder.respond()` is unchanged.
1168
1168
1169
-
### Experimental Tasks support removed
1169
+
### Experimental Tasks support removed (types restored, types-only)
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
+
Tasks (SEP-1686) runtime support has been removed from this SDK. The `mcp.client.experimental`, `mcp.server.experimental`, `mcp.shared.experimental`, and `mcp.server.lowlevel.experimental` modules are gone, along with the `experimental` properties on `ClientSession`, `ServerSession`, `Server`, and `ServerRequestContext`.
1172
1172
1173
-
Tasks are expected to return as a separate MCP extension in a future release.
1173
+
The 2025-11-25 protocol *types* are back in `mcp.types` so that 2025-11-25 task payloads can still be modeled: the `Task*` types, the `tasks` capability subtrees, `Tool.execution`, and the `task` field on the four task-augmentable params classes. They are types-only definitions:
1174
+
1175
+
- Attributes are snake_case (`task_id`, `created_at`), aliased to the camelCase wire names.
1176
+
- Timestamps are plain `str` values, not `datetime`.
1177
+
-`GetTaskPayloadResult` follows the default extra-field policy (`ignore`), so it retains only `_meta`; validate a tasks/result payload into the original request's result type instead.
1178
+
- None of the task methods is a member of the request/notification unions, and `add_request_handler` does not dispatch them.
1179
+
1180
+
Tasks runtime support is expected to return as a separate MCP extension in a future release.
1174
1181
1175
1182
## Deprecations
1176
1183
@@ -1214,6 +1221,10 @@ If you relied on extra fields round-tripping through MCP types, move that data i
1214
1221
1215
1222
## New Features
1216
1223
1224
+
### Newer protocol fields are modeled and retained
1225
+
1226
+
`mcp.types` now models the 2025-11-25 and 2026-07-28 protocol fields and types (for example `resultType`, `ttlMs`/`cacheScope` on the cacheable results, and `inputResponses`/`requestState` on retried requests). Inbound payloads carrying these keys used to lose them to the unknown-field policy on re-dump; they now parse into typed fields and survive a user-level round-trip. All of the new fields are optional with `None` defaults, so dumps of values that do not set them are unchanged.
1227
+
1217
1228
### `streamable_http_app()` available on lowlevel Server
1218
1229
1219
1230
The `streamable_http_app()` method is now available directly on the lowlevel `Server` class, not just `MCPServer`. This allows using the streamable HTTP transport without the MCPServer wrapper.
0 commit comments