Cherry-picks the production hotfix 82b7d5aa91 (PR #10665) onto master. That fix shipped straight to production for the June 11 MCP incident but never landed on master — so the next normal deploy from master would re-open the incident. This closes that gap.
POST /v3/mcp/<serverId>?user_id=... started returning HTTP 500 with an empty body (crash before x-request-id) since ~11:00 UTC June 11. Root cause: a Turbopack export-binding corruption in the App Router redirect handler apps/apollo/src/app/v3/mcp/[serverId]/route.ts — its GET/POST/... exports resolved to the wrong minified function on some lambda instances. Latent since ~May 22; failure rate spiked when the @composio/* → @composiohq/* prebuilt-dist packaging change reshuffled the Apollo bundle on the 10:03 UTC June 11 deploy.
Move the transport-less redirect into next.config.ts. Config-level redirects run zero JS and are evaluated before the filesystem/app route, so they can't hit the bundling bug. POST preserved via 307; query params pass through. Legacy route.ts stays as an unreachable fallback. SSE is already disabled (405), so collapsing all methods onto /mcp loses no live behavior.
apps/apollo/next.config.ts — +8 lines (one redirect entry).
Reproduced post-fix against production at ~15:47 UTC June 11: POST /v3/mcp/<id>?user_id=... returns a clean 307 → /v3/mcp/<id>/mcp across 12 rapid requests and all method/header variants. No 500s.
🤖 Generated with Claude Code