The previous implementation added health route directly to mcp_app and
returned it, which broke MCP's internal /mcp endpoint routing.
Now matches the working pattern from komodo-mcp-custom:
- Mount mcp_app at / inside a parent Starlette app
- Pass lifespan=mcp_app.lifespan for proper task group init
- Health check is a separate route in the parent app