diff --git a/README.md b/README.md index 0ca039ae3..c6a17a05f 100644 --- a/README.md +++ b/README.md @@ -372,10 +372,13 @@ from mcp.server.fastmcp import FastMCP mcp = FastMCP("My App") +# Customize a mount path +mcp_mount_path = '/mcp' + # Mount the SSE server to the existing ASGI server app = Starlette( routes=[ - Mount('/', app=mcp.sse_app()), + Mount(mcp_mount_path, app=mcp.sse_app(mcp_mount_path=mcp_mount_path)), ] ) diff --git a/src/mcp/server/fastmcp/server.py b/src/mcp/server/fastmcp/server.py index f3bb2586a..2e61f1fdb 100644 --- a/src/mcp/server/fastmcp/server.py +++ b/src/mcp/server/fastmcp/server.py @@ -477,9 +477,9 @@ async def run_sse_async(self) -> None: server = uvicorn.Server(config) await server.serve() - def sse_app(self) -> Starlette: + def sse_app(self, mcp_mount_path: str = '') -> Starlette: """Return an instance of the SSE server app.""" - sse = SseServerTransport(self.settings.message_path) + sse = SseServerTransport(mcp_mount_path + self.settings.message_path) async def handle_sse(request: Request) -> None: async with sse.connect_sse(