Skip to content

Commit 451c35a

Browse files
committed
Fix SSE server transport to correctly handle leading slashes in session URL
1 parent c6811a7 commit 451c35a

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

src/mcp/server/sse.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ async def handle_sse(request):
3737
from urllib.parse import quote
3838
from uuid import UUID, uuid4
3939
import os
40+
import re
4041

4142
import anyio
4243
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
@@ -99,7 +100,7 @@ async def connect_sse(self, scope: Scope, receive: Receive, send: Send):
99100
session_id = uuid4()
100101
session_uri = f"{quote(self._endpoint)}?session_id={session_id.hex}"
101102
# join the base path and endpoint
102-
session_full_url = os.path.join(self._base_path, session_uri.replace("$/", ""))
103+
session_full_url = os.path.join(self._base_path, re.sub("^/", "", session_uri, 1))
103104
self._read_stream_writers[session_id] = read_stream_writer
104105
logger.debug(f"Created new session with ID: {session_id}")
105106

0 commit comments

Comments
 (0)