From ab64186a38e5d68fa2d98094968be3d43ddd2dce Mon Sep 17 00:00:00 2001 From: HuajunGao <37566089+HuajunGao@users.noreply.github.com> Date: Sat, 28 Feb 2026 14:54:43 +1100 Subject: [PATCH] fix(mcp): return Response() from handle_sse to prevent NoneType error When an MCP client disconnects, Starlette tries to call the return value of the handle_sse endpoint as an ASGI response. Since the function had no return statement it returned None, causing: TypeError: 'NoneType' object is not callable The mcp library's own SseServerTransport docstring explicitly documents this requirement. Fix by adding 'return Response()' and importing starlette.responses.Response. --- backend/src/module/mcp/server.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/module/mcp/server.py b/backend/src/module/mcp/server.py index 5e250906..0bdc85d3 100644 --- a/backend/src/module/mcp/server.py +++ b/backend/src/module/mcp/server.py @@ -15,6 +15,7 @@ from mcp.server import Server from mcp.server.sse import SseServerTransport from starlette.applications import Starlette from starlette.requests import Request +from starlette.responses import Response from starlette.routing import Mount, Route from .resources import RESOURCE_TEMPLATES, RESOURCES, handle_resource @@ -64,6 +65,7 @@ async def handle_sse(request: Request): streams[1], server.create_initialization_options(), ) + return Response() def create_mcp_starlette_app() -> Starlette: