Servers to accept older versions of client (#722)

This commit is contained in:
ihrpr
2025-05-15 18:33:31 +01:00
committed by GitHub
parent 5d33861cad
commit 6353dd192c
2 changed files with 99 additions and 1 deletions

View File

@@ -52,6 +52,7 @@ from mcp.shared.session import (
BaseSession,
RequestResponder,
)
from mcp.shared.version import SUPPORTED_PROTOCOL_VERSIONS
class InitializationState(Enum):
@@ -150,13 +151,16 @@ class ServerSession(
):
match responder.request.root:
case types.InitializeRequest(params=params):
requested_version = params.protocolVersion
self._initialization_state = InitializationState.Initializing
self._client_params = params
with responder:
await responder.respond(
types.ServerResult(
types.InitializeResult(
protocolVersion=types.LATEST_PROTOCOL_VERSION,
protocolVersion=requested_version
if requested_version in SUPPORTED_PROTOCOL_VERSIONS
else types.LATEST_PROTOCOL_VERSION,
capabilities=self._init_options.capabilities,
serverInfo=types.Implementation(
name=self._init_options.server_name,