From 74b59685e403c29d178db93ece0dd80279e8836e Mon Sep 17 00:00:00 2001 From: adsa Date: Sat, 21 Jun 2025 00:51:30 +0200 Subject: [PATCH 1/3] fix: use normalized path for sse message endpoint --- src/mcp/server/fastmcp/server.py | 4 ++-- tests/server/fastmcp/test_server.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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..de1eca2a3 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 /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 /messages" @pytest.mark.anyio async def test_non_ascii_description(self): From ac31eb8023b1bf073ab6289540097e92f6b35174 Mon Sep 17 00:00:00 2001 From: adsa Date: Sat, 21 Jun 2025 00:53:14 +0200 Subject: [PATCH 2/3] fix: test message on fail --- tests/server/fastmcp/test_server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/server/fastmcp/test_server.py b/tests/server/fastmcp/test_server.py index de1eca2a3..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 == "/api/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 == "/param/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): From d14258118c867db32bf05083435dcd279880aae9 Mon Sep 17 00:00:00 2001 From: Adam Saimi <55293825+adamsaimi@users.noreply.github.com> Date: Tue, 24 Jun 2025 00:13:56 +0200 Subject: [PATCH 3/3] fix: lint --- src/mcp/server/fastmcp/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mcp/server/fastmcp/server.py b/src/mcp/server/fastmcp/server.py index a37c86382..4bf377540 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -761,7 +761,7 @@ async def handle_sse(scope: Scope, receive: Receive, send: Send): routes.append( Mount( normalized_message_endpoint, - app=RequireAuthMiddleware(sse.handle_post_message, required_scopes,resource_metadata_url), + app=RequireAuthMiddleware(sse.handle_post_message, required_scopes, resource_metadata_url), ) ) else: