@@ -74,6 +74,7 @@ async def main():
7474from mcp .server .session import ServerSession
7575from mcp .server .stdio import stdio_server as stdio_server
7676from mcp .shared .context import RequestContext
77+ from mcp .shared .exceptions import McpError
7778from mcp .shared .session import RequestResponder
7879
7980logger = logging .getLogger (__name__ )
@@ -393,8 +394,8 @@ async def run(
393394 read_stream : MemoryObjectReceiveStream [types .JSONRPCMessage | Exception ],
394395 write_stream : MemoryObjectSendStream [types .JSONRPCMessage ],
395396 initialization_options : InitializationOptions ,
396- # When True , exceptions are returned as messages to the client.
397- # When False , exceptions are raised, which will cause the server to shut down
397+ # When False , exceptions are returned as messages to the client.
398+ # When True , exceptions are raised, which will cause the server to shut down
398399 # but also make tracing exceptions much easier during testing and when using
399400 # in-process servers.
400401 raise_exceptions : bool = False ,
@@ -429,6 +430,8 @@ async def run(
429430 )
430431 )
431432 response = await handler (req )
433+ except McpError as err :
434+ response = err .error
432435 except Exception as err :
433436 if raise_exceptions :
434437 raise err
0 commit comments