> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gumloop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Why won't my custom MCP server connect?

Gumloop connects to MCP servers from its cloud, not from your computer. A server that works in Claude Desktop or Cursor can still fail in Gumloop because firewalls, IP allowlists, and OAuth redirect rules see a different caller.

## Find your error

| What you see | Fix |
| - | - |
| **OAuth 2.0** is grayed out: "server did not advertise OAuth support" | [OAuth is grayed out](#oauth-is-grayed-out) |
| OAuth sign-in loops back to **Authenticate**, or a DCR or CIMD error | [OAuth sign-in fails or loops](#oauth-sign-in-fails-or-loops) |
| "Couldn't load tools" | [Tools won't load](#tools-wont-load) |
| **Detected Auth: None** and zero tools | You entered a web page, not the MCP endpoint. Use the URL from the provider's docs, usually ending in `/mcp`. |
| "This MCP server is already connected as..." | Someone in your org already added that URL. Your connection joins the existing server and keeps its name. |
| A hosted MCP fails on **Create** or won't deploy | [Hosted MCP won't create or deploy](#hosted-mcp-wont-create-or-deploy) |

## OAuth is grayed out

Gumloop enables **OAuth 2.0** only when it finds the OAuth metadata the server publishes. If that check is blocked or redirected, OAuth is grayed out.

1. **Allow Gumloop through your firewall.** If the server filters by IP, allow **all** of Gumloop's [static egress IPs](/enterprise-features/static_egress_ips). A `403` hides the OAuth metadata.
2. **Use the exact endpoint URL** from the provider's docs, including `https://` and any trailing slash. Some servers only answer on `/mcp/`.
3. **Self-hosted servers:** check the app's public "site URL" setting. If it uses `http://` or an internal hostname, Gumloop can't follow the OAuth links.
4. **If the provider requires your own OAuth app,** create one, add [both Gumloop redirect URLs](#oauth-sign-in-fails-or-loops), then choose **OAuth 2.0 (Custom Client)** and enter the client ID and secret.
5. **Remove the server and add it again** so Gumloop reruns the check.

## OAuth sign-in fails or loops

The OAuth provider is rejecting Gumloop as a client. Ask whoever manages it to:

1. Allow both redirect URLs:
   ```text theme={"dark"}
   https://api.gumloop.com/auth/callback
   https://api.gumstack.com/auth/callback
   ```
2. Allow Dynamic Client Registration (DCR) or Client ID Metadata Documents (CIMD) from hosted clients, not only desktop apps. If they can't, register an OAuth app for Gumloop and use **OAuth 2.0 (Custom Client)**.

<Tip>
  If OAuth worked before and broke after reconnecting, the provider likely allows only `api.gumloop.com`. Add `api.gumstack.com` too.
</Tip>

## Tools won't load

The server connected, but Gumloop couldn't list its tools.

* **API key:** retype it by hand. Trailing spaces, line breaks, or curly quotes from copy and paste break the header. Enter extra headers as `Header-Name: value`.
* **Transport:** the server must use Streamable HTTP or SSE over HTTPS. `localhost` and STDIO aren't supported. Expose a local server with a tunnel such as Cloudflare Tunnel or ngrok, or use [Managed Tunnels](/enterprise-features/managed_tunnels) on Enterprise.
* **Session header:** if a proxy sits in front of a stateful server, make sure it doesn't strip `Mcp-Session-Id`.
* **Gateway in front of the server:** for Cloudflare Access, AWS API Gateway, or Azure API Management, add its credential as an [Access Gate](/enterprise-features/proxied_mcps#access-gates) on a proxied MCP.

After you fix the cause, reopen the connector to retry. For a proxied MCP, click **Fetch New Tools**.

## Hosted MCP won't create or deploy

For admins using [Hosted MCPs](/enterprise-features/hosted_mcps).

| Problem | Fix |
| - | - |
| Error on **Create** | Reconnect your GitHub account on the Hosted MCPs **Settings** page and try again. |
| Deployment shows **Failed** after a successful build | The server didn't start healthy. Check **Monitoring** → **Runtime Logs**, fix the error, and push again. |
| "Failed to start redeployment" | There's no earlier healthy version to fall back to. Fix the startup error. |
| Build fails | Open the deployment and read its build logs. Missing dependencies are the usual cause. |

## Related

<CardGroup cols={2}>
  <Card title="Custom, proxied, and hosted MCP" icon="plug" href="/help/mcp/custom-proxied-hosted-mcp">
    Which type to use
  </Card>

  <Card title="Custom MCP servers" icon="server" href="/nodes/mcp/custom_mcp_servers">
    URLs, headers, and OAuth
  </Card>
</CardGroup>
