Resolve protocol version per request and expose it as ctx.protocol_version (#2886)

This commit is contained in:
Max 2026-06-17 08:46:42 +01:00 • committed by GitHub
commit 734746a3d9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -248,11 +248,12 @@ class StreamableHTTPServerTransport:
metadata = ServerMessageMetadata(
request_context=request,
protocol_version=protocol_version,
close_sse_stream=close_stream_callback,
close_standalone_sse_stream=close_standalone_stream_callback,
)
else:
metadata = ServerMessageMetadata(request_context=request)
metadata = ServerMessageMetadata(request_context=request, protocol_version=protocol_version)
return SessionMessage(message, metadata=metadata)
@ -506,7 +507,10 @@ class StreamableHTTPServerTransport:
await response(scope, receive, send)
# Process the message after sending the response
metadata = ServerMessageMetadata(request_context=request)
metadata = ServerMessageMetadata(
request_context=request,
protocol_version=request.headers.get(MCP_PROTOCOL_VERSION_HEADER, DEFAULT_NEGOTIATED_VERSION),
)
session_message = SessionMessage(message, metadata=metadata)
await writer.send(session_message)
@ -529,7 +533,7 @@ class StreamableHTTPServerTransport:
if self.is_json_response_enabled:
# Process the message
metadata = ServerMessageMetadata(request_context=request)
metadata = ServerMessageMetadata(request_context=request, protocol_version=protocol_version)
session_message = SessionMessage(message, metadata=metadata)
await writer.send(session_message)
try: