Claude custom connector won't connect, or keeps asking you to sign in: the fixes
By Jake Marsh, who builds Taskhold. Updated 2026-10-31. Facts about other tools checked 2026-10-31. 6 min read.
Short answer: Claude reaches a custom connector from Anthropic's cloud, even in Claude Desktop, so the server must be on the public internet with an IPv4 address. Register the exact URL it serves: a redirect to another host drops the Authorization header and sign-in fails. On Team and Enterprise only an Owner adds connectors. The ofid_ ID in the error helps trace the failure.
You added a custom connector in claude.ai or Claude Desktop and it won't connect: Claude says it couldn't reach the MCP server, authorization failed, or you sign in and land back on Connect. Custom connectors work on Free, Pro, Max, Ultra, Team and Enterprise plans, and Claude reaches them from Anthropic's servers, not from your computer. Most failures come from that, from a URL that redirects, or from the server's OAuth setup.
The last section covers Taskhold's connector, which feeds the live board where the tasks Claude files and your agents' steps show up. Setup is on the Claude Desktop page, and Taskhold's error codes are in Taskhold troubleshooting.
Where the connector connects from
Claude connects to a custom connector's remote MCP server from Anthropic's cloud infrastructure, on claude.ai and in Claude Desktop alike. A server on localhost, on a private corporate network or VPN, or behind a firewall that blocks Anthropic's IP ranges can't be reached. Servers listed in Claude Desktop's claude_desktop_config.json are a separate, local mechanism: they run on your computer and don't appear on claude.ai.
So a server can work in Claude Code or curl and still fail as a connector, because those two connect from your machine.
"Couldn't reach the MCP server"
- The hostname must resolve to public addresses only. Claude rejects private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), carrier-grade NAT (100.64.0.0/10), loopback and link-local addresses, and any mix of public and private results. Connectors are IPv4-only, so a hostname with only AAAA records fails. Check with dig +short from outside your network.
- A CDN, WAF, bot rule or rate limiter can block Anthropic before the request reaches the server. Look for 403 or 429 responses at the edge that the server didn't send, and allowlist Anthropic's published IP range.
- For a server that needs sign-in, missing OAuth discovery documents can surface as this error too. /.well-known/oauth-protected-resource should return 200 with JSON, and the authorization server needs a registration_endpoint, Client ID Metadata Document support, or a client ID you enter.
- A server inside a private network can connect through an MCP tunnel instead of being opened to the internet.
"Authorization with the MCP server failed" or a sign-in that won't stick
- Register the URL the server answers on. If it redirects to another host (apex to www, region routing, a vanity domain), Claude drops the Authorization header on the redirect, the target answers 401, and sign-in fails. curl -sI <url> shows the 3xx status and its Location.
- Claude waits up to 10 seconds for the server's discovery, registration and token endpoints, and 30 seconds for refresh requests. A slow token endpoint fails the sign-in even if it issues a token later.
- Every sign-in uses PKCE with S256, and Claude sends an RFC 8707 resource parameter set to the server URL. An authorization server without S256, or one that issues tokens for another audience, fails at this step.
- If Claude loses access later, the connector shows Reconnect under Customize > Connectors. Click it and sign in again.
- Authentication settings can't be edited after you add a connector. To switch between sign-in and a header, or change OAuth details, remove the connector and add it again.
- A failed connection or sign-in on claude.ai carries a reference ID starting with ofid_ in the error and the page URL. The server's owner can report it, with server logs, on the anthropics/claude-ai-mcp issue tracker. The ID expires, so report soon.
Connected, but Claude doesn't use it
- Connectors are switched on per conversation. Click + in the message box, choose Connectors, and turn the connector on.
- On the connector's page under Customize > Connectors, Tool permissions set each tool to Always allow, Needs approval or Blocked. A blocked tool never runs.
- On Team and Enterprise plans, only an Owner adds custom connectors (on Enterprise, also a custom role that manages Libraries), in Organization settings > Connectors. Members then click Connect on the connector labeled Custom.
- The Free plan allows one custom connector.
- Request headers, for servers that take an API key, are in beta for a limited set of organizations. Claude sends the value exactly as typed, so an Authorization header needs Bearer and a space before the key. On an OAuth connection, Authorization can't be a request header.
Claude Desktop's local servers
Servers in claude_desktop_config.json (Settings > Developer > Edit Config) run on your computer and load when Claude Desktop starts, so quit it completely and reopen it after editing. Check the JSON syntax and use absolute paths, not relative ones.
Claude Desktop writes MCP logs to ~/Library/Logs/Claude on macOS, %APPDATA%\Claude\logs on Windows and ~/.config/Claude/logs on Linux. mcp.log covers connections and failures, and mcp-server-<name>.log holds each server's stderr. On macOS, tail -n 20 -f ~/Library/Logs/Claude/mcp*.log follows them as you retry.
Taskhold-specific checks
Taskhold's connector URL is https://taskhold.com/api/mcp. When it won't connect, check these in order:
- The URL is exactly https://taskhold.com/api/mcp. The www address answers with a 308 redirect to it, which is the redirect case above.
- Sign-in is the default. Add the connector with the URL, click Connect, sign in to Taskhold if asked, and click Allow. Taskhold signs you in with an emailed link; open it in the browser you started in, and it brings you back to the Allow page.
- No active plan? Instead of Allow, Taskhold shows a page to start the 7-day trial. Start it, then click Connect again.
- With a key instead (Authentication set to No sign in, and a request header Authorization with Bearer and an atd_sk_ key), Taskhold's 401 names the cause: missing_key, bad_header, not_a_taskhold_key or unknown_key. A 402 means the key works but the trial ended or the plan was canceled.
- The connection appears in Taskhold under Settings > API keys. Revoking it there disconnects Claude; connect again to make a new one.
Once it's connected, turn the connector on in the chat and ask Claude to file or check tasks. What Claude files and what your coding agents report shows on the live board. Claude Code signed in with the same Claude account lists claude.ai connectors in /mcp. For the coding side, see Claude Code MCP server not connecting and the Claude Code page.
See how far along your coding agents are.
$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.
Questions
- Can a custom connector reach a server on localhost?
- No. Claude connects from Anthropic's cloud, in Claude Desktop too. Use a public endpoint or an MCP tunnel, or run the server through claude_desktop_config.json, which only Claude Desktop uses.
- Why does my server work in Claude Code but not on claude.ai?
- Claude Code connects from your machine and claude.ai from Anthropic's servers. Split-horizon DNS, a firewall that blocks Anthropic's range, or a URL that redirects to another host can break only the claude.ai side.
- How do I change a connector's authentication?
- Remove the connector and add it again with the new settings. Authentication settings, including OAuth details and request headers, can't be edited after you add a connector.
Sources
- Claude Help Center: custom connectors using remote MCP, checked 2026-10-31
- Claude docs: add a connector that isn't in the directory, checked 2026-10-31
- Claude docs: get started with connectors, checked 2026-10-31
- Claude docs: troubleshoot your connector, checked 2026-10-31
- Claude docs: authentication for connectors (timeouts, PKCE), checked 2026-10-31
- MCP docs: connect to local servers (Claude Desktop logs), checked 2026-10-31
- Claude Code docs: use MCP servers from claude.ai, checked 2026-10-31
Related
Updated 2026-10-31. Something wrong or out of date? Email hello@greatwork.company.