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

# Troubleshooting

> What to check when an assistant cannot reach NeetoEngage.

<AccordionGroup>
  <Accordion title="The assistant does not see any NeetoEngage tools">
    **Restart the client first.** Every client reads its MCP config at startup, and Cursor can also reload the window from the command palette. Then check the items for your kind of client.

    On Claude or ChatGPT, confirm that you added the connector and finished the sign-in. In ChatGPT, the plugin is created only after you tick **I understand and want to continue**.

    On Claude Code, Cursor, Gemini CLI, Codex, VS Code, Windsurf, or Antigravity, which read a config file:

    1. **Check the config key.** Claude Code, Cursor, Gemini CLI, Windsurf, and Antigravity nest servers under `mcpServers`. VS Code uses `servers`, and Codex uses a `[mcp_servers.<name>]` section in TOML. A server under the wrong key is ignored silently.
    2. **Check the URL key.** Windsurf and Antigravity expect `serverUrl`, and Gemini CLI expects `httpUrl` because it reserves `url` for SSE. Claude Code, Codex, Cursor, and VS Code expect `url`.
    3. **Check the endpoint.** It is `https://connect.neetoengage.com/mcp/messages`, with no trailing slash.
    4. **Check the syntax.** In JSON a trailing comma or an unclosed brace makes the whole file unreadable, which takes out any other servers too.

    Full snippets for each client are on [Connect agent](/mcp/connect).
  </Accordion>

  <Accordion title="ChatGPT does not show Developer mode">
    Go to [chatgpt.com](https://chatgpt.com) and open **Settings → Security and login**. Scroll to the bottom of the page. **Developer mode** is the last section, below **Lockdown mode**.

    If **Lockdown mode** is on, turn it off first. ChatGPT does not allow both at the same time. If **Developer mode** is still not there, your ChatGPT workspace admin has turned it off. Ask them to allow it, then follow the **ChatGPT web app** steps in [Connect agent](/mcp/connect).

    The ChatGPT desktop app does not need **Developer mode**. Follow the **ChatGPT desktop app** steps in [Connect agent](/mcp/connect) instead.
  </Accordion>

  <Accordion title="The connection is refused or unauthorized">
    On an API key connection, the `Authorization` header must read `Bearer YOUR_API_KEY`, with the word `Bearer` and a single space before the key. Confirm the key has not been revoked, and that it belongs to the workspace you expect: a key generated in one workspace does not work in another. Generate a new key from [workspace settings](/api/authentication) if you are unsure.

    On an OAuth connection there is no key to check. Remove the connector and add it again to run the sign-in from the start.
  </Accordion>

  <Accordion title="The client sends a key when you meant to sign in">
    A client that finds a credential in its config never starts the OAuth flow. Remove the `headers` block, or the `bearer_token_env_var` line in Codex, and restart the client. It then answers the server's 401 by opening the sign-in.
  </Accordion>

  <Accordion title="The client asks you to sign in when you meant to use a key">
    The opposite case: the credential is missing, so the client falls back to OAuth. Add the `headers` block with `"Authorization": "Bearer YOUR_API_KEY"`, or set `bearer_token_env_var = "NEETOENGAGE_API_KEY"` in Codex and export that variable, then restart the client. Codex takes the *name* of an environment variable, not the key itself.
  </Accordion>

  <Accordion title="The OAuth sign-in fails at the workspace step">
    The first screen needs a workspace subdomain or a workspace URL, not an email address. For `acme.neetoengage.com`, enter `acme`. See [Workspace subdomain](/mcp/workspace-subdomain).
  </Accordion>

  <Accordion title="A tool is refused because a permission was not granted">
    The approval screen has two optional permissions, **Create and update** and **Delete**, and a tool that needs one you left unticked is refused with a message naming it. Nothing is broken and nothing half happened.

    To grant it, remove the connector and add it again, ticking the permission this time. See [Authentication](/mcp/authentication#what-you-approve). An API key connection carries every permission, so this cannot happen on one.
  </Accordion>

  <Accordion title="The assistant reaches the wrong workspace">
    An OAuth connection covers the workspaces you ticked while approving it. Name the workspace in your prompt, or ask the assistant to list the workspaces it can reach. To add another one, run the sign-in again and tick it.

    An API key belongs to exactly one workspace, so a key connection reaching the wrong one means the wrong key. Add the server a second time, with the other key and a different server name.
  </Accordion>

  <Accordion title="VS Code never offers the tools">
    MCP needs VS Code 1.99 or later with GitHub Copilot running in **Agent** mode. It is not available in Ask or Edit mode. Check the version, switch Copilot to Agent mode, and confirm that `.vscode/mcp.json` is in the workspace you have open. On an API key connection, VS Code prompts for the key the first time the server is used, so answer that prompt.
  </Accordion>

  <Accordion title="Windsurf or Antigravity connects but the tools are missing">
    Enable the server after saving the config: **Settings → Cascade → MCP Servers** in Windsurf, **Settings → Customizations** in Antigravity. Windsurf also caps the total number of tools at 100 across every connected server, so turn off servers you are not using and reload.
  </Accordion>

  <Accordion title="Claude shows the connector as unauthorized">
    Open **[Customize > Connectors](https://claude.ai/customize/connectors)**, remove NeetoEngage, and add it again as a custom connector. See the **Claude** steps in [Connect agent](/mcp/connect).
  </Accordion>

  <Accordion title="Check that the server is reachable">
    The server publishes its OAuth metadata without any credential, so one request tells you whether the problem is on the server or in your client:

    ```bash theme={"system"}
    curl -s https://connect.neetoengage.com/.well-known/oauth-authorization-server
    ```

    A JSON document whose `issuer` is `https://connect.neetoengage.com` means the host is reachable and answering, so look at the client's setup next. It does not prove that every tool call succeeds. No answer, or an error page, means the server cannot be reached from your network. Try again in a few minutes, and if it persists, tell us.
  </Accordion>
</AccordionGroup>

## Still stuck

Reach us through the [help center](https://help.neetoengage.com), or at [support@neetoengage.com](mailto:support@neetoengage.com). Tell us which client you are using and what the assistant reports when it tries a NeetoEngage tool.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.