MCP SEP Impact Guide: What Each Proposal Changed and Where It Landed
A Specification Enhancement Proposal (SEP) is how a change to the Model Context Protocol is proposed, argued over and recorded. The official SEP index is the source-of-truth list of current proposals and statuses. This guide adds what a flat list cannot show: what each SEP changed, which spec revision or extension it landed in, and which protocol methods it touches. To write one, read how to submit a SEP. Each SEP is also reachable by number, for example /seps/1850.
What the guide adds up to
The official index lists 44 current SEPs: 43 Final and 1 Accepted. The 43 Final proposals comprise 31 Standards Track, 4 Extensions Track and 8 Process SEPs. Of the 31 Standards Track SEPs, 12 landed in 2026-07-28 (9 cited by number, 3 matched by content), 15 in 2025-11-25, 2 are delivered as authorization extensions and 2 have no spec text. The Accepted proposal is a Process SEP and is listed separately because acceptance does not mean a protocol revision has shipped or the proposal has reached Final.
If you maintain an SDK, a client or a server, start with the 2026-07-28 group. It changes the wire protocol: no initialize handshake, new request headers, cache TTLs on list results, multi round-trip requests.
Final SEPs, by where they landed
Standards Track SEPs change the protocol, Extensions Track SEPs describe an optional extension, and Process SEPs change how the project works.
Landed in 2026-07-28 (12)
| SEP | What it changes | Landed | Methods |
|---|---|---|---|
| 2577 Deprecate Roots, Sampling, and Logging | Deprecates Roots, Sampling and Logging; they stay functional during the deprecation window. | 2026-07-28 · cited | roots/list, notifications/roots/list_changed, sampling/createMessage, logging/setLevel, notifications/message |
| 2575 Make MCP Stateless | Removes the initialize handshake: every request carries version and capabilities in _meta. Adds server/discover and subscriptions/listen; removes ping and SSE resumability. | 2026-07-28 · cited | initialize, notifications/initialized, server/discover, subscriptions/listen, resources/subscribe, resources/unsubscribe, ping, logging/setLevel, notifications/roots/list_changed, notifications/subscriptions/acknowledged |
| 2567 Sessionless MCP via Explicit State Handles | Removes protocol-level sessions and Mcp-Session-Id; list endpoints no longer vary per connection, and cross-call state moves into server-minted handles passed as tool arguments. | 2026-07-28 · cited | tools/list, resources/list, prompts/list |
| 2549 TTL for List Results | Requires ttlMs and cacheScope on list and read results so clients can cache them. | 2026-07-28 · cited | tools/list, prompts/list, resources/list, resources/read, resources/templates/list |
| 2468 Recommend Issuer (iss) Parameter in MCP Auth Responses | Authorization servers SHOULD return the iss parameter; clients MUST validate a present iss before redeeming the code. | 2026-07-28 · cited | — |
| 2322 Multi Round-Trip Requests | Multi Round-Trip Requests: a server returns an input_required result and the client retries with inputResponses, replacing server-initiated requests. Every result carries resultType. | 2026-07-28 · cited | roots/list, sampling/createMessage, elicitation/create |
| 2243 HTTP Header Standardization for Streamable HTTP Transport | Streamable HTTP POST requests carry Mcp-Method and Mcp-Name headers; tool parameters can be mirrored into custom headers with x-mcp-header. | 2026-07-28 · cited | tools/call, resources/read, prompts/get |
| 2207 OIDC-Flavored Refresh Token Guidance | Guidance on the offline_access scope and refresh tokens for authorization servers and clients. The changelog does not name it; offline_access first appears in the 2026-07-28 authorization text. | 2026-07-28 · by content | — |
| 2164 Standardize Resource Not Found Error Code | Resource not found changes from -32002 to -32602 (Invalid Params). The changelog states the change without naming the SEP. | 2026-07-28 · by content | resources/read |
| 2133 Extensions | The extension framework: optional, composable extensions negotiated through an extensions field on client and server capabilities. The field first appears in the 2026-07-28 schema. | 2026-07-28 · by content | — |
2106 Tools inputSchema & outputSchema Conform to JSON Schema 2020-12 | inputSchema and outputSchema accept any JSON Schema 2020-12 keywords, and structuredContent may be any JSON value. | 2026-07-28 · cited | tools/list, tools/call |
| 414 Document OpenTelemetry Trace Context Propagation Conventions | Documents OpenTelemetry trace context keys (traceparent, tracestate, baggage) in _meta. | 2026-07-28 · cited | — |
Landed in 2025-11-25 (15)
| SEP | What it changes | Landed | Methods |
|---|---|---|---|
| 1730 SDKs Tiering System | A tiering system for SDKs with feature-support and maintenance requirements. | 2025-11-25 · cited | — |
| 1699 Support SSE polling via server-side disconnect | Streamable HTTP: servers may close an SSE stream at will so clients poll and resume. 2026-07-28 removes SSE resumability again (SEP-2575). | 2025-11-25 · cited | — |
| 1686 Tasks | Experimental tasks: durable requests with polling and deferred results. 2026-07-28 moves them into an extension (SEP-2663); the SEP is kept as a historical record. | 2025-11-25 · cited | tasks/get, tasks/result, tasks/list, tasks/cancel, tools/call |
| 1613 Establish JSON Schema 2020-12 as Default Dialect for MCP | JSON Schema 2020-12 becomes the default dialect for embedded schemas; a $schema field may declare another. | 2025-11-25 · cited | tools/list |
| 1577 Sampling With Tools | Adds tools and toolChoice to sampling/createMessage and soft-deprecates includeContext. | 2025-11-25 · cited | sampling/createMessage |
| 1330 Elicitation Enum Schema Improvements and Standards Compliance | Elicitation enums use standard JSON Schema patterns (titled, untitled, single- and multi-select); enumNames is deprecated. | 2025-11-25 · cited | elicitation/create |
| 1319 Decouple Request Payload from RPC Methods Definition | Schema refactor: request parameters become standalone definitions that the RPC methods refer to. | 2025-11-25 · cited | — |
| 1303 Input Validation Errors as Tool Execution Errors | Input validation errors are returned as tool execution errors, so the model sees them and can retry. | 2025-11-25 · cited | tools/call |
| 1302 Formalize Working Groups and Interest Groups in MCP Governance | Defines Working Groups and Interest Groups and how they are created and governed. | 2025-11-25 · cited | — |
| 1036 URL Mode Elicitation for secure out-of-band interactions | URL mode elicitation for out-of-band interactions such as credentials, third-party OAuth and payments. 2026-07-28 removes notifications/elicitation/complete. | 2025-11-25 · cited | elicitation/create, notifications/elicitation/complete |
| 1034 Support default values for all primitive types in elicitation schemas | Default values for every primitive type in elicitation schemas (string, number, enum). | 2025-11-25 · cited | elicitation/create |
| 991 Enable URL-based Client Registration using OAuth Client ID Metadata Documents | OAuth Client ID Metadata Documents as a recommended client registration mechanism. | 2025-11-25 · cited | — |
| 986 Specify Format for Tool Names | Guidance on tool names: 1 to 64 characters from a small allowed set. | 2025-11-25 · cited | tools/list, tools/call |
| 985 Align OAuth 2.0 Protected Resource Metadata with RFC 9728 | Protected Resource Metadata discovery follows RFC 9728: the WWW-Authenticate header becomes optional, with a .well-known fallback. | 2025-11-25 · cited | — |
| 973 Expose additional metadata for Implementations, Resources, Tools and Prompts | Servers can expose icons on tools, resources, resource templates and prompts, plus icons and websiteUrl on the implementation. | 2025-11-25 · cited | — |
Standards Track SEPs delivered as extensions (2)
| SEP | What it changes | Landed | Methods |
|---|---|---|---|
| 1046 Support OAuth client credentials flow in authorization | Adds the OAuth client credentials flow for machine-to-machine use. The official docs describe it as an extension; that page does not name this SEP. | extension io.modelcontextprotocol/oauth-client-credentials · docs | — |
| 990 Enable enterprise IdP policy controls during MCP OAuth flows | Enterprise IdP policy controls during the OAuth flow. The extension page links this SEP. | extension io.modelcontextprotocol/enterprise-managed-authorization · docs | — |
Standards Track SEPs without spec text (2)
| SEP | What it changes | Landed | Methods |
|---|---|---|---|
| 2260 Require Server requests to be associated with a Client request. | Requires roots/list, sampling/createMessage and elicitation/create to be tied to an originating client request. No spec text found; 2026-07-28 replaces these requests with MRTR (SEP-2322). | not found | roots/list, sampling/createMessage, elicitation/create |
| 1024 MCP Client Security Requirements for Local Server Installation | Security requirements for clients that offer one-click installation of local servers. Cited by the local-server security tutorial, not by the spec text. | docs only · docs | — |
Extensions Track (4)
| SEP | What it changes | Extension | Methods |
|---|---|---|---|
| 2663 Tasks Extension | Moves tasks out of core into the io.modelcontextprotocol/tasks extension, which defines tasks/get, tasks/update and tasks/cancel and drops tasks/result and tasks/list. | io.modelcontextprotocol/tasks · 2026-07-28 · cited | tasks/get, tasks/cancel, tasks/update, tasks/result, tasks/list, tools/call |
| 2640 Skills Extension | Serves Agent Skills over the Resources primitive: each file of a skill directory is a resource, conventionally under the skill:// scheme. | io.modelcontextprotocol/skills · docs | resources/read, resources/list |
| 2127 MCP Server Cards - HTTP Server Discovery | A self-describing Server Card for pre-connection discovery of transports, versions and connection guidance. The SEP file says Final while the Working Group page lists it as Draft. | docs | server/discover |
| 1865 MCP Apps - Interactive User Interfaces for MCP | MCP Apps: servers deliver interactive UI through ui:// resources linked to tools by metadata. | MCP Apps · docs | — |
Process (8)
| SEP | What it changes | Evidence |
|---|---|---|
| 2596 Specification Feature Lifecycle and Deprecation Policy | Defines the Active, Deprecated and Removed feature states, a twelve-month minimum deprecation window and a registry of deprecated features. | 2026-07-28 · cited |
| 2484 Require Conformance Tests for Standards Track SEPs to Reach Final Status | A Standards Track SEP that changes observable behavior needs a merged conformance scenario before it can become Final. | docs |
| 2149 MCP Group Governance and Charter Template | Governance rules and a charter template for Working Groups and Interest Groups. | docs |
| 2148 MCP Contributor Ladder | A contributor ladder from first-time contributor to Core Maintainer. | docs |
| 2085 Governance Succession and Amendment Procedures | Procedures for Lead Maintainer succession and for amending the governance itself. | docs |
| 1850 PR-Based SEP Workflow | SEPs live as markdown files in the seps/ directory, numbered after their pull request. | 2026-07-28 · cited |
| 994 Shared Communication Practices/Guidelines | Official communication channels and guidelines for the community. | 2025-11-25 · cited |
| 932 Model Context Protocol Governance | The formal governance model and the SEP process. | 2025-11-25 · cited |
Accepted, not yet landed (1)
| SEP | What it proposes | Status |
|---|---|---|
| 3398 Release Cycle Updates | Proposes a predictable March and September release cadence, with the first transition target in March 2027. | Accepted Process SEP. It is not a released protocol revision and is not Final. |
The changelogs of 2025-11-25 and 2026-07-28 also cite SEP-835, SEP-837 and SEP-2352, which have no file in seps/ and are therefore not in the official index.
Method lifecycle across revisions
✓ means the method is in that revision’s core schema.json; — means it is not. deprecated marks a method that is still in the 2026-07-28 schema but deprecated by SEP-2577. extension marks a method defined by the Tasks extension instead of the core schema. The last column lists the SEPs whose text or changelog entry names the method.
| Method | 2024-11-05 | 2025-03-26 | 2025-06-18 | 2025-11-25 | 2026-07-28 | SEPs |
|---|---|---|---|---|---|---|
completion/complete | ✓ | ✓ | ✓ | ✓ | ✓ | — |
elicitation/create | — | — | ✓ | ✓ | ✓ | 2322, 2260, 1330, 1036, 1034 |
initialize | ✓ | ✓ | ✓ | ✓ | — | 2575 |
logging/setLevel | ✓ | ✓ | ✓ | ✓ | — | 2577, 2575 |
notifications/cancelled | ✓ | ✓ | ✓ | ✓ | ✓ | — |
notifications/elicitation/complete | — | — | — | ✓ | — | 1036 |
notifications/initialized | ✓ | ✓ | ✓ | ✓ | — | 2575 |
notifications/message | ✓ | ✓ | ✓ | ✓ | ✓ deprecated | 2577 |
notifications/progress | ✓ | ✓ | ✓ | ✓ | ✓ | — |
notifications/prompts/list_changed | ✓ | ✓ | ✓ | ✓ | ✓ | — |
notifications/resources/list_changed | ✓ | ✓ | ✓ | ✓ | ✓ | — |
notifications/resources/updated | ✓ | ✓ | ✓ | ✓ | ✓ | — |
notifications/roots/list_changed | ✓ | ✓ | ✓ | ✓ | — | 2577, 2575 |
notifications/subscriptions/acknowledged | — | — | — | — | ✓ | 2575 |
notifications/tasks/status | — | — | — | ✓ | — | — |
notifications/tools/list_changed | ✓ | ✓ | ✓ | ✓ | ✓ | — |
ping | ✓ | ✓ | ✓ | ✓ | — | 2575 |
prompts/get | ✓ | ✓ | ✓ | ✓ | ✓ | 2243 |
prompts/list | ✓ | ✓ | ✓ | ✓ | ✓ | 2567, 2549 |
resources/list | ✓ | ✓ | ✓ | ✓ | ✓ | 2640, 2567, 2549 |
resources/read | ✓ | ✓ | ✓ | ✓ | ✓ | 2640, 2549, 2243, 2164 |
resources/subscribe | ✓ | ✓ | ✓ | ✓ | — | 2575 |
resources/templates/list | ✓ | ✓ | ✓ | ✓ | ✓ | 2549 |
resources/unsubscribe | ✓ | ✓ | ✓ | ✓ | — | 2575 |
roots/list | ✓ | ✓ | ✓ | ✓ | ✓ deprecated | 2577, 2322, 2260 |
sampling/createMessage | ✓ | ✓ | ✓ | ✓ | ✓ deprecated | 2577, 2322, 2260, 1577 |
server/discover | — | — | — | — | ✓ | 2575, 2127 |
subscriptions/listen | — | — | — | — | ✓ | 2575 |
tasks/cancel | — | — | — | ✓ | extension | 2663, 1686 |
tasks/get | — | — | — | ✓ | extension | 2663, 1686 |
tasks/list | — | — | — | ✓ | — | 2663, 1686 |
tasks/result | — | — | — | ✓ | — | 2663, 1686 |
tasks/update | — | — | — | — | extension | 2663 |
tools/call | ✓ | ✓ | ✓ | ✓ | ✓ | 2663, 2243, 2106, 1686, 1303, 986 |
tools/list | ✓ | ✓ | ✓ | ✓ | ✓ | 2567, 2549, 2106, 1613, 986 |
Related reading
- Changelog of the 2026-07-28 revision and of the 2025-11-25 revision: the official summary of what each revision changed.
- Feature lifecycle and deprecation policy: the Active, Deprecated and Removed states that SEP-2596 defines.
- MCP tools explained and MCP resources explained: what several of these SEPs mean for the two most used primitives.
Versions and Verification
Everything is read from one pinned commit of the official repository (ccaf9102): 44 current files in seps/, the five schema.json files, the changelogs of each revision and the official docs pages. The landing tables cover the 43 Final SEPs; SEP-3398 is shown separately as Accepted. The tables were checked by script against the pinned commit; a change upstream needs a re-run.