Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@kurtisvg
Copy link
Contributor

The current language in the spec (2025-06-18) reads:

For backwards compatibility, if the server does not receive an MCP-Protocol-Version header, and has no other way to identify the version - for example, by relying on the protocol version negotiated during initialization - the server SHOULD assume protocol version 2025-06-18.

This updates the language to use MAY, and to assume the version is 2025-03-18 (since in version 2025-06-18 onwards the header is required).

Motivation and Context

Fixes #548

How Has This Been Tested?

Breaking Changes

I believe this is a non-breaking change because 2025-06-18 already required the MCP-Protocol-Version header. While change in version assumption shouldn't actually break anyone on 2025-06-18, and will actually allow for better supporting backwards compatibility with 2025-03-18.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

@jonathanhefner
Copy link
Member

I have an open PR for this: #830 😄

@kurtisvg
Copy link
Contributor Author

@jonathanhefner Thanks. Would you mind updating to include "MAY" as well? I will close in favor of yours.

@jonathanhefner
Copy link
Member

@kurtisvg If I understand correctly, you're saying change "SHOULD" to "MAY" in order to allow servers to reject requests that are missing the MCP-Protocol-Version header? Since that would be a spec change (as opposed to a correction), I've opened a separate PR: #859.

@kurtisvg
Copy link
Contributor Author

@kurtisvg If I understand correctly, you're saying change "SHOULD" to "MAY" in order to allow servers to reject requests that are missing the MCP-Protocol-Version header? Since that would be a spec change (as opposed to a correction), I've opened a separate PR: #859.

@jonathanhefner IIUC, SHOULD implies it's preferred but not required. MAY implies we can do it if we want. Today it's permissible in the spec to reject the request missing the header (in fact, it also says you MUST for this version of the spec). IMO, clarifying it should be MAY instead of SHOULD isn't a breaking change and is preferred so folks don't try to depend on the behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants