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

# Claude Desktop

> Connect StackOne MCP to Claude Desktop using the mcp-remote package.

## Overview

[Claude Desktop](https://claude.ai/download) is Anthropic's GUI application for macOS and Windows with full MCP support for tools, resources, and prompts.

<Info>
  For complete Claude Desktop MCP documentation, see the [official MCP quickstart](https://modelcontextprotocol.io/quickstart/user).
</Info>

## Setup

Claude Desktop requires the [`mcp-remote`](https://github.com/geelen/mcp-remote) package to connect to remote HTTP servers.

<Tip>
  The fastest way to get your configuration is directly from the StackOne dashboard — it generates a ready-to-paste JSON block for Claude Desktop.
</Tip>

<Steps>
  <Step title="Get your MCP URL from the dashboard">
    1. Go to **Connectors** in the left nav and open the connector you want to use
    2. Click **Use in Agent** in the top right
    3. On the **Use** tab, click **MCP Server** under "Use with Agent Client"
    4. Select a linked account from the dropdown
    5. Choose **Claude Desktop** as the client
    6. Copy the generated JSON block

    The config uses a single token URL — no separate API key encoding required.

    <Tip>
      The token expires after one year. Regenerate it at any time using the refresh button in the MCP tile.
    </Tip>
  </Step>

  <Step title="Locate Configuration File">
    1. Open Claude Desktop
    2. Navigate to **Settings** → **Developer**
    3. Click **"Edit Config"** to open the configuration file in your default editor

    <Tip>
      The config file is located at:

      * **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
      * **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
    </Tip>

    <Frame>
      <img src="https://mintcdn.com/stackone-60/77sEEdKO-IR2XOp6/images/mcp/claude-desktop-settings-developer.png?fit=max&auto=format&n=77sEEdKO-IR2XOp6&q=85&s=03883a8b9d23d65b161b95a494c20187" alt="Claude Desktop Settings page showing Developer tab with Edit Config button highlighted" width="1142" height="856" data-path="images/mcp/claude-desktop-settings-developer.png" />
    </Frame>
  </Step>

  <Step title="Add StackOne MCP Configuration">
    Paste the config from the dashboard into your `claude_desktop_config.json`. It looks like this:

    ```json theme={null}
    {
      "mcpServers": {
        "gsheets": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-remote@latest",
            "https://api.stackone.com/mcp?token={session_token}"
          ]
        }
      }
    }
    ```

    <Tip>
      Use short names for easier identification: `gsheets`, `slack`, `hubspot-sales`. You can prefix with `stackone-` or `s1-` if you have other MCP servers, but it's not required.
    </Tip>

    <Accordion title="Multiple accounts example">
      For multiple linked accounts, add an entry for each. Get each token from the dashboard by selecting the relevant account.

      <Frame caption="Screenshots show 'stackone-' prefix — this is optional.">
        <img src="https://mintcdn.com/stackone-60/77sEEdKO-IR2XOp6/images/mcp/claude-desktop-connectors-list.png?fit=max&auto=format&n=77sEEdKO-IR2XOp6&q=85&s=dc94d1baf128b49947a6b48ae45e9b48" alt="Claude Desktop Connectors page showing multiple MCP servers configured for different integrations" width="2484" height="1204" data-path="images/mcp/claude-desktop-connectors-list.png" />
      </Frame>

      ```json theme={null}
      {
        "mcpServers": {
          "gsheets": {
            "command": "npx",
            "args": [
              "-y",
              "mcp-remote@latest",
              "https://api.stackone.com/mcp?token={google_sheets_session_token}"
            ]
          },
          "slack": {
            "command": "npx",
            "args": [
              "-y",
              "mcp-remote@latest",
              "https://api.stackone.com/mcp?token={slack_session_token}"
            ]
          }
        }
      }
      ```
    </Accordion>

    <Accordion title="Alternative: Manual API key setup">
      If you prefer to use your API key and account ID directly, encode your API key first:

      <Snippet file="mcp/base64-encoding.mdx" />

      <Frame>
        <img src="https://mintcdn.com/stackone-60/77sEEdKO-IR2XOp6/images/mcp/claude-desktop-terminal-encode.png?fit=max&auto=format&n=77sEEdKO-IR2XOp6&q=85&s=ca00ee0bf695acb86fe4df0c61b7a1d9" alt="Terminal showing base64 encoding command and output" width="703" height="446" data-path="images/mcp/claude-desktop-terminal-encode.png" />
      </Frame>

      Then add to your config:

      ```json theme={null}
      {
        "mcpServers": {
          "gsheets": {
            "command": "npx",
            "args": [
              "-y",
              "mcp-remote@latest",
              "https://api.stackone.com/mcp?x-account-id={account_id}",
              "--header",
              "Authorization: Basic {base64_encoded_api_key}"
            ]
          }
        }
      }
      ```
    </Accordion>
  </Step>

  <Step title="Restart Claude Desktop">
    Close and reopen Claude Desktop to load the new configuration.
  </Step>
</Steps>

## Verify connection

After restarting, navigate to **Settings** → **Developer** to verify your servers are configured:

<Frame>
  <img src="https://mintcdn.com/stackone-60/77sEEdKO-IR2XOp6/images/mcp/claude-desktop-mcp-servers.png?fit=max&auto=format&n=77sEEdKO-IR2XOp6&q=85&s=66aed9ef02098534f580ca674cb8aa3b" alt="Claude Desktop Settings showing configured Local MCP servers" width="2500" height="1154" data-path="images/mcp/claude-desktop-mcp-servers.png" />
</Frame>

A green "running" badge indicates the server is connected. If you see "failed", click **Open Logs Folder** to troubleshoot.

Your servers will also appear in **Settings** → **Connectors** with a "Local Dev" tag, where you can configure tool permissions:

<Frame caption="Screenshots show servers with 'stackone-' prefix — this is optional.">
  <img src="https://mintcdn.com/stackone-60/77sEEdKO-IR2XOp6/images/mcp/claude-desktop-tool-permissions.png?fit=max&auto=format&n=77sEEdKO-IR2XOp6&q=85&s=dda5cf63e675d7279d58508e6e80eeed" alt="Claude Desktop Connectors page showing tool permissions with options to enable or require approval for each tool" width="2658" height="1196" data-path="images/mcp/claude-desktop-tool-permissions.png" />
</Frame>

Once connected, try prompts like:

```text theme={null}
What StackOne tools are available?
```

```text theme={null}
Search recent calls in Gong
```

You can also ask about API schemas or documentation.

<Note>
  For troubleshooting, see Claude Desktop's logging capabilities in the [official MCP documentation](https://modelcontextprotocol.io/quickstart/user).
</Note>

## Programmatic integration

For programmatic integration with Anthropic's Claude API, see the [Anthropic SDK Framework Guide](/embed/call-actions/mcp/anthropic-sdk).

## Handling large tool catalogs

If the connector exposes many actions, add the `tool-mode=search_execute` query parameter to the MCP URL in your config. The client then registers just two tools — search + execute — and the agent discovers actions at runtime, so the context footprint stays flat however large the catalog:

```
https://api.stackone.com/mcp?tool-mode=search_execute
```

For a token URL, append it as an extra parameter: `https://api.stackone.com/mcp?token=<session_token>&tool-mode=search_execute`.

See [Tool Discovery](/features/tool-discovery) for how search works, its accuracy, and the other modes.

For example, with API-key auth:

```json theme={null}
{
  "mcpServers": {
    "stackone-bamboohr": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://api.stackone.com/mcp?tool-mode=search_execute",
        "--header",
        "Authorization: Basic <BASE64_APIKEY_COLON>",
        "--header",
        "x-account-id: <ACCOUNT_ID>"
      ]
    }
  }
}
```

## Optimize and secure

With your agent connected, use StackOne's platform features to optimize performance and secure every call.

<CardGroup cols={3}>
  <Card title="Search & Execute" icon="magnifying-glass" href="/optimize/search-and-execute">
    Reduce context and save tokens.
  </Card>

  <Card title="Data Sync" icon="arrows-rotate" href="/optimize/data-sync">
    Reduce latency and enable semantic search.
  </Card>

  <Card title="Defender" icon="shield-halved" href="/secure/defender">
    Block prompt injections before they reach your agent.
  </Card>
</CardGroup>
