diff --git a/src/mcp/server/fastmcp/server.py b/src/mcp/server/fastmcp/server.py index 1b761e917..e1026e8e7 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -742,7 +742,7 @@ async def handle_sse(scope: Scope, receive: Receive, send: Send): ) routes.append( Mount( - self.settings.message_path, + normalized_message_endpoint, app=RequireAuthMiddleware(sse.handle_post_message, required_scopes), ) ) @@ -762,7 +762,7 @@ async def sse_endpoint(request: Request) -> Response: ) routes.append( Mount( - self.settings.message_path, + normalized_message_endpoint, app=sse.handle_post_message, ) ) diff --git a/tests/server/fastmcp/test_server.py b/tests/server/fastmcp/test_server.py index 8719b78d5..483a8cea0 100644 --- a/tests/server/fastmcp/test_server.py +++ b/tests/server/fastmcp/test_server.py @@ -99,7 +99,7 @@ async def test_starlette_routes_with_mount_path(self): # Verify path values assert sse_routes[0].path == "/sse", "SSE route path should be /sse" - assert mount_routes[0].path == "/messages", "Mount route path should be /messages" + assert mount_routes[0].path == "/api/messages", "Mount route path should be /api/messages" # Test with mount path as parameter mcp = FastMCP() @@ -115,7 +115,7 @@ async def test_starlette_routes_with_mount_path(self): # Verify path values assert sse_routes[0].path == "/sse", "SSE route path should be /sse" - assert mount_routes[0].path == "/messages", "Mount route path should be /messages" + assert mount_routes[0].path == "/param/messages", "Mount route path should be /param/messages" @pytest.mark.anyio async def test_non_ascii_description(self):