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

# Supported clients and setup

> Choose among nine chat apps and developer tools, with clear OAuth, API-key, and local-bridge setup.

Start in **SendPilot → Integrations → MCP**. First-time setup shows all supported clients before asking for configuration. Select one to open its instructions; the other clients remain visible for switching. Returning visits open connection records, with **Connections**, **API Keys**, and the client list readily available. Only the selected client is remembered per account/workspace, not credentials.

If workspace access needs activation, the subscription screen appears first. Follow **Continue to Checkout**, or use **Manage Subscription** for an existing subscription. Previous connections are hidden under **Manage existing access** until requested.

## Compatibility

| Client | Current connection method |
| - | - |
| Claude Desktop | Local `mcp-remote` bridge with your API key |
| ChatGPT Desktop with MCP server settings | Local Codex-host configuration with an API-key header |
| Claude web, mobile, and cloud-connected Cowork | Workspace-bound OAuth when enabled for the configured client |
| ChatGPT web custom MCP apps | Workspace-bound OAuth when enabled for the configured client |
| Claude Code | Workspace API key; terminal registration |
| Cursor | Workspace API key; `mcpServers` configuration |
| VS Code | Workspace API key; `.vscode/mcp.json` |
| Codex CLI | Workspace API key; `~/.codex/config.toml` |
| OpenCode | Workspace API key; `opencode.json` |

Desktop app versions and organization policies affect which settings are available. The web and desktop connection paths are different; a desktop configuration file is not read by a cloud connector.

Developer-tool examples are in the [client configuration guide](/ai/mcp#client-configuration). You do not need Claude Code to use Claude Desktop.

## Claude Desktop

### 1. Install the prerequisite

Install [Claude Desktop](https://claude.ai/download) and [Node.js 22 or newer](https://nodejs.org/). Claude Desktop will start the local bridge for you. You do not need to keep a terminal open.

### 2. Create or reuse a key in SendPilot

Select **Claude Desktop** in the MCP tab. Click **Create API Key**, give it a name, and choose **Use Key for Setup**. If you already saved a full API key, choose **Use Saved Key** instead.

### 3. Open Claude's configuration

In the desktop application's settings, open **Developer → Edit Config**. The file is:

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

Add the `sendpilot` entry to `mcpServers`. Keep any existing server entries. The dashboard's **Copy Configuration** button includes your key; this example uses a placeholder:

```json theme={null}
{
  "mcpServers": {
    "sendpilot": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@0.14.3",
        "https://mcp.sendpilot.ai",
        "--transport",
        "http-only",
        "--header",
        "X-API-Key:${SENDPILOT_API_KEY}"
      ],
      "env": {
        "SENDPILOT_API_KEY": "YOUR_SENDPILOT_API_KEY"
      }
    }
  }
}
```

`mcp-remote` expands the environment placeholder and supplies the header. The key is not placed in the server URL. This is a third-party local bridge, not an OAuth login or SendPilot's documentation-search server. Its first start downloads the package and may take longer.

### 4. Restart and verify

Save the file, fully quit Claude Desktop, and reopen it. Enable SendPilot from the chat's connectors/tools menu. Ask:

> Show my SendPilot workspace and campaigns. Don't change anything.

Confirm the returned workspace name. If the server is missing, check the configuration's JSON syntax and the Node.js installation. Organization administrators may restrict local MCP servers.

## ChatGPT Desktop

These instructions apply to desktop versions with **Settings → MCP servers** and local Codex-host configuration. If that setting is absent, do not assume the web connector path can substitute for it.

1. Select **ChatGPT Desktop** in SendPilot's MCP setup panel and create or enter a key.
2. Open `~/.codex/config.toml` used by the desktop app. Add the following server while preserving existing configuration:

```toml theme={null}
[mcp_servers.sendpilot]
url = "https://mcp.sendpilot.ai"
http_headers = { "X-API-Key" = "YOUR_SENDPILOT_API_KEY" }
```

3. In **Settings → MCP servers**, restart the connection.
4. Type `/mcp` in the composer to check connected servers, then try the workspace-verification prompt above.

The dashboard can copy this configuration with your key already included. Keep the file private. If you also use Codex CLI or its IDE extension on the same host, they share this configuration. See [OpenAI's MCP configuration documentation](https://developers.openai.com/codex/mcp) for supported app versions and settings.

## OAuth connections

OAuth is offered only when the deployment has its Clerk clients configured. If the MCP panel says OAuth is unavailable, use a supported API-key client rather than putting an API key in an OAuth field.

See the dedicated [OAuth guide](/ai/mcp-oauth) for consent, refresh, permissions, status and troubleshooting.

### 1. Review the SendPilot workspace

In **Integrations → MCP**, select **Claude (web & mobile)** or **ChatGPT (web)**. Check the workspace name and choose access:

* **Read and Write** is preselected for new connections and includes the permitted campaign, lead, outreach and credit-spending tools shown in the panel. Individual outreach/spend approvals and plan limits still apply.
* **Read Only** can be selected before creating the connection.

Click **Create Connection** only after reviewing the access. SendPilot stores a connection bound to you, that workspace, that assistant's registered OAuth client, and those permissions. Creation alone does not mark it connected.

### 2. Configure the assistant

Copy the connection's **Server URL** and **public Client ID** from SendPilot. New URLs look like `https://mcp.sendpilot.ai/connections/<connection-id>` and are not API keys. Development connections use `https://mcp-dev.sendpilot.ai/connections/<connection-id>`.

Older URLs containing `/mcp/connections/<connection-id>` still work without redirects. Keep the URL supplied for that connection: existing OAuth token audiences are not rewritten. Existing API-key configurations using `https://mcp.sendpilot.ai/mcp` and `/mcp/<toolset>` also keep working.

* **Claude:** open Settings → Connectors → Add custom connector. Enter the URL, then choose Sign in now → Use your own OAuth client where shown. Paste the public OAuth Client ID and leave the client secret blank.
* **ChatGPT:** enable developer mode where available and create a custom MCP app. Choose OAuth, enter the URL and public Client ID, and leave the client secret blank for the public client. Availability and settings labels depend on your plan and organization policy.

Start the connection and sign in using the **same SendPilot user** who created it. Review the SendPilot-branded consent page, which uses Clerk's native Allow/Deny controls. Desktop uses two columns; mobile puts approval first and collapses workspace details underneath. The client exchanges and refreshes tokens through Clerk. SendPilot checks the exact resource URL and registered client.

### 3. Verify or disconnect

Ask the assistant to show your workspace and campaigns without changing anything. Confirm the workspace name. **Check Recorded Use** and **Refresh Connection Records** report historical authenticated use, not continuous health. **Resume Setup** preserves the saved URL and permissions.

Use **Disconnect** to revoke this connection. Future authorizations for its URL are denied, including refreshed tokens. This does not disconnect your LinkedIn sender or sign you out of Clerk, and it cannot recall an already-started provider action. To reconnect, create a new connection.

### Separate workspaces

Create a separate connection for each workspace. Do not reuse a connection URL to switch workspaces: its workspace, creator, client and approved permission set are fixed. Removing workspace membership or reducing permissions also restricts access.

For development, the dashboard creating the connection and the deployed MCP service must use the same database. Cloud clients cannot reach a localhost URL.

## Web and mobile connections

### Claude web, mobile, and remote connectors

Claude's **Settings → Connectors → Add custom connector** flow connects from Anthropic's cloud. Its documented authenticated setup uses OAuth; its advanced Client ID and Client Secret fields are OAuth application credentials, not fields for a SendPilot API key.

Use the workspace-bound OAuth flow above when enabled. The generic API-key endpoint cannot be connected through these OAuth fields. Where OAuth is unavailable, use the Claude Desktop local bridge or another supported API-key client.

Local Claude Desktop tools are local to that desktop app. They do not automatically become available in Claude web, mobile, or cloud-connected Cowork. See [Claude's custom connector documentation](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).

### ChatGPT on the web

ChatGPT's developer-mode custom MCP apps support OAuth, no authentication, and mixed OAuth/no-auth modes. They do not provide the arbitrary API-key-header configuration used by the local desktop/Codex host.

SendPilot requires authentication, so choosing **No authentication** will not work. Use the workspace-bound OAuth flow above when enabled. Do not put an API key in the URL or the OAuth Client Secret field.

See [OpenAI's developer-mode authentication options](https://platform.openai.com/docs/guides/developer-mode). Availability also depends on plan and organization settings. If OAuth is disabled for your deployment, a different API key will not bypass that limitation.

## Next steps

* [Available tools](/ai/mcp-tools): campaigns, leads, inbox, and sourcing.
* [Approvals and retries](/ai/mcp#approvals-and-writes): understand when an action runs and how to avoid duplicates.
