diff --git a/src/mcp/shared/session.py b/src/mcp/shared/session.py index 341e1fac0..6764ce7cf 100644 --- a/src/mcp/shared/session.py +++ b/src/mcp/shared/session.py @@ -280,6 +280,16 @@ async def send_request( ), ) ) + except (anyio.EndOfStream, anyio.ClosedResourceError) as e: + raise McpError( + ErrorData( + code=CONNECTION_CLOSED, + message=( + f"Connection closed while waiting for response to " + f"{request.__class__.__name__}: {e}" + ), + ) + ) if isinstance(response_or_error, JSONRPCError): raise McpError(response_or_error.error)