SEP-1309: Add spec and SDK versioning guidelines#1404
SEP-1309: Add spec and SDK versioning guidelines#1404pantanurag555 wants to merge 1 commit intomodelcontextprotocol:mainfrom
Conversation
|
@pantanurag555 @000-000-000-000-000 👋 just as a reminder, we're aiming to ensure that all SEPs that are on-deck for the |
docs/community/governance.mdx
Outdated
| @@ -110,6 +112,29 @@ All proposals must have a **sponsor** from the MCP steering group (maintainer, c | |||
|
|
|||
| Once proposals have a sponsor, they are assigned to the sponsor and are tagged `draft`. | |||
|
|
|||
| ### SDK Versioning | |||
|
|
|||
| SDK maintainers have the freedom to do SDK version releases at their own pace. Each SDK version release **SHOULD** contain, as part of its code, the specification versions that are supported by the SDK version release. | |||
There was a problem hiding this comment.
This could be reframed.
| SDK maintainers have the freedom to do SDK version releases at their own pace. Each SDK version release **SHOULD** contain, as part of its code, the specification versions that are supported by the SDK version release. | |
| SDK maintainers can release new SDK versions at the pace suitable for their respective libraries. | |
| Each SDK release **MUST** be clear about the protocol specification versions that are supported by the library. |
There was a problem hiding this comment.
I am fine with reframing the first statement. I do want to leave the SHOULD statement in there for the reason I mentioned above. Let me know if you don't agree with having the statement in there.
There was a problem hiding this comment.
I have left the SHOULD statement in there but reframed the first sentence. Let me know if you disagree with the current structure.
|
@pantanurag555 another thing to mention is that some SDKs are community-driven. This needs to be captured in the verbiage above. |
|
@localden I was unsure what is the ideal place to mention |
029f75c to
7159338
Compare
| { | ||
| "source": "/docs/concepts/cancellation", | ||
| "destination": "/specification/2025-06-18/basic/utilities/cancellation" | ||
| }, | ||
| { | ||
| "source": "/docs/concepts/ping", | ||
| "destination": "/specification/2025-06-18/basic/utilities/ping" | ||
| }, | ||
| { | ||
| "source": "/docs/concepts/progress", | ||
| "destination": "/specification/2025-06-18/basic/utilities/progress" | ||
| }, | ||
| { | ||
| "source": "/docs/concepts/completion", | ||
| "destination": "/specification/2025-06-18/server/utilities/completion" | ||
| }, | ||
| { | ||
| "source": "/docs/concepts/logging", | ||
| "destination": "/specification/2025-06-18/server/utilities/logging" | ||
| }, | ||
| { | ||
| "source": "/docs/concepts/pagination", | ||
| "destination": "/specification/2025-06-18/server/utilities/pagination" | ||
| }, |
There was a problem hiding this comment.
These are redirect links that are used for the table. Added a few for the new features that we have used in these tables.
docs/docs/sdk.mdx
Outdated
| | Specification Version | Status | [Typescript] | [Python] | [Go] | [Kotlin] | [Swift] | [Java] | [C#] | [Ruby] | [Rust] | | ||
| |-------------------------- |---------- |-------------- |---------- |------ |---------- |--------- |-------- |------ |-------- |-------- | | ||
| | [2024-11-05][2024-11-05] | ✅ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [2025-03-26][2025-03-26] | ✅ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [2025-06-18][2025-06-18] | ✅ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
|
|
There was a problem hiding this comment.
can we get this filled out? Also what about the thanksgiving spec release?
There was a problem hiding this comment.
Added the thanksgiving spec release.
This needs to be filled out by the SDK maintainers since they will be the most familiar with the version releases that are compliant with a given protocol spec (and when support was dropped). Eventually conformance tests can help with filling out this matrix.
|
|
||
| </div> | ||
|
|
||
| ### Client Features |
There was a problem hiding this comment.
what about auth stuff like CIMD?
There was a problem hiding this comment.
Auth was discussed but we didn't classify it as a feature to prevent feature creep. I also think of auth as an umbrella term and we would need to go more granular otherwise a simple mark indicating compliance, partial compliance or not compliant won't signify much.
| | [Typescript] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [Python] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [Go] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [Kotlin] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [Swift] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [Java] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [C#] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [Ruby] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
| | [Rust] | ❓ | ❓ | ❓ | ❓ | ❓ | ❓ | | ||
|
|
There was a problem hiding this comment.
how are we going to get this stuff filled out?
There was a problem hiding this comment.
This needs to be filled out by the SDK maintainers since they will be the most intimately familiar with whether a certain feature in an SDK is compliant according to the latest spec version or not.
Eventually this will be updated based on conformance tests specific for each feature (either manually or in an automated manner).
|
currently php sdk is missing 😢 |
|
My bad 😅 Adding it right now. Thanks for the callout. |
|
Is this only for the official SDK? I've build an alternative typescript SDK and would be cool to feature community ones. |
Maintainer Activity CheckYou're assigned to this SEP but there hasn't been any activity from you in 66 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. |
Add 10 SEPs that were missed during the initial migration in PR #1804: - SEP-991: OAuth Client ID Metadata Documents (Final) - SEP-1024: MCP Client Security Requirements (Final - PR #1025 merged) - SEP-1034: Default values for elicitation schemas (Final) - SEP-1036: URL Mode Elicitation (Final) - SEP-1303: Input Validation Errors (Final) - SEP-1577: Sampling With Tools (Final) - SEP-1613: JSON Schema 2020-12 Default Dialect (Final) - SEP-1686: Tasks (Final) - SEP-1699: SSE Polling via server-side disconnect (Final) - SEP-1730: SDKs Tiering System (Final) Note: SEP-1309 (Specification Version Management) was NOT included as PR #1404 implementing it is still open. Also fixes formatting issues in SEP metadata (Type, Author fields).
Add 10 SEPs that were missed during the initial migration in PR #1804: - SEP-991: OAuth Client ID Metadata Documents (Final) - SEP-1024: MCP Client Security Requirements (Final - PR #1025 merged) - SEP-1034: Default values for elicitation schemas (Final) - SEP-1036: URL Mode Elicitation (Final) - SEP-1303: Input Validation Errors (Final) - SEP-1577: Sampling With Tools (Final) - SEP-1613: JSON Schema 2020-12 Default Dialect (Final) - SEP-1686: Tasks (Final) - SEP-1699: SSE Polling via server-side disconnect (Final) - SEP-1730: SDKs Tiering System (Final) Note: SEP-1309 (Specification Version Management) was NOT included as PR #1404 implementing it is still open. Also fixes formatting issues in SEP metadata (Type, Author fields).
Maintainer Activity CheckYou're assigned to this SEP but there hasn't been any activity from you in 15 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. |
Maintainer Activity CheckYou're assigned to this SEP but there hasn't been any activity from you in 14 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. |
…ontextprotocol#2136) Add 10 SEPs that were missed during the initial migration in PR modelcontextprotocol#1804: - SEP-991: OAuth Client ID Metadata Documents (Final) - SEP-1024: MCP Client Security Requirements (Final - PR modelcontextprotocol#1025 merged) - SEP-1034: Default values for elicitation schemas (Final) - SEP-1036: URL Mode Elicitation (Final) - SEP-1303: Input Validation Errors (Final) - SEP-1577: Sampling With Tools (Final) - SEP-1613: JSON Schema 2020-12 Default Dialect (Final) - SEP-1686: Tasks (Final) - SEP-1699: SSE Polling via server-side disconnect (Final) - SEP-1730: SDKs Tiering System (Final) Note: SEP-1309 (Specification Version Management) was NOT included as PR modelcontextprotocol#1404 implementing it is still open. Also fixes formatting issues in SEP metadata (Type, Author fields).
Maintainer Activity CheckYou're assigned to this SEP but there hasn't been any activity from you in 20 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. |
Motivation and Context
This PR adds the specification and SDK versioning guidelines introduced in the accepted #1309 to the specification documentation.
How Has This Been Tested?
Tested locally using the instructions in CONTRIBUTING.md.
Breaking Changes
None
Types of changes
Checklist
Additional context
There is some confusion regarding the best place to add these guidelines. The implementation tracking matrix should live in the SDKs section under Documentation tab. However, I am open to suggestion for the versioning guidelines. Currently I have added them in the Versioning section under Documentation tab. There can also be a case made to break them up and add them to the Governance and Stewardship section under the Community tab or to actually add them within the Specification tab somewhere near the Version Negotiation guidelines. Open to feedback on this.