MCP 2026-07-28 deprecations: SSE, sampling, roots, logging checklist
MCP 2026-07-28 deprecates Roots, Sampling and Logging and reclassifies HTTP+SSE as Deprecated, with 12 months of notice. A checklist for media servers.

You have at least twelve months. SEP-2577 in MCP 2026-07-28 deprecates Roots, Sampling and Logging, and the HTTP+SSE transport is reclassified as Deprecated, with a minimum twelve-month deprecation window, per the changelog read 2026-10-03. Deprecated is not removed, so the work is a plan, not an emergency. For a media-generation server the plan is short.
What is deprecated
Four features are affected. Each has a plain replacement in a media workflow.
| Feature | Status | Replacement idea for a media server |
|---|---|---|
| Roots | Deprecated | Pass explicit asset URLs or upload through a create-upload-URL tool |
| Sampling | Deprecated | Call your own model API from your own code |
| Logging | Deprecated | Return structured status in tool results and job events |
| HTTP+SSE transport | Deprecated | Streamable HTTP on one POST endpoint |
A media server rarely needs them
A generation server mostly takes a prompt and returns an id. It seldom needs the client's roots, or a model call through the client's sampling. Sume's MCP overview describes the hosted endpoint as one URL, https://mcp.sume.com/mcp, for remote HTTP clients, and its docs say the hosted server cannot read files from your laptop.
For files, the Sume tools page describes an upload flow in three steps: create an upload URL, have the client PUT the bytes, then complete the asset. That is an explicit hand-off and needs no roots.
Checklist
Work through these in order. The first two cost nothing and tell you whether the rest applies.
- Search your server code for sampling requests, roots requests and logging notifications; note each call site.
- Confirm every client you serve connects over Streamable HTTP and not the SSE transport.
- Replace roots with explicit URLs or an upload-URL tool.
- Move log messages into tool results and job events, so a client that never subscribed still sees them.
- Set a calendar date inside the twelve-month window to remove the old paths, and tell your users.
Keep status in results
The logging change has the largest effect on long jobs. If your server streamed progress as log messages, clients on the newer protocol may stop showing them. Sume's docs expose a public timeline through a job events read and give terminal status through the status read, so a client can recover progress by asking. Build the same into your own server: a status call that always works beats a notification that may not arrive.
Check what your client speaks
Before you remove anything, find out which protocol each of your clients negotiates. A client pinned to an older version keeps using the old paths for the whole window. The Sume docs describe connecting Claude Code, Cursor and Codex to the hosted endpoint, and each client documents its own version support.
Sources
Related posts
More in Developers
- MCP OAuth without DCR: client ID metadata documents and issuer checks
MCP 2026-07-28 deprecates dynamic client registration for Client ID Metadata Documents and requires clients to validate iss. What it means for Sume.
- Python MCP SDK 2.3 subscriptions=False: a Sume wrapper that pulls
MCPServer(subscriptions=False) turns off push subscriptions in the Python SDK. A wrapper over Sume jobs can do without them by waiting in bounded slices.
- Python MCP SDK v1 now gets security fixes only: use v2 for new clients
The Python MCP SDK v1.x line gets security fixes only; v2 added MRTR and the 2026-07-28 spec. What that means when you connect a client to Sume's hosted MCP.
- MCP tasks/cancel vs Sume jobs_cancel: cancel works only before start
TypeScript SDK 2.3.0 adds tasks/get and tasks/cancel. Sume's jobs_cancel is narrower: it succeeds only before generation starts, then returns 409.
Written by Sume