From afe1c0913a6692bd202882b938cc9b3046e28aae Mon Sep 17 00:00:00 2001 From: David Soria Parra Date: Fri, 22 Nov 2024 22:21:10 +0000 Subject: [PATCH] When any handler raises an McpError, we pass it as a response --- src/mcp/server/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mcp/server/__init__.py b/src/mcp/server/__init__.py index ae78f36..1f77c19 100644 --- a/src/mcp/server/__init__.py +++ b/src/mcp/server/__init__.py @@ -12,6 +12,7 @@ from mcp.server.models import InitializationOptions from mcp.server.session import ServerSession from mcp.server.stdio import stdio_server as stdio_server from mcp.shared.context import RequestContext +from mcp.shared.exceptions import McpError from mcp.shared.session import RequestResponder logger = logging.getLogger(__name__) @@ -367,6 +368,8 @@ class Server: ) ) response = await handler(req) + except McpError as err: + response = err.error except Exception as err: if raise_exceptions: raise err