Claude UI Errors
”Could not attach to MCP server”
This is the most common error in Claude Desktop and usually indicates a failure during the initial HTTP handshake. Check the Claude Logs: Run the following command to view exactly whymcp-remote failed to connect:
Common Log Errors
HTTP 401: Unauthorized
HTTP 401: Unauthorized
HTTP 403: Target URL is restricted
HTTP 403: Target URL is restricted
Cause: ThornGuard’s SSRF protection blocked your request because you are
trying to proxy traffic to
localhost, a metadata IP, or a hostname that
resolves to a private address. Solution: ThornGuard is designed to proxy
publicly reachable MCP servers. Ensure your x-mcp-target-url points to a
valid public HTTPS target.HTTP 403: Origin not allowed
HTTP 403: Origin not allowed
Cause: Your client sent an
Origin header that does not match the
allowed origin list for this deployment. Solution: Make requests from an
approved origin or update the deployment allowlist. This mainly affects
browser-based HTTP clients.Error: Protected resource does not match expected origin
Error: Protected resource does not match expected origin
Cause: You are trying to connect to an upstream server that requires an
interactive OAuth browser login (like GitHub Copilot). Solution: Use a
non-interactive upstream credential and forward it via
x-upstream-auth, or
complete the auth flow outside the MCP connection and use the resulting token.
See the Quickstart for the exact JSON snippet.HTTP 522: Connection timed out
HTTP 522: Connection timed out
Cause: ThornGuard successfully received your request, but the upstream server specified in your
x-mcp-target-url is completely offline, firewall-blocked, or taking too long to respond.Solution: Check the status of your destination server. Ensure it is actively running and allows incoming connections from Cloudflare’s IP ranges.Contact Support
If you are experiencing latency issues or anomalies not covered here, please reach out to[email protected] and include the relevant mcp.log outputs plus any x-thornguard-log-id or x-thornguard-trace-id values returned by the proxy.