MCP maturity in October 2026: what’s stable, what’s deprecated, what’s still a bet

MCP maturity in October 2026. A blueprint drawing of a tall sheet with a column of check boxes, with three strata rising beside it from solid to faint.

A vendor’s roadmap for a Model Context Protocol (MCP) server will mention MCP Apps, Tasks, Skills, maybe interceptors. Some of those are stable, one is a draft, and some are proposals that may change or disappear. What I’d want, before I plan around any of them, is a map: which revision of the specification the server speaks, what that revision removed, how long a deprecated feature keeps working, and where each extension stands. Here it is, as of October 2026.

This is part 3 of a short series for the people who buy, approve and govern MCP servers rather than build them, after part 2’s governance checklist. It draws on the same facts as my series for builders, under the 2026-07-28 specification, as I read them in October 2026. Where something is my advice, I say so.

MCP is an open standard that lets AI applications discover and use external tools, data and prompt templates through one common interface. Its specification is versioned by date, and that date is the first thing to read in any vendor’s claim.

In brief

  1. There have been five revisions since November 2024, named by date, and the fifth, 2026-07-28, took a lot away: the handshake, sessions, and a server’s ability to send requests to the client.
  2. A deprecated feature keeps working for at least twelve months, with two shorter exceptions, and even then it only becomes eligible for removal.
  3. The extensions differ in status. MCP Apps and Enterprise-Managed Authorization are stable, Tasks is official, Skills is final with implementations still rolling out, OAuth Client Credentials is a draft, and Interceptors and Variants are experimental proposals.
  4. A vendor convention works in one host and nowhere else, so it can only ever be an enhancement.
  5. My advice: a server built on official extensions is a reasonable bet, an experimental one is a bet on a working group, and the core must work with no extension at all.

Five revisions, named by date

MCP versions carry their release date, not a number. Each revision has its own changelog, and the specification’s home page points at the latest one.

2024-11-05: The first public release, Tools, resources, prompts, sampling, roots, logging, stdio and HTTP+SSE transports; 2025-03-26: Streamable HTTP replaces HTTP+SSE, An OAuth 2.1-based authorization framework, Tool annotations and audio content; 2025-06-18: Structured tool output, elicitation, resource links in tool results, Authorization moves to the OAuth resource-server model, JSON-RPC batching is removed; 2025-11-25: Experimental tasks, URL-mode elicitation, Client ID Metadata Documents, icons, tool-naming guidance; 2026-07-28: A stateless protocol core, server/discover, Multi round-trip requests, subscriptions/listen, Caching hints, standard HTTP headers, Tasks as an extension, Roots, sampling and logging deprecatedMCP specification revisions2024-11-05The first public releaseTools, resources, prompts, sampling, roots, loggingstdio and HTTP+SSE transports2025-03-26Streamable HTTP replaces HTTP+SSEAn OAuth 2.1-based authorization frameworkTool annotations and audio content2025-06-18Structured tool output, elicitation, resource links in tool resultsAuthorization moves to the OAuth resource-server modelJSON-RPC batching is removed2025-11-25Experimental tasks, URL-mode elicitationClient ID Metadata Documents, icons, tool-naming guidance2026-07-28A stateless protocol core, server/discoverMulti round-trip requests, subscriptions/listenCaching hints, standard HTTP headers, Tasks as an extensionRoots, sampling and logging deprecated

The 2026-07-28 revision is the one that matters for a purchase today, because it changed how a server is built. MCP used to be a stateful protocol: a client opened a session with a handshake, and the two sides could send requests to each other for as long as it lasted. That model fits a process on a laptop and fits a horizontally scaled cloud service badly. The new revision removed the handshake, the session and server-initiated requests. A server that needs input now answers with a request for it, and the client retries; any instance can serve any request.

That split creates two protocol eras, and hosts are crossing between them at different speeds. As of October 2026, Claude Code is the only one of the seven hosts I compared that is confirmed to use 2026-07-28. So the question for a vendor isn’t “which revision?” but “which revisions?”: a server that serves only the new era looks broken in a host that hasn’t caught up, and one that serves only the old era can’t take the new era’s features. The clean approach is to decide the era per request, and several software development kits (SDKs) do that out of the box.

What is deprecated, and what is already gone

The 2026-07-28 revision adopted a formal feature lifecycle, through a Specification Enhancement Proposal (SEP-2596), with a registry of deprecated features. When a SEP marks a feature deprecated, it stays fully functional, but new implementations should not adopt it. It stays for at least twelve months, or at least 90 days when it presents an active security risk, and when that window closes the feature only becomes eligible for removal. Taking it out is a decision for the core maintainers.

Active → Deprecated still fully functional, not for new implementations: SEP marks feature deprecated; Deprecated still fully functional, not for new implementations → Removed: at least twelve months, then a decision; Deprecated still fully functional, not for new implementations → Removed: active security risk: at least 90 daysActiveDeprecatedstill fully functional,not for new implementationsRemovedSEP marks feature deprecatedat least twelve months,then a decisionactive security risk:at least 90 days

Here is what is deprecated today, with its replacement and the earliest it may go. One feature gets less than twelve months: the original HTTP transport, HTTP with Server-Sent Events (SSE), known as HTTP+SSE.

FeatureDeprecatedUse insteadEarliest removal
Roots2026-07-28Pass directories or files as tool parameters, as resource addresses or in server configurationThe first revision on or after 2027-07-28
Sampling2026-07-28The server calls its own model providerThe first revision on or after 2027-07-28
Logging (notifications/message)2026-07-28stderr on a local server, or OpenTelemetryThe first revision on or after 2027-07-28
Dynamic Client Registration2026-07-28Client ID Metadata Documents; registration stays for older authorization serversThe first revision on or after 2027-07-28
The HTTP+SSE transportSoft-deprecated 2025-03-26, formally 2026-07-28Streamable HTTPThree months after SEP-2596 reaches Final
Two includeContext values in sampling requestsSoft-deprecated 2025-11-25Omit the field, or use "none"Follows sampling’s schedule

And here is what 2026-07-28 removed outright, which a server built on an older SDK may still depend on: the initialize handshake and its notification, the Mcp-Session-Id header, ping and logging/setLevel, the HTTP GET endpoint, the old resource subscription methods, stream resumability, server-initiated requests, and the experimental tasks of the core, which moved into the redesigned Tasks extension.

What I’d take from this as a buyer: ask for the list of deprecated features a server still uses, with the date each may be removed, and ask whether the server has adopted any since the deprecation, because the policy says it shouldn’t have. My advice to builders is to drop the older era only when their traffic says they can, not when the specification does, and I’d hold a vendor to the same: the question is whether your hosts have moved, not whether the clock has.

The extensions and where each one stands

Several things a server can do in 2026 aren’t in the core protocol at all. They’re extensions: optional additions, always disabled by default, that a client and a server have to agree on for each request. An official extension carries the io.modelcontextprotocol prefix and lives in a repository whose name starts with ext-; an experimental one starts with experimental-ext-.

MCP extensions → UI; MCP extensions → Execution; MCP extensions → Knowledge; MCP extensions → Authorization; MCP extensions → Experimental; MCP extensions → Vendor-specific; UI → MCP Apps io.modelcontextprotocol/ui stable; Execution → Tasks io.modelcontextprotocol/tasks official; Knowledge → Skills over MCP io.modelcontextprotocol/skills SEP final; Authorization → Enterprise-Managed Authorization stable; Authorization → OAuth Client Credentials draft; Experimental → Interceptors experimental-ext; Experimental → Variants experimental-ext; Vendor-specific → Client _meta conventions e.g. anthropic/alwaysLoadMCP extensionsUIExecutionKnowledgeAuthorizationExperimentalVendor-specificMCP Appsio.modelcontextprotocol/uistableTasksio.modelcontextprotocol/tasksofficialSkills over MCPio.modelcontextprotocol/skillsSEP finalEnterprise-Managed AuthorizationstableOAuth Client CredentialsdraftInterceptorsexperimental-extVariantsexperimental-extClient _meta conventionse.g. anthropic/alwaysLoad
ExtensionWhat it addsStatus, October 2026Where it is supported
MCP AppsAn interactive interface, rendered in the conversation in a sandboxed iframeStable, specification 2026-01-26; the first official extensionClaude on the web and Desktop, ChatGPT, VS Code, Microsoft 365 Copilot, Cursor and several smaller clients; not Claude Code, which is a terminal
TasksLong-running work: the server returns a task handle and the client polls, so nothing stays connectedOfficial (SEP-2663 final), with the stated intent to move into the core once it stabilizesNot tracked in the official client matrix
Skills over MCPWorkflow instructions with supporting files, served by the server and verified by the hostSEP-2640 final; all four official SDKs have open pull requests, and the Go SDK’s already passes the conformance suitePartial in ChatGPT, fast-agent and the MCP Inspector; full in Apify’s mcpc client. A survey of 22 September 2026 found two of 572 reachable hosted endpoints declaring it
Enterprise-Managed AuthorizationAccess to servers governed by the company’s identity providerStableArchestra.AI and mcpc; no mainstream chat or IDE host
OAuth Client CredentialsAccess for callers with no person presentDraftmcpc
InterceptorsA proposed primitive for validating and transforming payloads: validators that pass or fail, mutators that redact or tagExperimental; the proposal, SEP-2624, is openNone to depend on
VariantsSeveral parallel variants of one server’s surface, chosen per requestExperimental, SEP-2053None to depend on

Two readings of that table help with a roadmap. First, Tasks shows where some extensions end up: it began as an experimental core feature, was redesigned as an extension so it could evolve on real-world feedback, and is meant to move back into the core. Second, an official extension needs a SEP written in the specification’s own MUST and SHOULD language and at least one reference implementation in an official SDK, while an experimental one only needs a working group behind it, and the core maintainers can archive or remove it.

The last row of the diagram is different in kind. Hosts also define conventions of their own, keys in a request’s metadata that one host honours and every other host silently ignores. Claude Code, for example, has keys that keep a tool loaded at session start or force a permission prompt on every call. They’re safe to add and never safe to require.

Reading a vendor’s roadmap

A server’s features sit in three layers, and a roadmap is easier to judge once you place each claim in one:

Core MCP behaviour works in every host → Official extensions negotiated, degrade gracefully; Official extensions negotiated, degrade gracefully → Vendor conventions ignored where unsupported; Vendor conventions ignored where unsupported → Never put required behaviour hereCore MCP behaviourworks in every hostOfficial extensionsnegotiated, degrade gracefullyVendor conventionsignored where unsupportedNever put required behaviour here

My advice, by layer:

  • The core must work on its own. Tools with text output that stands by itself; resources and prompts as accelerators, not dependencies; every interactive feature with a text fallback; every question to the user with a path that works when no user can answer. If the vendor can’t demonstrate the server in a text-only host, the extensions are decoration on something unfinished.
  • Official extensions are a reasonable bet. MCP Apps, Tasks and Skills are negotiated per request and fall back to core behaviour when the host lacks them, so they add value where a host supports them and cost nothing where it doesn’t. Ask the vendor which hosts negotiate each one in its own telemetry, not in the documentation.
  • Experimental extensions are a bet on a working group. Interceptors would change how companies deploy MCP, with a standard policy layer for validation, redaction and audit, and I’m watching it. But a roadmap item that depends on it should sit behind a feature flag, and nothing you need should depend on it.
  • Vendor conventions are enhancements. If a feature only works in one host because of such a key, the vendor should say so.

Method and caveats

  • Built from my guide to MCP servers, written against the 2026-07-28 specification and its registry of deprecated features, and reframed for the people who plan around a server. The statuses and the support facts are as of October 2026, most of them as read on 8 October.
  • The timeline, the lifecycle and the layers come from the specification and its extensions’ documentation. The three readings of the roadmap, and the advice by layer, are mine.
  • Everything here is framed from the specification. It describes no particular vendor, product or deployment, and client support changes monthly, so check a host’s current documentation before you depend on a feature.