Skip to content

Commit 873f6bf

Browse files
authored
Merge pull request #62 from modelcontextprotocol/davidsp/error-fixes
Handle MCPErrors separately
2 parents 5dfce75 + f7e47f3 commit 873f6bf

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/mcp/server/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ async def main():
7474
from mcp.server.session import ServerSession
7575
from mcp.server.stdio import stdio_server as stdio_server
7676
from mcp.shared.context import RequestContext
77+
from mcp.shared.exceptions import McpError
7778
from mcp.shared.session import RequestResponder
7879

7980
logger = 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

Comments
 (0)