@@ -74,6 +74,7 @@ async def main():
74
74
from mcp .server .session import ServerSession
75
75
from mcp .server .stdio import stdio_server as stdio_server
76
76
from mcp .shared .context import RequestContext
77
+ from mcp .shared .exceptions import McpError
77
78
from mcp .shared .session import RequestResponder
78
79
79
80
logger = logging .getLogger (__name__ )
@@ -393,8 +394,8 @@ async def run(
393
394
read_stream : MemoryObjectReceiveStream [types .JSONRPCMessage | Exception ],
394
395
write_stream : MemoryObjectSendStream [types .JSONRPCMessage ],
395
396
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
398
399
# but also make tracing exceptions much easier during testing and when using
399
400
# in-process servers.
400
401
raise_exceptions : bool = False ,
@@ -429,6 +430,8 @@ async def run(
429
430
)
430
431
)
431
432
response = await handler (req )
433
+ except McpError as err :
434
+ response = err .error
432
435
except Exception as err :
433
436
if raise_exceptions :
434
437
raise err
0 commit comments