claude.ai strips the trailing slash from the connector URL, so a location of /mcp/<secret>/ missed and fell to the 301 catch-all. Use a regex (^/mcp/<secret>/?(.*)$) that matches both and normalises onto the FastMCP root. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>