Checked 2026-09-10 against revision 2026-07-28 and the earlier 2025-11-25 lifecycle. No lab or previous lesson is needed for this diagnostic.
| Existing assumption | Target-revision behavior | First thing to inspect |
|---|---|---|
| Initialize once, retain capabilities | Version/capabilities on every request | _meta construction for each call |
| Session ID carries application selection | Protocol sessions removed | Explicit project/work handle and access checks |
| Server sends its own approval request | Input request returned in original result | Retry with inputResponses and opaque requestState |
| Every response finishes the operation | Required resultType distinguishes interim results | Branch on complete/input_required |
| Any 400 means an earlier server | Modern failures also use 400 | Error code and supported-version data |
| GET stream or Last-Event-ID recovers messages | Those mechanisms removed from target Streamable HTTP | POST response/subscription and operation recovery |
| All deprecated features disappeared | Deprecated features remain during their window | Per-feature registry and normative notice |
SSE itself has not disappeared: the target can return a request-scoped SSE response and subscriptions/listen has an SSE response stream. The older HTTP+SSE transport is a distinct compatibility path.
clientInfo is optional; version and clientCapabilities are required. An earlier server's result without resultType is treated as complete. Discovery is mandatory for target servers but optional for clients. Stateless protocol context does not remove the need to persist application work.
Deprecation is not immediate removal
Roots, Sampling, Logging and Dynamic Client Registration are Deprecated in this revision. Their registry row gives earliest eligibility as the first Current revision released on or after 2027-07-28. That is not an announced removal date. The historical HTTP+SSE transport has a different transition rule, tied to three months after SEP-2596 Final; do not assign it the same anniversary. includeContext thisServer/allServers follows Sampling. Recheck notices before setting deadlines.
The policy's normal twelve-month floor also has an approved expedited-removal exception with a minimum ninety-day interval under its stated active-risk conditions. SDK support can follow a different timeline from specification removal.
Practice and answer key
- A call gets HTTP 400 with error -32020. Must the client initialize? Answer: No. This identifies a modern header mismatch; inspect and repair the request instead of treating a status alone as an era detector.
- A server needs approval before adding a note. Does removing callbacks remove the approval requirement? Answer: No. Preserve the business boundary and deliver the input request through MRTR; a simulated answer is not human proof.
- A team schedules automatic feature shutdown on 2027-07-28. Does the registry mandate that? Answer: No. It names eligibility in a subsequent Current revision, not a scheduled removal. Use a dated feature-specific record.
- A service uses SSE responses today. Must all SSE code be deleted? Answer: No. Distinguish response streams still supported by the target from the removed GET/session/resume mechanisms and the older transport.
Primary sources
Lesson 9.1 · What the 2026-07-28 revision changes in a running server
The sheet is the diagnosis. The course is the fix.
Module 9 moves a 2025-11-25 server to 2026-07-28 with compatibility fixtures, explicit handles in place of sessions and a staged rollout plan, in lab 9. Every lab runs on your machine with Docker Compose, and each one ships tests that break the code on purpose so you see them catch it.
Free · four printable pages
The 2026-07-28 migration cheatsheet
Every breaking change next to what replaces it, the error codes and the deprecation clock. We'll email it to you.
More free sheets#
- Your MCP server fails on one replica. Start with the request. Lesson 1.1
- One MCP request, field by field. Lesson 1.2
- Was it the transport, the protocol or the tool? Lesson 1.3
- Your MCP tool timed out. Did the write happen? Lesson 2.1
- The tool answered. The approval never came. Lesson 3.1
- Health check green, MCP tool still failing. Lesson 8.1