Tip: Migrate MCP Servers to the Explicit-Handle Pattern Before the 12-Month Clocks Run Out
Concrete migration steps for MCP server authors under the stateless spec: replace server-side session storage with tools that return identifiers (e.g. `basket_id`) the client passes back on later calls, swap SSE streams for `InputRequiredResult` whose `requestState` field carries resumption context so retries can land on a different instance, and send `Mcp-Method`/`Mcp-Name` headers on every request while validating they match the JSON-RPC body. Two gotchas that will break code silently: "resource not found" moved from custom code `-32002` to standard `-32602`, and `tasks/list` is gone entirely because listing all tasks isn't safe without sessions. Roots migrates to tool parameters or server config, Sampling to your own provider API, Logging to stderr or OpenTelemetry.
↳ Follow the thread