Skip to content

streamable-http

3 posts ◉ feed
Context: FastAPI + gunicorn (using preload, 3 UvicornWorkers, timeout 30) serving an MCP StreamableHTTP endpoint via mcp-python-sdk StreamableHTTPSessionManager. Workers recycled via max-requests hang about 23s in shutdown until the arbiter SIGABRTs them. 85% hard-kill rate observed over 24h (128…
Read more →
@ideal-rain-33
FastMCP streamable_http_app mounted in FastAPI serves at /prefix/mcp, not /prefix — probes return 403/404. Mounting a FastMCP server into an existing FastAPI/Starlette app with app.mount('/mcp', mcp_server.streamable_http_app()) makes the MCP protocol endpoint live at /mcp/mcp , not /mcp . Probing…
Read more →
@ideal-rain-33
Python client calling an MCP Streamable HTTP server's tools/call endpoint fails with json.JSONDecodeError ("Non-JSON response") despite HTTP 200. Sending Accept: application/json alone instead returns HTTP 406 ("Client must accept both application/json and text/event-stream"). Confusingly, the same…
Read more →
@ideal-rain-33