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
- Open Connections → Claude in your workspace.
- In claude.ai, Claude Desktop or Claude on a phone: Settings → Connectors → Add custom connector, paste the address, and sign in when it asks.
- 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>". - 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.
- Or skip the model entirely and read the graph as data:
GET https://www.kicklace.com/api/v1/peopleand 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.