Adds tests/integration/test_main_lifespan.py with 5 cases that exercise the end-to-end main.app lifespan: - default (no MCP_SERVICES) mounts both services in BUILTIN order - MCP_SERVICES=files mounts only files - MCP_SERVICES='' mounts zero - MCP_SERVICES=bogus raises RuntimeError at startup - /health on the root app is unaffected by MCP filtering Tests use TestClient and mock main.init_mcp_server to record mount calls, since fastapi-mcp's HTTP endpoints 404 for bare GETs regardless of mount state (the MCP transport requires an initialize handshake before any tool call). Mocking avoids that coupling. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>