The problem is a default 10-second request timeout in Spring AI's MCP server.
That's why the request is received, processed, but the response never reaches your Python SSE client — the server silently drops it when processing takes even slightly longer than 10s (very common with DB calls, serialization of objects, etc.).
This is a known open bug: https://github.com/spring-projects/spring-ai/issues/3205