> For the complete documentation index, see [llms.txt](https://developer.celigo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.celigo.com/mcp/connect/claude-desktop.md).

# Claude Desktop

Connect Celigo Platform MCP to the [Claude Desktop](https://claude.com/download) app.

## Prerequisites

* Claude Desktop installed.
* An integrator.io user (see [Connect a client](/mcp/connect.md)).

## Connect

If your plan offers custom connectors, add the server there — it handles the OAuth sign-in natively and needs no config file:

1. Open **Customize > Connectors** (Team and Enterprise admins manage these under **Organization settings > Connectors**) and choose **Add custom connector**.
2. Enter the name `Celigo` and the URL `https://api.integrator.io/celigo-mcp`.
3. Add the connector, then connect it. Your browser opens the Celigo sign-in page. Sign in and pick the account and environment the agent should work in.

The URL is region-specific. See [Pick your endpoint](/mcp/connect.md#pick-your-endpoint).

### Use the config file instead

Claude Desktop's config file launches local processes, so a remote server is added through the `mcp-remote` bridge, which forwards to the hosted endpoint. Run it without a header and `mcp-remote` starts the same browser sign-in on first use. Requires [Node.js](https://nodejs.org/) 18+ (provides `npx`).

1. Open **Settings > Developer > Edit Config**. This opens `claude_desktop_config.json`.
2. Add the `celigo` entry. The examples below show a complete file; if the file already has content, see [Add to an existing config file](#add-to-an-existing-config-file). On **macOS or Linux**:

```json
{
  "mcpServers": {
    "celigo": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.integrator.io/celigo-mcp"
      ]
    }
  }
}
```

On **Windows**, `npx` is a `.cmd` script that Claude Desktop can't launch directly, so run it through `cmd /c`:

```json
{
  "mcpServers": {
    "celigo": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "mcp-remote",
        "https://api.integrator.io/celigo-mcp"
      ]
    }
  }
}
```

Swap the host to target another region. See [Pick your endpoint](/mcp/connect.md#pick-your-endpoint).

3. Save and fully restart Claude Desktop. A browser window opens for the Celigo sign-in.

> ⚠️ **A token in `claude_desktop_config.json` is stored in plain text.** Keep the file out of version control and off shared machines, and rotate the token in **Resources > API tokens** if it is exposed.

To authenticate with an API token instead of the browser sign-in, append two arguments to the `args` array: `"--header"` and `"Authorization: Bearer <YOUR_API_TOKEN>"`.

### Add to an existing config file

Claude Desktop stores its own settings in `claude_desktop_config.json`, so **Edit Config** often opens a file that already has content, such as a `preferences` block. The examples above are complete files. Pasting one into a file that already has content leaves the file with two sets of outer braces, which is not valid JSON, so Claude Desktop cannot read the file and shows a JSON error when it starts.

`mcpServers` is a top-level key of the file, at the same level as any settings already there. Keep the existing content as it is and add only what is missing:

* **The file has other settings but no `mcpServers` block.** Add a comma after the closing brace of the last existing block, then add the `mcpServers` block. Do not add another pair of outer braces.
* **The file already has a `mcpServers` block**, for example another server you added earlier. Add the `celigo` entry inside that block, after the existing entries and separated from them by a comma. Each key appears once in a JSON object, so do not add a second `mcpServers` block.

Before, as Claude Desktop wrote it:

```json
{
  "preferences": { ... }
}
```

After, with the `celigo` entry added:

```json
{
  "preferences": { ... },
  "mcpServers": {
    "celigo": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.integrator.io/celigo-mcp"
      ]
    }
  }
}
```

`{ ... }` stands for whatever the `preferences` block already contains; leave it unchanged. On Windows, use the `cmd` form of the `celigo` entry from above in the same position.

The same rule applies to any server you add to this file, including [MCP servers you build in integrator.io](https://docs.celigo.com/hc/en-us/articles/50066372735515-Connect-the-Celigo-MCP-server-to-Claude-and-Cursor). If you prefer to edit the file outside Claude Desktop, it is at `~/Library/Application Support/Claude/claude_desktop_config.json` on macOS and `%APPDATA%\Claude\claude_desktop_config.json` on Windows.

## Verify

In a new chat, confirm `celigo` appears in the tools menu, then ask:

> List my connections.

Approve the tool call when prompted. Claude calls `list_connections` and reports the result.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.celigo.com/mcp/connect/claude-desktop.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
