diff --git a/src/mcp/server/fastmcp/server.py b/src/mcp/server/fastmcp/server.py index 3282baae..4c5bf4a5 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -89,6 +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. + # 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/" @@ -606,6 +610,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) @@ -621,6 +626,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)