
# Connect AI Assistants (MCP)

<span data-t="appName">DM Champ</span> ships an official **MCP server** — a Model Context Protocol endpoint
that lets AI assistants like **Claude Code**, **Claude Desktop**, **ChatGPT**,
**Cursor**, and your own apps drive your <span data-t="appName">DM Champ</span> account directly. Ask in plain language
("list my live campaigns", "add this lead", "what did AI cost me this week?")
and the assistant calls the <span data-t="appName">DM Champ</span> API for you.

It's the same v1 API documented in the [API section](../api/getting-started.md), authenticated
with your own API key. The MCP server builds one tool for each operation in our published API
specification, so it covers most, but not all, of the v1 API: contacts, messages, campaigns,
AI agents, knowledge base, appointments, analytics, tags, lists and sub-accounts. Broadcasts,
Automations and Deals are not available as MCP tools yet — use the REST API directly for those.
Within what it exposes there are no per-tool permissions and no read-only
default, so the API key is the whole access control.

- **Endpoint:** `https://mcp.youraiconnector.com/mcp`
- **Auth:** your <span data-t="appName">DM Champ</span> API key (sent as the `X-API-Key` header)
- **Requires:** a plan with API access. [Create an API key →](api-access.md#generating-your-api-key)

> Your API key acts on **your own account**, with the same permissions as the
> rest of the API — and can read the client accounts you manage, if you're on an
> agency plan (see below). Treat it like a password. You can revoke it any time from
> Settings → Integrations → API Key, which instantly cuts off the assistant's access.

## Claude Code

```bash
claude mcp add --transport http dm-champ https://mcp.youraiconnector.com/mcp \
  --header "X-API-Key: YOUR_API_KEY"
```

Then run `/mcp` inside Claude Code to confirm it shows **dm-champ ✓ connected**.

By default the server is added at the **local** scope (just you, this project).
Use `--scope user` to make it available in all your projects, or `--scope
project` to commit it to a repo's `.mcp.json` for your team:

```json
{
  "mcpServers": {
    "dm-champ": {
      "type": "http",
      "url": "https://mcp.youraiconnector.com/mcp",
      "headers": { "X-API-Key": "YOUR_API_KEY" }
    }
  }
}
```

## Claude Desktop

Edit your `claude_desktop_config.json` (Settings → Developer → Edit Config) and
add:

```json
{
  "mcpServers": {
    "dm-champ": {
      "type": "http",
      "url": "https://mcp.youraiconnector.com/mcp",
      "headers": { "X-API-Key": "YOUR_API_KEY" }
    }
  }
}
```

Restart Claude Desktop. <span data-t="appName">DM Champ</span> tools appear in the tools menu.

## ChatGPT

Custom MCP connectors are available on ChatGPT Business, Enterprise and Pro. A
workspace owner or admin has to switch on **developer mode / custom connectors**
in the workspace settings first — without it, the option to create a connector
never appears.

Then create the connector with:

- **URL:** `https://mcp.youraiconnector.com/mcp`
- **Authentication:** Custom headers
- **Header name:** `X-API-Key`
- **Header value:** your <span data-t="appName">DM Champ</span> API key

The URL must end in `/mcp`. Pasting just `https://mcp.youraiconnector.com` is the most
common mistake — ChatGPT checks that exact address, finds nothing there, and
shows **"Unable to add connector URL"**.

## Cursor & other MCP clients

Most MCP-capable editors use the same `.mcp.json` shape shown above (an HTTP
server with a `url` and an `X-API-Key` header). Add a `dm-champ` server pointing
at `https://mcp.youraiconnector.com/mcp` and paste your API key in the header.

## The Claude API (build it into your own app)

You can connect the MCP server programmatically with the Claude API's MCP
connector, so an agent you build can use <span data-t="appName">DM Champ</span> tools without a separate
client:

```json
{
  "model": "claude-opus-4-8",
  "messages": [{ "role": "user", "content": "List my live campaigns" }],
  "mcp_servers": [
    {
      "type": "url",
      "name": "dm-champ",
      "url": "https://mcp.youraiconnector.com/mcp",
      "authorization_token": "YOUR_API_KEY"
    }
  ]
}
```

## What you can do

Within the part of the v1 API the MCP server exposes, the assistant picks the right tool automatically:

- **Campaigns:** list, create, update, pause/resume, inspect bot config.
- **Contacts:** search, create, tag, add to lists, import.
- **Knowledge base / FAQs:** add, edit, bulk import, approve AI suggestions.
- **Messages:** read conversations, send a message to a contact.
- **Appointments:** list, book, cancel.
- **Tasks:** create, complete, list.
- **Analytics:** message stats, credit usage, AI cost.
- **Channels:** check connection status, start a connection flow.

## Asking about your clients' accounts (agencies)

One connection covers every account you manage. You don't add a second connection
per client: on an agency plan, the assistant can read any client account under you,
so you can ask about all of them in one conversation.

Just name the client:

- "How many contacts does Bella's Bistro have?"
- "What did AI cost each of my clients this week?"
- "Which campaigns are live for Northside Dental, and what's the state of their channels?"

This covers reading contacts, messages, chats, campaigns, appointments, tasks, tags,
events, FAQs, knowledge base sources, phone numbers, channels, webhooks and analytics.
We check the account really is yours before anything runs — asking for one that isn't
comes back as "not found". Leave the client out and the assistant reads your own
account, exactly as before.

**Changing a client's account** is more limited. Setting up AI agents, custom
functions, WhatsApp templates, entry points, channel connections, campaign status and
buying a number all work for a named client; most other write actions still run on your
own account, so do those from that client's own key or from the
[REST API](../agency/api-for-agencies.md), which covers more.

This is also the answer for a client who runs **several businesses under one
login**. Give each business its own account, then invite the client's email as a
team member on all of them: they sign in once and switch between their brands with
the account picker in the sidebar.

## Giving your assistant the help docs

The MCP server gives an assistant your **account**; it does not give it this documentation. If you also want it to answer "how do I…" questions correctly, point it at `https://docs.dmchamp.com/llms.txt` (an index of every help page with a link to each page's Markdown version) or `https://docs.dmchamp.com/llms-full.txt` (the whole documentation in one Markdown file). Both are public, need no key, and are rebuilt with every documentation change. See [Reading these docs as Markdown](../api/getting-started.md#reading-these-docs-as-markdown).

## Finding or Generating Your API Key

The API key this connection uses lives at **Settings → Integrations → API Key** — its own section, separate from Webhooks. See [API Access](api-access.md#generating-your-api-key) for the exact steps.

## Troubleshooting

- **"Unable to add connector URL" (ChatGPT) / "connection refused"** — the
  address is missing the `/mcp` at the end. Use
  `https://mcp.youraiconnector.com/mcp`, not `https://mcp.youraiconnector.com`.
- **`Needs authentication` / 401** — your API key is missing or wrong. Re-add
  the server with a valid `X-API-Key`.
- **A tool returns `403`** — your plan or team role doesn't permit that action;
  the MCP server enforces nothing extra, it's the same permission check as the
  API.
- **Tool not found** — the tool list is generated live from the API, so it
  always matches the current version; reconnect to refresh.
- **A security or certificate warning on your own domain** — pointing a DNS
  record at us isn't enough on its own: the subdomain also has to be verified
  in the dashboard before it can serve a secure connection. White-label
  agencies can put the MCP address on their own domain (e.g.
  `mcp.youragency.com`) from the **Custom domain** card under **Settings →
  White Labeling** — add the CNAME at your registrar first, then enter the
  hostname in the **MCP domain (AI assistants)** block and click **Verify**,
  the same flow as your other branded subdomains. Until it's verified, use the standard address above — it is
  unbranded, so it's safe to share with clients.

---

## Next Steps

- [API Access](api-access.md) — generate or rotate the key this connection uses.
- [Webhooks](webhooks.md) — the push-based counterpart to this pull-based MCP connection.
