From 8c0c485755eac76f75396824510eedcd3d24a0b4 Mon Sep 17 00:00:00 2001 From: fuhaiwen1 Date: Tue, 15 Jul 2025 11:39:04 +0800 Subject: [PATCH] fix sse endpoint bug --- src/mcp/client/sse.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/mcp/client/sse.py b/src/mcp/client/sse.py index 7ca8d19af..3869bba7b 100644 --- a/src/mcp/client/sse.py +++ b/src/mcp/client/sse.py @@ -73,7 +73,15 @@ async def sse_reader( logger.debug(f"Received SSE event: {sse.event}") match sse.event: case "endpoint": - endpoint_url = urljoin(url, sse.data) + # endpoint_url = urljoin(url, sse.data) + + parsed_url = urlparse(url) + if parsed_url.path.endswith('/'): + base_url = url + else: + base_path = '/'.join(parsed_url.path.split('/')[:-1]) + '/' + base_url = f"{parsed_url.scheme}://{parsed_url.netloc}{base_path}" + endpoint_url = urljoin(base_url, sse.data.lstrip('/')) logger.debug(f"Received endpoint URL: {endpoint_url}") url_parsed = urlparse(url)