Skip to content

Commit 5fa31c3

Browse files
author
PR-Contributor
committed
feat: Add protocol_version parameter to ClientSession
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 #2307
1 parent b33c811 commit 5fa31c3

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/mcp/client/session.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ def __init__(
121121
*,
122122
sampling_capabilities: types.SamplingCapability | None = None,
123123
experimental_task_handlers: ExperimentalTaskHandlers | None = None,
124+
protocol_version: str | None = None,
124125
) -> None:
125126
super().__init__(read_stream, write_stream, read_timeout_seconds=read_timeout_seconds)
126127
self._client_info = client_info or DEFAULT_CLIENT_INFO
@@ -136,6 +137,9 @@ def __init__(
136137

137138
# Experimental: Task handlers (use defaults if not provided)
138139
self._task_handlers = experimental_task_handlers or ExperimentalTaskHandlers()
140+
141+
# Protocol version (defaults to LATEST_PROTOCOL_VERSION)
142+
self._protocol_version = protocol_version or types.LATEST_PROTOCOL_VERSION
139143

140144
@property
141145
def _receive_request_adapter(self) -> TypeAdapter[types.ServerRequest]:
@@ -168,7 +172,7 @@ async def initialize(self) -> types.InitializeResult:
168172
result = await self.send_request(
169173
types.InitializeRequest(
170174
params=types.InitializeRequestParams(
171-
protocol_version=types.LATEST_PROTOCOL_VERSION,
175+
protocol_version=self._protocol_version,
172176
capabilities=types.ClientCapabilities(
173177
sampling=sampling,
174178
elicitation=elicitation,

0 commit comments

Comments
 (0)