Skip to content

Commit f52ac85

Browse files
committed
refactor(streamable_http): simplify init session check
1 parent 74dfacd commit f52ac85

1 file changed

Lines changed: 10 additions & 13 deletions

File tree

src/mcp/server/streamable_http.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -483,19 +483,16 @@ async def _handle_post_request(self, scope: Scope, request: Request, receive: Re
483483
is_initialization_request = isinstance(message, JSONRPCRequest) and message.method == "initialize"
484484

485485
if is_initialization_request:
486-
# Check if the server already has an established session
487-
if self.mcp_session_id:
488-
# Check if request has a session ID
489-
request_session_id = self._get_session_id(request)
490-
491-
# If request has a session ID but doesn't match, return 404
492-
if request_session_id and request_session_id != self.mcp_session_id: # pragma: no cover
493-
response = self._create_error_response(
494-
"Not Found: Invalid or expired session ID",
495-
HTTPStatus.NOT_FOUND,
496-
)
497-
await response(scope, receive, send)
498-
return
486+
request_session_id = self._get_session_id(request)
487+
if (
488+
self.mcp_session_id and request_session_id and request_session_id != self.mcp_session_id
489+
): # pragma: no cover
490+
response = self._create_error_response(
491+
"Not Found: Invalid or expired session ID",
492+
HTTPStatus.NOT_FOUND,
493+
)
494+
await response(scope, receive, send)
495+
return
499496
elif not await self._validate_request_headers(request, send):
500497
return
501498

0 commit comments

Comments
 (0)