Skip to content

Documentation

Is there an MCP server for my customer data?

Yes — point Claude Code, Claude Desktop, claude.ai or any other MCP client at one address and it can look people up, run a report and draft an email. It never sends, never deletes a record and never puts anyone on a list without a person approving it first.

How it works

https://www.kicklace.com/api/mcp is the one address — Streamable HTTP, one POST in and one JSON answer out, nothing kept between calls. Sign in from a connector (claude.ai, Claude Desktop, Claude on a phone: Settings → Connectors → Add custom connector, paste the address, sign in when Kicklace asks) and it acts as you, with a Disconnect that stops it at once; or mint your own key under Connections → Claude for Claude Code or anything else that takes a bearer token. A server key, minted separately for a machine rather than a person, can only read.

The same graph is answered three ways so a read never disagrees with itself: the MCP tools, ten MCP resources (kicklace://people, /organizations, /subscriptions, /events, /releases, /journey, /populations, and three more that take an id or a sha), and a REST address under /api/v1/ — all three run through one reader. The kicklace package reads the same way, from 0.4.0.

Sending an email, deleting a record, revoking a key, disconnecting an integration and merging two records are the acts that need a person: each becomes a proposal on the Approvals page, with one sentence saying what it does and who asked, waiting for an owner or admin to approve or decline. Everything else — looking somebody up, adding a note, saving a view, drafting an automation — happens at once, in the member's own name, and every call it makes is written down under Connections → Claude, whether it worked or was refused.

Set it up

  1. Open Connections → Claude in your workspace.
  2. In claude.ai, Claude Desktop or Claude on a phone: Settings → Connectors → Add custom connector, paste the address, and sign in when it asks.
  3. In Claude Code or another key-based client, mint a key (shown once) and run claude mcp add --transport http kicklace https://www.kicklace.com/api/mcp --header "Authorization: Bearer <key>".
  4. Ask it something — "who joined this week", "who is about to leave" — and read the answer beside the call it made on the Connections → Claude log.
  5. Or skip the model entirely and read the graph as data: GET https://www.kicklace.com/api/v1/people and the rest answer with a secret key — see The graph API.

What it does not do

It never sends an email by itself — it drafts one, or proposes a send that waits for a person's approval. It never deletes anything, revokes a key or removes a member on its own. And it never puts anyone on a list without the exact words they agreed to, stored beside the subscription as the proof. See The MCP server for the protocol in full.