Skip to main content

Endpoint

All MCP traffic is JSON-RPC 2.0 over HTTP. We implement the three methods Claude / ChatGPT / Cursor actually use:
  • initialize — no auth, returns protocol version + server info.
  • tools/list — no auth, returns the static tool catalog.
  • tools/callrequires Authorization: Bearer 550e8400-e29b-41d4-a716-446655440000.

Claude Desktop config

claude_desktop_config.json
The Settings → API & MCP page in the dashboard pre-fills this snippet with your active key’s prefix — copy it, paste the full secret in place of the prefix, restart Claude.

Scopes apply identically

The key’s scope set controls what each tool can do. A key without leads:write can call list_leads but not update_lead. The error comes back as a JSON-RPC error object:

Scrubbing applies identically

Every tool output flows through the same PII scrubber as the REST path. If your key lacks transcripts:read, get_call returns the row with transcript: null.

Full tool catalog

See MCP tools for every tool, its input schema, and the scope it requires.

Why MCP?

Three reasons over the REST API:
  1. Discoverability. Claude can tools/list and reason about what to do. No README needed.
  2. Input validation. Each tool ships a JSON Schema input spec — the client can render forms and validate before calling.
  3. Reasoning over multi-step workflows. “Close last week’s AC-repair leads that already booked” is one sentence to the LLM — no code to write.
The REST API stays first-class for deterministic integrations (Zapier, homegrown pipelines). Use whichever fits.