Skip to content

Commit aa91c80

Browse files
committed
docs: re-anchor tasks migration notes after the migration guide restructure
The restructured migration guide dropped the server extensions section this branch used to edit, so the feature prose now lives in the extensions and tasks pages. The migration guide's experimental Tasks section and the whats-new removal list now say the extension ships as the built-in Tasks extension instead of claiming it is unimplemented. The extensions page also points at TasksExtension as the shipped behavioural example next to advertise().
1 parent dca9ae7 commit aa91c80

3 files changed

Lines changed: 5 additions & 2 deletions

File tree

docs/advanced/extensions.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@ from mcp.client import advertise
184184
client = Client(mcp, extensions=[advertise("com.example/search")])
185185
```
186186

187+
For an extension with client-side behaviour, construct its object instead; the
188+
built-in example is `mcp.client.TasksExtension` ([Tasks](tasks.md)).
189+
187190
## Writing a client extension
188191

189192
Subclass `ClientExtension` and override only what you need. Three contribution

docs/migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2010,7 +2010,7 @@ async def elicitation_callback(
20102010

20112011
Tasks ([SEP-1686](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/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 the `experimental` properties on `ClientSession`, `ServerSession`, `Server`, and `ServerRequestContext`. The corresponding `Task*` types remain in `mcp.types` as types-only definitions, except the `TaskExecutionMode` alias, whose literal is now inlined on `ToolExecution.task_support`.
20122012

2013-
Tasks have since returned as the built-in `Tasks` extension ([SEP-2663](https://modelcontextprotocol.io/seps/2663-tasks-extension.md)), with a different wire shape than the experimental SEP-1686 surface — see [Server extensions API](#server-extensions-api-sep-2133) above and [Tasks](advanced/tasks.md).
2013+
Tasks have since returned as the built-in `Tasks` extension ([SEP-2663](https://modelcontextprotocol.io/seps/2663-tasks-extension.md)), with a different wire shape than the experimental SEP-1686 surface. See [Extensions](advanced/extensions.md) and [Tasks](advanced/tasks.md) for the new design.
20142014

20152015
There is no drop-in replacement for the tasks runtime (`server.experimental.enable_tasks()`, `ctx.experimental.run_task()`, `ServerTaskContext`, and the client's `session.experimental.call_tool_as_task()` / `poll_task()` / `get_task_result()`); the port depends on what the code used tasks for.
20162016

docs/whats-new.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ The renames announce themselves. These do not:
142142
Each of these is a section in the **[Migration Guide](migration.md)**:
143143

144144
* The **WebSocket transport**, both sides, and the `mcp[ws]` extra. It was never part of the MCP specification.
145-
* The **experimental Tasks** API (`mcp.*.experimental`). 2026-07-28 moves tasks out of the core protocol and into an official extension ([SEP-2663](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2663)), which this SDK does not implement yet.
145+
* The **experimental Tasks** API (`mcp.*.experimental`). 2026-07-28 moves tasks out of the core protocol and into an official extension ([SEP-2663](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2663)), which this SDK ships as the built-in [Tasks](advanced/tasks.md) extension.
146146
* `mcp.shared.version`, `mcp.shared.progress`, and `mcp.shared.session` (with the `RequestResponder` stub v1 `message_handler` annotations imported) as import paths. (`mcp.types` is *not* removed: it remains as a permanent alias for the standalone `mcp_types` package.)
147147
* The deprecated `streamablehttp_client` spelling, and the `get_session_id` callback from `streamable_http_client` (which now yields exactly two streams).
148148
* `McpError`, renamed **`MCPError`** with a direct `(code, message, data)` constructor.

0 commit comments

Comments
 (0)