diff --git a/src/mcp/client/session.py b/src/mcp/client/session.py index a0ca751bd..bb888723e 100644 --- a/src/mcp/client/session.py +++ b/src/mcp/client/session.py @@ -121,6 +121,7 @@ def __init__( *, sampling_capabilities: types.SamplingCapability | None = None, experimental_task_handlers: ExperimentalTaskHandlers | None = None, + protocol_version: str | None = None, ) -> None: super().__init__(read_stream, write_stream, read_timeout_seconds=read_timeout_seconds) self._client_info = client_info or DEFAULT_CLIENT_INFO @@ -137,6 +138,9 @@ def __init__( # Experimental: Task handlers (use defaults if not provided) self._task_handlers = experimental_task_handlers or ExperimentalTaskHandlers() + # Protocol version (defaults to LATEST_PROTOCOL_VERSION) + self._protocol_version = protocol_version or types.LATEST_PROTOCOL_VERSION + @property def _receive_request_adapter(self) -> TypeAdapter[types.ServerRequest]: return types.server_request_adapter @@ -168,7 +172,7 @@ async def initialize(self) -> types.InitializeResult: result = await self.send_request( types.InitializeRequest( params=types.InitializeRequestParams( - protocol_version=types.LATEST_PROTOCOL_VERSION, + protocol_version=self._protocol_version, capabilities=types.ClientCapabilities( sampling=sampling, elicitation=elicitation, diff --git a/src/mcp/types/_types.py b/src/mcp/types/_types.py index 9005d253a..26d6abdc2 100644 --- a/src/mcp/types/_types.py +++ b/src/mcp/types/_types.py @@ -1688,11 +1688,11 @@ class ElicitRequest(Request[ElicitRequestParams, Literal["elicitation/create"]]) class ElicitResult(Result): """The client's response to an elicitation request.""" - action: Literal["accept", "decline", "cancel"] + action: Literal["accept", "reject", "cancel"] """ The user action in response to the elicitation. - "accept": User submitted the form/confirmed the action (or consented to URL navigation) - - "decline": User explicitly declined the action + - "reject": User explicitly rejected the action - "cancel": User dismissed without making an explicit choice """