ChatGPT: custom MCP connector returns no tools
Why a ChatGPT custom MCP connector shows up in settings but exposes no tools in chat, and the plan, mode, and config checks that fix it.
The symptom
You added a custom MCP server in ChatGPT settings. The connector shows up in the list. OAuth completed without error. But in chat, the model says it has no tools, or the connector toggle has no effect.
Check 1: your plan exposes custom connectors
Custom MCP connectors are gated to paid ChatGPT plans, and the plan matrix has changed multiple times. The Free tier does not include custom connectors at time of writing. Confirm against the current ChatGPT Connector documentation before assuming the bug is in your config.
Check 2: developer mode (where required)
On some tiers the "Add custom connector" option only shows up if developer mode is enabled. The toggle has lived under Settings → Connectors → Advanced in recent builds, and earlier under Settings → Beta features. If you cannot find it, check OpenAI's current developer-mode docs for your account type. Close and reopen the settings panel after toggling.
Check 3: the URL points at the MCP endpoint, not the homepage
A connector pointed at https://example.com instead of https://example.com/mcp will fail the MCP handshake even though the homepage itself returns 200. ChatGPT often surfaces that as a connector that registered without any tools rather than a hard error. Double-check the documented endpoint path before debugging anything else.
Check 4: the connector is enabled for the current chat
Connectors are off by default in every new conversation. Open the composer's connectors icon and toggle the server on for the current chat. Pinning the connector applies it to future new chats; without that, you re-enable it each time.
Check 5: ask the model to list its tools
Send: "List the tools available from the connector named <your-server>." If the model lists them, the connector is wired up. The original "no tools" answer was just the model not knowing it had them yet. If the list comes back empty, repeat step 4. If still empty, revoke and re-add the connector in settings.