SEP-2596: Specification Feature Lifecycle and Deprecation Policy#2596
Merged
mcp-commander[bot] merged 18 commits intoMay 18, 2026
Conversation
a2462b2 to
fadbbab
Compare
4bc379a to
e81fb67
Compare
e81fb67 to
3ef12c4
Compare
🏠 Remote-Dev: homespace
3ef12c4 to
c7d305b
Compare
kurtisvg
reviewed
Apr 21, 2026
Requires any named replacement to already be Active when the deprecation lands (not just at removal time), adds an SDK-side deprecation-marking expectation, and rewrites the Tier-1 SDK removal gate to say "users can complete the migration" rather than the ambiguous "no longer required for protocol conformance." Also drops the angle-bracket email from the Author line, which was breaking MDX generation. :house: Remote-Dev: homespace
Anchors every clock to a knowable date (deprecation SEP reaching Final and revisions being "released as Current") so the twelve-month and ninety-day floors can be computed without guessing a future publication date. Points all decision steps at the governance Decision Process section rather than SEP-932, which has no such section. Reframes §Transition as an explicit grandfathering clause for the two pre-existing deprecations, with their migration targets recorded so the removal procedure has something to check. Also: replacements must be Active in a Current revision (not just draft), expedited shortening can be approved post-Final via the removal SEP, the §Roles table now covers restoration and the SDK waiver, the states table uses capital-C Current consistently, RFC 2026 swapped for RFC 8996, and the Reference Implementation no longer promises schema.ts tags for transport types that do not exist. :house: Remote-Dev: homespace
…cycle-and-deprecation # Conflicts: # docs/docs.json # docs/seps/index.mdx :house: Remote-Dev: homespace
States explicitly that a feature is Deprecated from the moment its SEP reaches Final rather than waiting for the next spec revision, and explains why a feature may remain Deprecated indefinitely. Points the roots/sampling motivation bullet at SEP-2577 instead of meeting notes, notes Lead Maintainer veto in the Roles table, and switches three British spellings to American. :house: Remote-Dev: homespace
CaitieM20
reviewed
Apr 24, 2026
…tifacts Adds an explicit Relocating-to-extension subsection for low-usage features moving out of core (the SEP-2577 case), and replaces the undefined "stable, generally available release" bar with the concrete SEP-2133 artifacts a sponsor can check: Extensions Track SEP at Final and publication in an ext-* (not experimental-ext-*) repository. Also fixes the includeContext reference-implementation note (it is a string union, not an enum) and removes section-sign prefixes from cross-references. :house: Remote-Dev: homespace
pcarleton
reviewed
Apr 24, 2026
CaitieM20
reviewed
Apr 24, 2026
Co-authored-by: Paul Carleton <paulcarletonjr@gmail.com>
pcarleton
reviewed
Apr 24, 2026
The deprecation policy should establish the lifecycle states and the two-SEP procedure without prescribing where deprecated functionality lands. Remove the dedicated relocation-to-extension section, the extension/SDK-specific migration-target readiness bars in the deprecation and removal SEP requirements, the extensions carve-out in Scope, and the SEP-2133 link reference. The general principle remains: a feature is not deprecated while its documented replacement is still pending. :house: Remote-Dev: homespace
…tions Address ecosystem-effects feedback: the lifecycle is only effective if the deprecation signal reaches implementers. Pull the Tier 1 SDK deprecation-marking bullet out of the spec-side artifact list into its own section, upgrade SHOULD to MUST for the language-native deprecation marker, and add a SHOULD for a runtime warning when a deprecated feature is exercised (the testable signal for the conformance suite). Make persistent non-compliance grounds for the SEP-1730 Tier Relegation Process. Strengthen the revision-support-window open question with the arithmetic argument: a Tier 1 support window shorter than the twelve-month deprecation floor lets an SDK consumer leapfrog the Deprecated state entirely. Recommend the SEP-1730 amendment be pursued alongside this SEP. Rename the "Runtime deprecation signal" open question to "Wire-level deprecation signal" since the SDK-side runtime warning is now in the policy body; the remaining gap is consumers without an official SDK. :house: Remote-Dev: homespace
pcarleton
reviewed
May 6, 2026
clareliguori
reviewed
May 6, 2026
clareliguori
reviewed
May 6, 2026
pja-ant
reviewed
May 7, 2026
dsp-ant
reviewed
May 8, 2026
Maintainer Activity CheckHi @localden! You're assigned to this SEP but there hasn't been any activity from you in 16 days. Please provide an update on:
If you're no longer able to sponsor this SEP, please let us know so we can find another maintainer. This is an automated message from the SEP lifecycle bot. |
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
Address review feedback on the lifecycle mechanics: - Measure the minimum deprecation window from the release of the revision that carries the deprecation rather than from the SEP-Final date, so every feature deprecated in the same revision shares one earliest removal. Resolves the internal inconsistency with the Tier 1 section, which was already release-anchored, and matches SEP-2577. - Remove the second (removal) SEP. Removal is a Core Maintainer decision at release preparation with the migration/SDK confirmations recorded alongside the changelog entry. A SEP is now reserved for extending the window, restoring a feature, or expedited removal. - Add docs/specification/draft/deprecated.mdx as a standing registry of Deprecated features and wire it into the deprecation artifacts. - Transition: three-month grace for HTTP+SSE (already deprecated well over twelve months); includeContext values follow the SEP-2577 Sampling deprecation rather than an independent clock. - Reconcile Rationale, Roles, Transition, and Backward Compatibility with the above; point the SEP-2577 reference at the rendered page. :house: Remote-Dev: homespace
…nsition This is a Process SEP with no separate reference-implementation PR. Move the schema/prose/changelog/registry edits into Transition as direct draft/ changes when the SEP reaches Final, and reduce the Reference Implementation section to a pointer. :house: Remote-Dev: homespace
SEP-1730 already requires Tier-1 SDKs to implement new protocol features within six months, and the replacement has been Active for at least the twelve-month window before removal is eligible, so a separate release-prep check that SDKs have shipped the migration is implied by existing conformance. Replace the confirmation with a sentence noting that, drop the waiver row from the Roles table, and rebase the twelve-month rationale on removal being permissive rather than on the removed check. :house: Remote-Dev: homespace
… Removed Relax the migration-target rule so the replacement and the deprecation may land in the same revision (the twelve-month window from that revision's release is the proving period; matches the 2025-03-26 Streamable HTTP precedent). State that Removed does not oblige an SDK to drop the feature from releases supporting an earlier revision, and that the SDK deprecation marker is intentionally revision-agnostic. :house: Remote-Dev: homespace
Regenerated docs/seps/index.mdx to resolve the conflict from new SEPs landing on main. :house: Remote-Dev: homespace
dsp-ant
previously approved these changes
May 18, 2026
dsp-ant
reviewed
May 18, 2026
Member
dsp-ant
left a comment
There was a problem hiding this comment.
This PR should include docs/specification/draft/deprecated.mdx
Replace the rationale-heavy prose with the agreed two-point structure: removal at Core Maintainer discretion after the window, SEPs only for changes to the schedule. Note indefinite deprecation is allowed and that removal adds no SDK requirements beyond the tiering system.
Resolve generated-file conflicts in docs/docs.json and docs/seps/index.mdx by regenerating SEP docs from source (npm run generate:seps) so SEP-2596 lists alongside SEP-2106, SEP-2164, SEP-2468, and SEP-2484 from main. :house: Remote-Dev: homespace
Contributor
Author
|
/lgtm force Chatted with DSP, good to merge. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Establishes a formal lifecycle for individual features within the MCP specification (Active, Deprecated, Removed), with a minimum twelve-month window between deprecation and earliest removal, required
@deprecatedschema annotations and changelog entries, and a two-SEP procedure where deprecation and removal are each their own proposal.This is the mechanics follow-up to the direction recorded in the April 1, 2026 Core Maintainer meeting ("formal versioning status and SDK deprecation cycle: direction agreed, mechanics TBD") and the support-window model floated at the NYC maintainer meeting. It reclassifies the two existing informal deprecations (the HTTP+SSE transport and the
includeContextvaluesthisServer/allServers) under the new policy and notes its relationship to SEP-1400 (semantic versioning) as complementary rather than overlapping.