Connect AI to Tonic Desk (MCP)

Tonic Desk ships an MCP (Model Context Protocol) server, the open standard AI tools use to reach external data. Once connected, your AI assistant can search your CRM, pull a contact's full history, check pipelines and aged deals, and answer questions like "what happened with the Hartwell deal?" — in plain English, straight from your live data.

It is read-only by design. The core server exposes 19 read tools and zero write tools, and the recommended read-only API key makes writes impossible at the server too — whatever an AI is asked to do, your CRM data cannot be modified or deleted through this connection. (Workspaces with the dealer-data module get one carefully-scoped exception, described below.)

The two-minute setup

Step 1 — create an API key. In Tonic Desk go to Settings → API Keys, choose Read-only, and copy the key (it's shown once). Keys only ever come from inside the logged-in app, and you can revoke one instantly from the same screen.

Step 2 — let your AI do the rest. Copy this prompt into the AI tool you want to connect (Claude, Cursor, or anything MCP-compatible with file access), paste your key in, and send it:

Set up the Tonic Desk CRM MCP server for the AI tool you are running in.

1. Fetch https://tonicdesk.com/docs/mcp/agent-setup.md and follow it exactly.
2. My Tonic Desk API key is: PASTE_YOUR_READ_ONLY_KEY_HERE
3. When you're done, verify the connection by listing my pipelines and
   telling me what you can now see.

That's it. The instructions your AI fetches cover Claude Desktop, Claude Code, Cursor, and any other MCP client, including where the config file lives and how to verify the connection.

Setting it up by hand

If you'd rather do it yourself, everything the AI reads is human-readable too:

The short version: download tonicdesk-mcp.js, then register it with your MCP client as node /path/to/tonicdesk-mcp.js with the environment variable TONICDESK_API_KEY set to your key.

What your AI can do once connected

Ask things likeTools it uses
"Find everything we have on Hartwell Motors"search_crm, get_company, get_timeline
"Which deals in the sales pipeline are past their close date?"list_pipelines, list_deals
"Summarise my open tasks for this week"list_tasks
"What did we last say to Sarah at Denton's?"search_crm, get_timeline, list_notes
"Which contacts are in the VIP segment?"list_segments, get_segment_contacts

One scope note: the connection reaches your CRM records — the accounts, people and deals your team tracks. Market-data screens are separate, and by default the AI will say they're not reachable rather than guess.

The dealer-data module

Workspaces with the dealer-data module enabled get five additional tools, registered automatically when the AI connects (nothing extra to configure):

  • list_dealers / get_dealer — the market-wide dealer directory, with live EV listing counts and the link (if any) to your CRM company
  • get_dealer_listings — a dealer's live EV/PHEV stock: model, battery kWh, registration, price, days listed, and the listing URL
  • list_nissan_dealers — the official network list with bridges into both the market and CRM universes
  • link_dealer_to_company — the one write: bridge a market dealer to a CRM company (dedup-guarded). It only works with a key created on the Read-only + dealer linking preset, so ordinary read-only keys remain fully read-only.

This makes questions like "which dealers near Cardiff have EVs listed over 90 days, and who do we know there?" answerable in one conversation: market stock from the dealer tools, people and history from the CRM tools, joined by the dealer↔company link.

Security notes

  • Keys are org-scoped — the AI sees only your organisation's data, and only what the key's scopes allow.
  • Prefer the Read-only preset for AI connections. It's the default for a reason.
  • Revocation is instant — delete the key in Settings and every connection using it stops working immediately.
  • Rate-limited — 60 requests/minute per key, so a runaway loop can't hammer your data.
  • Treat the key like a password: don't commit it, don't share it in chat logs.