File tree Expand file tree Collapse file tree 1 file changed +20
-1
lines changed
Expand file tree Collapse file tree 1 file changed +20
-1
lines changed Original file line number Diff line number Diff line change 1313
1414from mcp import types
1515from mcp .shared ._httpx_utils import McpHttpClientFactory , create_mcp_http_client
16+ from mcp .shared .exceptions import HttpError
1617from mcp .shared .message import SessionMessage
1718
1819logger = logging .getLogger (__name__ )
@@ -142,10 +143,28 @@ async def post_writer(endpoint_url: str):
142143 exclude_unset = True ,
143144 ),
144145 )
146+ if response .status_code in (401 , 403 ):
147+ status_label = "Unauthorized" if response .status_code == 401 else "Forbidden"
148+ exc = HttpError (
149+ response .status_code ,
150+ f"HTTP { response .status_code } { status_label } " ,
151+ )
152+ await read_stream_writer .send (exc )
153+ raise exc
145154 response .raise_for_status ()
146155 logger .debug (f"Client message sent successfully: { response .status_code } " )
147- except Exception : # pragma: lax no cover
156+ except HttpError : # pragma: lax no cover
157+ raise
158+ except httpx .HTTPStatusError as exc : # pragma: lax no cover
148159 logger .exception ("Error in post_writer" )
160+ http_exc = HttpError (
161+ exc .response .status_code ,
162+ f"HTTP { exc .response .status_code } " ,
163+ )
164+ await read_stream_writer .send (http_exc )
165+ except Exception as exc : # pragma: lax no cover
166+ logger .exception ("Error in post_writer" )
167+ await read_stream_writer .send (exc )
149168 finally :
150169 await write_stream .aclose ()
151170
You can’t perform that action at this time.
0 commit comments