File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 1616
1717from importlib .metadata import version as _metadata_version
1818
19+ import mcp_proxy_for_aws .fastmcp_patch as _fastmcp_patch
20+
1921
2022__all__ = ['__version__' ]
2123__version__ = _metadata_version ('mcp-proxy-for-aws' )
Original file line number Diff line number Diff line change 1+ import fastmcp .server .low_level as low_level_module
2+ import mcp .types
3+ from functools import wraps
4+ from mcp import McpError
5+ from mcp .server .stdio import stdio_server as stdio_server
6+ from mcp .shared .session import RequestResponder
7+
8+
9+ original_receive_request = low_level_module .MiddlewareServerSession ._received_request
10+
11+
12+ @wraps (original_receive_request )
13+ async def _received_request (
14+ self ,
15+ responder : RequestResponder [mcp .types .ClientRequest , mcp .types .ServerResult ],
16+ ):
17+ """Monkey patch fastmcp so that the initialize error from the middleware can be send back to the client."""
18+ if isinstance (responder .request .root , mcp .types .InitializeRequest ):
19+ try :
20+ return await original_receive_request (self , responder )
21+ except McpError as e :
22+ if not responder ._completed :
23+ with responder :
24+ return await responder .respond (e .error )
25+
26+ raise e
27+ else :
28+ return await original_receive_request (self , responder )
29+
30+
31+ low_level_module .MiddlewareServerSession ._received_request = _received_request
You can’t perform that action at this time.
0 commit comments