From 887678717f97bf6167871649faf1d8bfad8fb795 Mon Sep 17 00:00:00 2001 From: sterankin Date: Thu, 3 Apr 2025 22:00:38 +0100 Subject: [PATCH] Update sse.py to preserve url base fix: preserve base path when joining /messages from SSE endpoint Previous behavour, a MCP server at: https://my-mcp-server.com/mcp/weather-alerts/sse would fail to connect to messages as the endpoint would be called as: https://my-mcp-server.com/messages It should be: https://my-mcp-server.com/mcp/weather-alerts/messages --- src/mcp/client/sse.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mcp/client/sse.py b/src/mcp/client/sse.py index 4f6241a72..b5be98451 100644 --- a/src/mcp/client/sse.py +++ b/src/mcp/client/sse.py @@ -61,7 +61,8 @@ async def sse_reader( logger.debug(f"Received SSE event: {sse.event}") match sse.event: case "endpoint": - endpoint_url = urljoin(url, sse.data) + uri_base = url.rsplit("/sse", 1)[0] + endpoint_url = urljoin(uri_base + "/", sse.data.lstrip("/")) logger.info( f"Received endpoint URL: {endpoint_url}" )