Skip to content

feat: Add protocol_version parameter to ClientSession#2313

Closed
goingforstudying-ctrl wants to merge 2 commits intomodelcontextprotocol:mainfrom
goingforstudying-ctrl:fix/protocol-version-override
Closed

feat: Add protocol_version parameter to ClientSession#2313
goingforstudying-ctrl wants to merge 2 commits intomodelcontextprotocol:mainfrom
goingforstudying-ctrl:fix/protocol-version-override

Conversation

@goingforstudying-ctrl
Copy link

Summary

Add optional protocol_version parameter to ClientSession.__init__() to allow callers to override the default LATEST_PROTOCOL_VERSION when connecting to servers that require a specific protocol version.

Changes

  • Added protocol_version: str | None = None parameter to ClientSession.__init__()
  • Store protocol version in self._protocol_version (defaults to LATEST_PROTOCOL_VERSION)
  • Use self._protocol_version in initialize() instead of hardcoded constant

Backwards Compatibility

This is a non-breaking change. Existing callers will continue to use LATEST_PROTOCOL_VERSION as the default. Callers that need a specific version can pass it explicitly.

Example Usage

# Connect to server requiring specific protocol version
async with ClientSession(read_stream, write_stream, protocol_version=2025-06-18) as session:
    await session.initialize()

Fixes #2307

PR-Contributor added 2 commits March 19, 2026 21:23
Add optional protocol_version parameter to ClientSession.__init__() to allow
callers to override the default LATEST_PROTOCOL_VERSION when connecting to
servers that require a specific protocol version.

Fixes modelcontextprotocol#2307
@maxisbey maxisbey closed this Mar 20, 2026
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.

[mcp/python-sdk] ClientSession has no way to specify protocolVersion

2 participants