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

# Use Kerux from your AI assistant (MCP)

> Connect claude.ai, ChatGPT, Claude Desktop, Claude Code or Cursor to your workspace.

> [!NOTE]
>
> **Pro plan.** The MCP server is part of Pro and Agency (and the free trial). Anything you already connected keeps working on every plan. See [Plans and billing](/help/account/billing.md).

Looking for the short version for claude.ai or ChatGPT? See [Use Kerux from Claude or ChatGPT](/help/getting-started/use-kerux-from-claude-or-chatgpt.md).

Manage Kerux from your own AI assistant: ask why a contact is stuck and fix it, build a campaign from a sentence, check it before launch, add contacts, read and answer the inbox. It can do exactly what you allow, in one workspace, and never more than the [API](/help/developers/api.md) allows.

The server address is:

```text theme={null}
https://www.usekerux.com/api/mcp
```

## claude.ai and ChatGPT (sign in, no key)

Web assistants connect with a Kerux sign-in, like any other connector. You pick the workspace and what the assistant can do.

> [tab] claude.ai
>
> **1. Add a custom connector**
>
> In claude.ai, open **Settings > Connectors** and click **Add custom connector**. Name it **Kerux** and paste the server address above. Leave the advanced settings empty.
>
> **2. Connect**
>
> Click **Connect**. A Kerux page opens: sign in if you're asked to.
>
> **3. Choose what it can do**
>
> Pick the workspace and tick the permissions. Seeing is ticked for you; changing things (adding contacts, editing campaigns, sending replies) stays off until you tick it. Click **Allow**.

> [tab] ChatGPT
>
> **1. Add a connector**
>
> In ChatGPT, open **Settings > Apps & Connectors**, turn on developer mode if your plan asks for it, then **Create** a connector. Name it **Kerux**, paste the server address above and choose **OAuth** as the authentication.
>
> **2. Connect**
>
> Click **Create**, then **Connect**. A Kerux page opens: sign in if you're asked to.
>
> **3. Choose what it can do**
>
> Pick the workspace and tick the permissions, then click **Allow**.

What you see on the Kerux page:

* **Verified app** when it's claude.ai or ChatGPT: Kerux recognizes them by where they send you back (`claude.ai`, `chatgpt.com`).
* Any other app shows **"Name given by the app"** and a red warning with the site it sends you back to. Anyone can call an app "Claude": allow it only if you know that site and just asked to connect it.
* **The workspace.** The app works only in that one. To use another workspace, connect again and pick it.
* **The permissions.** There is never an "everything" choice: an app can't change billing, members or API keys, and it can't set up webhooks (sending your data to another service needs an API key).

> [!NOTE]
>
> Viewers can't connect apps. Ask an owner or admin to make you a member.

### What a connected app can't do

Whatever the permissions, and whatever a message or a contact's text asks it to do, a connected app (claude.ai, ChatGPT and any other sign-in) can't:

* **Send your contacts' data to a new place.** It can't add a webhook or HTTP step to a new address, or an Always-on box that calls a webhook or an API, and it can't publish or launch a campaign whose steps send to an address the live campaign doesn't. You add those in Kerux, where you see where the data goes. Steps already live keep working and publish as before.
* **Spend money or change keys.** Your Twilio keys and connecting a Bluesky account are done in Kerux, or with an admin API key.
* **Say that all your contacts agreed to texts or WhatsApp.** Turning on **Contacts' consent** in **Settings > Sending rules** is done by an owner or admin in Kerux. No app or API key can turn it on.
* **Start whole audiences without the contacts permission.** Sending a broadcast, a trigger that starts everyone in a segment, list or tag on a schedule (or on a date), trigger URLs and turning on **Auto-start new contacts** need **Start campaigns and broadcasts for your contacts**.
* **Delete more than 100 contacts a day.** Each delete is recorded with the app that made it. Delete more in **Contacts**.
* **Read secret addresses.** Call and booking-tool intake URLs show only their host; trigger URLs need the contacts permission.

Each person can have up to 10 apps connected per workspace: connecting an 11th disconnects the oldest.

> [!NOTE]
>
> An API key with the **Webhooks** permission (or **Full access**) can add destinations through the API. Each time, every owner and admin gets a note in **My tasks** naming where the data goes.

## Claude Code, Cursor and desktop apps (API key)

**1. Create an API key**

In **Integrations > Developers**, create an API key with only the permissions the assistant needs. Read-only is a good start.

**2. Add the server**

In your assistant, add a custom MCP server (HTTP) with the server address above.

**3. Add the key**

Add the header `Authorization: Bearer` followed by your key.

> [tab] Claude Code
>
> ```bash theme={null}
> claude mcp add --transport http kerux https://www.usekerux.com/api/mcp \
>   --header "Authorization: Bearer YOUR_KEY"
> ```
>
> Without `--header`, Claude Code opens the Kerux sign-in page instead, like claude.ai.

> [tab] Cursor
>
> In **Settings > MCP**, add a server, or put this in `.cursor/mcp.json`:
>
> ```json theme={null}
> {
>   "mcpServers": {
>     "kerux": {
>       "url": "https://www.usekerux.com/api/mcp",
>       "headers": { "Authorization": "Bearer YOUR_KEY" }
>     }
>   }
> }
> ```

> [tab] Claude Desktop
>
> Add Kerux under **Settings > Connectors** with the server address, like claude.ai. Or, with a key, add this to `claude_desktop_config.json` (**Settings > Developer > Edit Config**), then restart Claude Desktop:
>
> ```json theme={null}
> {
>   "mcpServers": {
>     "kerux": {
>       "command": "npx",
>       "args": [
>         "mcp-remote",
>         "https://www.usekerux.com/api/mcp",
>         "--header",
>         "Authorization: Bearer YOUR_KEY"
>       ]
>     }
>   }
> }
> ```

## Connected apps and disconnecting

**Integrations > Developers > Connected apps** lists the assistants signed in to the workspace: the app, its permissions, when it was last used and from which network. You see your own apps; owners and admins see everyone's.

* Click **Disconnect** to end an app's access. It stops working on its next request.
* A member who leaves the workspace takes their connected apps with them.
* To change an app's permissions, disconnect it and connect again.
* A connection lasts 90 days. After that the assistant asks you to sign in to Kerux again.
* Apps connected with a key stop when you revoke the key in **API keys**.

## Things to ask

More examples, grouped by task, and what the assistant can't do: [Use Kerux from Claude or ChatGPT](/help/getting-started/use-kerux-from-claude-or-chatgpt.md). Kerux also gives your assistant ready-made prompts (MCP prompts), such as **Why is a contact stuck?**, **Build a campaign** and **Prepare a campaign for launch**.

* "Why is Ana stuck?"
* "Build a 3-step campaign for agency owners: an invitation, then two short follow-ups."
* "Is my Q4 campaign ready to launch? What would block it?"
* "Why is the Webinar campaign so slow this week?"
* "What needs my attention today?"
* "Add these 10 LinkedIn profiles to my Webinar list."
* "Summarize this week's replies in my Q4 campaign."
* "How many invitations did each account send this week, and how many were accepted?"

The assistant asks you before anything that launches, sends a message, adds contacts to a running campaign or deletes. It builds campaigns as drafts: nothing runs until you say launch. If a campaign sends contact data to another tool (a webhook), the assistant and the launch checklist name where it goes. A retried request never acts twice.

## Tools

The assistant sees these tools (only the ones your key's permissions allow):

| Tool | What it does |
| - | - |
| `get_workspace` | The workspace and what the key may do. |
| `search_contacts` | Find contacts by name, company, title, tag or list. |
| `get_contact` | One contact with its fields and where it is in each campaign. |
| `create_or_update_contacts` | Add or update up to 200 contacts, matched by LinkedIn URL. |
| `update_contact` | Change a contact's fields and tags. |
| `list_lists` | Your contact lists. |
| `add_contacts_to_list` | Put contacts in a list, or take them out. |
| `list_campaigns` | Every campaign with its status and how many contacts run, finished or are blocked. |
| `get_campaign` | One campaign: settings, numbered steps in plain words, counters, problems. |
| `create_campaign` | An empty campaign draft, built step by step. |
| `create_campaign_from_description` | A campaign draft built from a sentence, like **Create with AI** (one AI use). |
| `propose_campaign_changes` | Preview step changes before applying them. Saves nothing. |
| `apply_campaign_changes` | Apply step changes to the draft. Never launches. |
| `publish_campaign_changes` | Make the draft's changes live on a running campaign (asks you first). |
| `preflight_campaign` | The launch checklist and forecast. Changes nothing. |
| `launch_campaign` | Launch after the checklist (asks you first). Needs a key that can start contacts. |
| `pause_campaign` / `resume_campaign` | Pause or resume a campaign. |
| `add_contacts_to_campaign` | Add contacts; on a campaign not launched yet they wait for the launch. |
| `list_needs_attention` | Everything that needs a person, grouped by campaign and reason. |
| `explain_contact` | Why a contact waits or is stuck: the reason, since when, the step and the fix. |
| `explain_campaign` | Why a campaign is stuck or slow: where contacts wait, account limits, problems. |
| `apply_contact_fix` | Apply a fix `explain_contact` listed: retry, resume, skip a wait, a fallback value... Sending a step again whose result is unknown is only done in Kerux (**Home > Tasks**). |
| `list_senders` | LinkedIn accounts with their health and today's usage against their limits. |
| `inbox_list_conversations` | Inbox conversations on every channel. |
| `inbox_get_conversation` | The messages of one conversation. |
| `inbox_reply` | Send a reply (asks you first). |
| `list_templates` | Your saved message templates. |
| `analytics_summary` | Invitations, acceptance, replies and meetings for the last days. |
| `list_webhooks` | Your webhook endpoints: only where they send (the host), never their full address or secrets. |
| `list_all_api_operations` / `call_api_operation` | Everything else in the API, one operation at a time. |

> [!TIP]
>
> Want one tool per API operation instead? Add `?tools=all` to the server address (`https://www.usekerux.com/api/mcp?tools=all`). The tools above stay, and every API operation is listed too.

> [!NOTE]
>
> LinkedIn limits still apply to everything the assistant does, and it can't search LinkedIn. Contact names and messages are written by other people: a good assistant treats them as information, not as instructions. Ask it to check with you before it sends, launches or deletes anything.


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