From a270998311246c473bc4f7d656e35e5c84548534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=98=E6=BC=BE?= Date: Tue, 20 May 2025 09:57:32 +0800 Subject: [PATCH 1/4] feat: Add `root_path` configuration for server --- src/mcp/server/fastmcp/server.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mcp/server/fastmcp/server.py b/src/mcp/server/fastmcp/server.py index 21c31b0b3..8460b9657 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -89,6 +89,7 @@ class Settings(BaseSettings, Generic[LifespanResultT]): # HTTP settings host: str = "0.0.0.0" port: int = 8000 + root_path: str = "/" # root path, same with root_path in uvicorn config, for sse or streamable http mount_path: str = "/" # Mount path (e.g. "/github", defaults to root path) sse_path: str = "/sse" message_path: str = "/messages/" From b15306d49627983b18de0796dbd5e996096ab4fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=98=E6=BC=BE?= Date: Tue, 20 May 2025 10:15:21 +0800 Subject: [PATCH 2/4] use root_path when create http server --- src/mcp/server/fastmcp/server.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mcp/server/fastmcp/server.py b/src/mcp/server/fastmcp/server.py index 8460b9657..71d99211d 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -605,6 +605,7 @@ async def run_sse_async(self, mount_path: str | None = None) -> None: starlette_app, host=self.settings.host, port=self.settings.port, + root_path=self.settings.root_path, log_level=self.settings.log_level.lower(), ) server = uvicorn.Server(config) @@ -620,6 +621,7 @@ async def run_streamable_http_async(self) -> None: starlette_app, host=self.settings.host, port=self.settings.port, + root_path=self.settings.root_path, log_level=self.settings.log_level.lower(), ) server = uvicorn.Server(config) From de76d1e7938ba6f5580526511db8e4c76fc6812a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=98=E6=BC=BE?= Date: Sat, 24 May 2025 17:31:23 +0800 Subject: [PATCH 3/4] fix: update root_path default value to empty string --- 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 71d99211d..123fa7cee 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -89,7 +89,7 @@ class Settings(BaseSettings, Generic[LifespanResultT]): # HTTP settings host: str = "0.0.0.0" port: int = 8000 - root_path: str = "/" # root path, same with root_path in uvicorn config, for sse or streamable http + root_path: str = "" # root path, same with root_path in uvicorn config, for sse or streamable http mount_path: str = "/" # Mount path (e.g. "/github", defaults to root path) sse_path: str = "/sse" message_path: str = "/messages/" From ea7a0631e973cde3ae993f689eb5c32ac602279e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=98=E6=BC=BE?= Date: Sat, 24 May 2025 20:37:06 +0800 Subject: [PATCH 4/4] fix by ruff --- src/mcp/server/fastmcp/server.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mcp/server/fastmcp/server.py b/src/mcp/server/fastmcp/server.py index fdb3e2cd6..4c5bf4a5c 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -89,7 +89,10 @@ class Settings(BaseSettings, Generic[LifespanResultT]): # HTTP settings host: str = "127.0.0.1" port: int = 8000 - root_path: str = "" # root path, same with root_path in uvicorn config, for sse or streamable http + + root_path: str = "" # Root path, same with root_path in uvicorn config. + # Used for SSE or streamable HTTP. + mount_path: str = "/" # Mount path (e.g. "/github", defaults to root path) sse_path: str = "/sse" message_path: str = "/messages/"