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

# Connect agent

> Step-by-step setup for Claude, ChatGPT, and other AI agents.

## Sign in with your NeetoDesk account

<Tabs>
  <Tab title="Claude">
    1. Visit the [NeetoDesk listing](https://claude.ai/directory/neetodesk) in Anthropic's connector directory.

           <Frame caption="The NeetoDesk listing in Anthropic's connector directory.">
             <img src="https://mintcdn.com/neetodesk-apis/-k9GFWBX8Ilfqswv/assets/mcp/claude-directory-neetodesk.png?fit=max&auto=format&n=-k9GFWBX8Ilfqswv&q=85&s=1fac4f62839f95374e563468e3e937c7" alt="The NeetoDesk entry in Claude's connector directory, with a one-line description and a Connect to Claude button" width="1564" height="174" data-path="assets/mcp/claude-directory-neetodesk.png" />
           </Frame>

    2. Click **Connect to Claude**.

    3. Sign in to NeetoDesk. See [What the sign-in looks like](#what-the-sign-in-looks-like).

    NeetoDesk then works in claude.ai, the Claude desktop app, Claude mobile, and Cowork.

    If you see **Request** instead of **Connect to Claude**, your Team plan admin must turn NeetoDesk on under **[Organization settings > Connectors](https://claude.ai/admin-settings/connectors)**. After that, click **Connect to Claude**.

    To disconnect, open **[Customize > Connectors](https://claude.ai/customize/connectors)** and remove NeetoDesk.

    <Accordion title="Add it as a custom connector instead">
      Use this only if your organization blocks the connector directory.

      1. Open **[Customize > Connectors](https://claude.ai/customize/connectors)**, click **Add**, then click **Add custom connector**.

               <Frame caption="Add custom connector is the only item under the Add button.">
                 <img src="https://mintcdn.com/neetodesk-apis/NlTfAMO56t0wyC9a/assets/mcp/claude-add-menu.png?fit=max&auto=format&n=NlTfAMO56t0wyC9a&q=85&s=6f940eeac20927c64169bf7ab37b2f69" alt="Menu under the Add button in Claude's Connectors settings, with the single item Add custom connector" width="402" height="184" data-path="assets/mcp/claude-add-menu.png" />
               </Frame>

      2. Enter the name NeetoDesk and paste the server URL.

         ```
         https://connect.neetodesk.com/mcp/messages
         ```

               <Frame caption="The Add custom connector dialog, ready to submit.">
                 <img src="https://mintcdn.com/neetodesk-apis/NlTfAMO56t0wyC9a/assets/mcp/claude-add-custom-connector-dialog.png?fit=max&auto=format&n=NlTfAMO56t0wyC9a&q=85&s=2921fee69c580ba2ccd3b0e1aee9f011" alt="Claude's Add custom connector dialog with the name NeetoDesk and the server URL https://connect.neetodesk.com/mcp/messages filled in, and a Continue button" width="1072" height="898" data-path="assets/mcp/claude-add-custom-connector-dialog.png" />
               </Frame>

      3. Click **Continue** and sign in to NeetoDesk.
    </Accordion>
  </Tab>

  <Tab title="ChatGPT web app">
    1. Go to [chatgpt.com](https://chatgpt.com) and open **Settings → Security and login**.

    2. Scroll to the bottom of the page and turn on **Developer mode**. It is below **Lockdown mode**.

           <Frame>
             <img src="https://mintcdn.com/neetodesk-apis/dPZ34efBxF6_a0FO/assets/mcp/chatgpt-developer-mode.png?fit=max&auto=format&n=dPZ34efBxF6_a0FO&q=85&s=ea83de1ed071513a67606b402ebf972d" alt="ChatGPT's Developer mode setting, tagged Elevated risk, with its toggle switched on" width="453" height="61" data-path="assets/mcp/chatgpt-developer-mode.png" />
           </Frame>

       ChatGPT does not allow **Lockdown mode** and **Developer mode** at the same time. If **Lockdown mode** is on, turn it off first. If you still do not see **Developer mode**, your ChatGPT workspace admin has turned it off. Ask them to allow it.

    3. Go to [chatgpt.com/plugins](https://chatgpt.com/plugins) and click the **plus** button.

    4. In **New Plugin**, enter the name NeetoDesk, set **Connection** to **Server URL**, and paste:

       ```
       https://connect.neetodesk.com/mcp/messages
       ```

    5. Leave **Authentication** on **OAuth**.

    6. Tick **I understand and want to continue**, then click **Create**.

    7. Sign in to NeetoDesk. See [What the sign-in looks like](#what-the-sign-in-looks-like).
  </Tab>

  <Tab title="ChatGPT desktop app">
    The desktop app does not need **Developer mode**.

    1. Click your profile picture at the bottom left, then click **Settings**.

           <Frame>
             <img src="https://mintcdn.com/neetodesk-apis/iOLP90HRiHEr0RxR/assets/mcp/chatgpt-desktop-settings-menu.png?fit=max&auto=format&n=iOLP90HRiHEr0RxR&q=85&s=96584a9ca30aa2b0b2dcba75cd00e2a4" alt="The profile menu in the ChatGPT desktop app, with Settings in the list" width="230" height="186" data-path="assets/mcp/chatgpt-desktop-settings-menu.png" />
           </Frame>

    2. Click **Plugins**. Click **Add**, then click **Add MCP server**.

           <Frame>
             <img src="https://mintcdn.com/neetodesk-apis/iOLP90HRiHEr0RxR/assets/mcp/chatgpt-desktop-add-mcp-server.png?fit=max&auto=format&n=iOLP90HRiHEr0RxR&q=85&s=b95e9a593f7a095f8be51409090adead" alt="The Plugins page in the ChatGPT desktop app, with the Add menu open and Add MCP server in the list" width="715" height="182" data-path="assets/mcp/chatgpt-desktop-add-mcp-server.png" />
           </Frame>

    3. Enter the name NeetoDesk and set **Type** to **Streamable HTTP**.

    4. In **URL**, paste:

       ```
       https://connect.neetodesk.com/mcp/messages
       ```

    5. Leave the other fields empty and click **Save**.

           <Frame>
             <img src="https://mintcdn.com/neetodesk-apis/iOLP90HRiHEr0RxR/assets/mcp/chatgpt-desktop-custom-mcp-form.png?fit=max&auto=format&n=iOLP90HRiHEr0RxR&q=85&s=b4f887c571766c29e94323a56326ab46" alt="The Connect to a custom MCP form with the name NeetoDesk, the type Streamable HTTP, the server URL filled in, and a Save button" width="707" height="600" data-path="assets/mcp/chatgpt-desktop-custom-mcp-form.png" />
           </Frame>

    6. Click the **MCPs** tab. Next to **neetodesk**, click **Authenticate**.

           <Frame>
             <img src="https://mintcdn.com/neetodesk-apis/iOLP90HRiHEr0RxR/assets/mcp/chatgpt-desktop-authenticate.png?fit=max&auto=format&n=iOLP90HRiHEr0RxR&q=85&s=5c42167bb3e34ab8194464129e5b5f0c" alt="The neetodesk row in the MCPs list, with an Authenticate button" width="694" height="52" data-path="assets/mcp/chatgpt-desktop-authenticate.png" />
           </Frame>

    7. Sign in to NeetoDesk. See [What the sign-in looks like](#what-the-sign-in-looks-like).
  </Tab>

  <Tab title="Claude Code">
    1. Add the server:

       ```bash theme={"system"}
       claude mcp add --transport http neetodesk https://connect.neetodesk.com/mcp/messages
       ```

    2. Start Claude Code and run `/mcp`.

    3. Pick **neetodesk** and sign in to NeetoDesk in the browser.
  </Tab>

  <Tab title="Cursor">
    1. Add the server to `~/.cursor/mcp.json`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "url": "https://connect.neetodesk.com/mcp/messages"
           }
         }
       }
       ```

    2. Restart Cursor.

    3. Sign in to NeetoDesk when Cursor asks.
  </Tab>

  <Tab title="Gemini CLI">
    1. Add the server to `~/.gemini/settings.json`. Use `httpUrl`, not `url`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "httpUrl": "https://connect.neetodesk.com/mcp/messages"
           }
         }
       }
       ```

    2. Start Gemini CLI and sign in to NeetoDesk when it asks.
  </Tab>

  <Tab title="Codex">
    1. Add the server to `~/.codex/config.toml`:

       ```toml theme={"system"}
       [mcp_servers.neetodesk]
       url = "https://connect.neetodesk.com/mcp/messages"
       ```

    2. Run this command and sign in to NeetoDesk in the browser:

       ```bash theme={"system"}
       codex mcp login neetodesk
       ```
  </Tab>

  <Tab title="VS Code">
    You need VS Code 1.99 or later, with GitHub Copilot in **Agent** mode.

    1. Create `.vscode/mcp.json` in your workspace. Use `servers`, not `mcpServers`:

       ```json theme={"system"}
       {
         "servers": {
           "neetodesk": {
             "type": "http",
             "url": "https://connect.neetodesk.com/mcp/messages"
           }
         }
       }
       ```

    2. Sign in to NeetoDesk when VS Code asks.
  </Tab>

  <Tab title="Windsurf">
    1. Add the server to `~/.codeium/windsurf/mcp_config.json`. Use `serverUrl`, not `url`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "serverUrl": "https://connect.neetodesk.com/mcp/messages"
           }
         }
       }
       ```

    2. Turn on the server under **Settings → Cascade → MCP Servers**.

    3. Sign in to NeetoDesk when Windsurf asks.
  </Tab>
</Tabs>

### What the sign-in looks like

<Steps>
  <Step title="Connect your workspace">
    Enter your workspace subdomain, or paste your workspace URL. For `acme.neetodesk.com`, enter `acme`. The **Find your workspace subdomain** link on this screen opens the [Workspace subdomain](/mcp/workspace-subdomain) page.

    <Frame caption="The first screen of the NeetoDesk sign-in.">
      <img src="https://mintcdn.com/neetodesk-apis/dPZ34efBxF6_a0FO/assets/mcp/oauth-connect-workspace.png?fit=max&auto=format&n=dPZ34efBxF6_a0FO&q=85&s=ab72af0e953a0214942346c1a2c8a38a" alt="NeetoDesk dialog headed 'Connect your workspace' with a field for the workspace subdomain, a .neetodesk.com suffix, and a Continue button" width="840" height="550" data-path="assets/mcp/oauth-connect-workspace.png" />
    </Frame>
  </Step>

  <Step title="Sign in">
    Sign in to that workspace, if you are not signed in already.
  </Step>

  <Step title="Choose what the assistant can do">
    **Read** and **Stay connected** are always on. Tick **Create and update** and **Delete** only if the assistant needs them.

    One connection can reach more than one workspace at the same time. The workspace you entered is always connected. If your email belongs to other workspaces, tick any you also want under **Additional workspaces to connect**. The permissions you approve apply to all of them.

    <Frame caption="Choosing the permissions and any additional workspaces the connection can reach.">
      <img src="https://mintcdn.com/neetodesk-apis/dPZ34efBxF6_a0FO/assets/mcp/oauth-authorize.png?fit=max&auto=format&n=dPZ34efBxF6_a0FO&q=85&s=abafe2d55ee569c339527b15f57e4da1" alt="NeetoDesk 'Authorize access' screen showing the workspace and signed-in email, a 'What this connection can do' list with Read and Stay connected always granted and Create and update and Delete as tickable boxes, a 'Workspaces to connect' list with three workspaces, and Cancel and Authorize buttons" width="840" height="1704" data-path="assets/mcp/oauth-authorize.png" />
    </Frame>
  </Step>

  <Step title="Authorize">
    Click **Authorize**.
  </Step>
</Steps>

To add a workspace or a permission later, sign in again and tick it.

## Use an API key

An API key reaches the whole workspace, not only what you can see. Use it for automation. See [Authentication](/mcp/authentication).

<Tabs>
  <Tab title="Claude Code">
    1. Add the server to `~/.claude.json`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "type": "http",
             "url": "https://connect.neetodesk.com/mcp/messages",
             "headers": {
               "Authorization": "Bearer YOUR_API_KEY"
             }
           }
         }
       }
       ```

    2. Restart Claude Code.
  </Tab>

  <Tab title="Cursor">
    1. Add the server to `~/.cursor/mcp.json`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "type": "http",
             "url": "https://connect.neetodesk.com/mcp/messages",
             "headers": {
               "Authorization": "Bearer YOUR_API_KEY"
             }
           }
         }
       }
       ```

    2. Restart Cursor.
  </Tab>

  <Tab title="Gemini CLI">
    1. Add the server to `~/.gemini/settings.json`. Use `httpUrl`, not `url`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "httpUrl": "https://connect.neetodesk.com/mcp/messages",
             "headers": {
               "Authorization": "Bearer YOUR_API_KEY"
             }
           }
         }
       }
       ```

    2. Restart Gemini CLI.
  </Tab>

  <Tab title="Codex">
    1. Add the server to `~/.codex/config.toml`:

       ```toml theme={"system"}
       [mcp_servers.neetodesk]
       url = "https://connect.neetodesk.com/mcp/messages"
       bearer_token_env_var = "NEETODESK_API_KEY"
       ```

    2. Set `NEETODESK_API_KEY` to your API key in the shell where you run Codex.
  </Tab>

  <Tab title="VS Code">
    You need VS Code 1.99 or later, with GitHub Copilot in **Agent** mode.

    1. Create `.vscode/mcp.json` in your workspace:

       ```json theme={"system"}
       {
         "inputs": [
           {
             "type": "promptString",
             "id": "neetodesk-api-key",
             "description": "NeetoDesk API key",
             "password": true
           }
         ],
         "servers": {
           "neetodesk": {
             "type": "http",
             "url": "https://connect.neetodesk.com/mcp/messages",
             "headers": {
               "Authorization": "Bearer ${input:neetodesk-api-key}"
             }
           }
         }
       }
       ```

    2. Paste your API key when VS Code asks.

    <Warning>
      This file lives in your project. Do not paste the key into the file itself, or it can end up in a commit.
    </Warning>
  </Tab>

  <Tab title="Windsurf">
    1. Add the server to `~/.codeium/windsurf/mcp_config.json`. Use `serverUrl`, not `url`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "serverUrl": "https://connect.neetodesk.com/mcp/messages",
             "headers": {
               "Authorization": "Bearer YOUR_API_KEY"
             }
           }
         }
       }
       ```

    2. Turn on the server under **Settings → Cascade → MCP Servers**.
  </Tab>

  <Tab title="Antigravity">
    1. Open **Settings → Customizations → Open MCP Config**.

    2. Add the server to `mcp_config.json`. Use `serverUrl`, not `url`:

       ```json theme={"system"}
       {
         "mcpServers": {
           "neetodesk": {
             "serverUrl": "https://connect.neetodesk.com/mcp/messages",
             "headers": {
               "Authorization": "Bearer YOUR_API_KEY"
             }
           }
         }
       }
       ```

    3. Reload Antigravity.
  </Tab>
</Tabs>

Replace `YOUR_API_KEY` with a key from your workspace. [Learn how to generate your API key.](https://help.neetodesk.com/articles/api-keys)

## Confirm the connection

Ask the assistant *"List my open NeetoDesk tickets."* If it answers with your tickets, the connection works. For more prompts, see [Examples](/mcp/examples). If it does not work, see [Troubleshooting](/mcp/troubleshooting).


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