From fbf4acc6793d1432dd2c7978d0c97e52ccf1819e Mon Sep 17 00:00:00 2001 From: David Soria Parra Date: Thu, 13 Feb 2025 10:21:31 +0000 Subject: [PATCH] fix: method ordering --- src/mcp/server/lowlevel/server.py | 48 +++++++++---------- .../test_188_concurrency.py} | 0 2 files changed, 24 insertions(+), 24 deletions(-) rename tests/{server/fastmcp/test_concurrency.py => issues/test_188_concurrency.py} (100%) diff --git a/src/mcp/server/lowlevel/server.py b/src/mcp/server/lowlevel/server.py index 27ca276..c0008b3 100644 --- a/src/mcp/server/lowlevel/server.py +++ b/src/mcp/server/lowlevel/server.py @@ -459,30 +459,6 @@ class Server(Generic[LifespanResultT]): return decorator - async def _handle_message( - self, - message: RequestResponder[types.ClientRequest, types.ServerResult] - | types.ClientNotification - | Exception, - session: ServerSession, - lifespan_context: LifespanResultT, - raise_exceptions: bool = False, - ): - with warnings.catch_warnings(record=True) as w: - match message: - case ( - RequestResponder(request=types.ClientRequest(root=req)) as responder - ): - with responder: - await self._handle_request( - message, req, session, lifespan_context, raise_exceptions - ) - case types.ClientNotification(root=notify): - await self._handle_notification(notify) - - for warning in w: - logger.info(f"Warning: {warning.category.__name__}: {warning.message}") - async def run( self, read_stream: MemoryObjectReceiveStream[types.JSONRPCMessage | Exception], @@ -512,6 +488,30 @@ class Server(Generic[LifespanResultT]): raise_exceptions, ) + async def _handle_message( + self, + message: RequestResponder[types.ClientRequest, types.ServerResult] + | types.ClientNotification + | Exception, + session: ServerSession, + lifespan_context: LifespanResultT, + raise_exceptions: bool = False, + ): + with warnings.catch_warnings(record=True) as w: + match message: + case ( + RequestResponder(request=types.ClientRequest(root=req)) as responder + ): + with responder: + await self._handle_request( + message, req, session, lifespan_context, raise_exceptions + ) + case types.ClientNotification(root=notify): + await self._handle_notification(notify) + + for warning in w: + logger.info(f"Warning: {warning.category.__name__}: {warning.message}") + async def _handle_request( self, message: RequestResponder, diff --git a/tests/server/fastmcp/test_concurrency.py b/tests/issues/test_188_concurrency.py similarity index 100% rename from tests/server/fastmcp/test_concurrency.py rename to tests/issues/test_188_concurrency.py