Connect Claude to DemoMate (MCP)
Point Claude (or any MCP client) at DemoMate's read-only MCP server to list your demos and read their analytics — using a scoped, read-only API key.
DemoMate ships a read-only Model Context Protocol server so an AI agent — Claude Code, Claude Desktop, or any MCP client — can look up your demos and their analytics on your behalf. It is a remote Streamable HTTP server; there is nothing to install.
The server is strictly read-only. It exposes exactly two tools and no way to create, edit, publish, or delete anything. Analytics are aggregate counts only — never viewer identities, emails, or leads.
The endpoint
| URL | https://app.demomate.com/api/mcp |
| Transport | Streamable HTTP (stateless) |
| Auth header | Authorization: Bearer dm_... (an MCP key) |
Get an MCP key
MCP keys are a distinct, read-only key type — separate from the dm_ upload tokens the browser extension uses. An MCP key carries a read-only scope, so it can only be used against this server: it is rejected by the capture-upload endpoint, and an extension token is rejected by this server. Keys are hashed at rest, bound to one organization, revocable, and rate-limited.
Create one from your DemoMate API key settings (alongside your extension tokens) and copy it once when it is shown — it is never displayed again. The key reads only the data of the organization it was created in.
Add it to Claude Code
claude mcp add --transport http demomate https://app.demomate.com/api/mcp \ --header "Authorization: Bearer dm_your_key_here"
Then, in a session:
> list my demomate demos > what's the funnel for the "Onboarding tour" demo?
Add it to Claude Desktop / other clients
Point the client at the remote server URL and set the Authorization header:
{
"mcpServers": {
"demomate": {
"type": "http",
"url": "https://app.demomate.com/api/mcp",
"headers": { "Authorization": "Bearer dm_your_key_here" }
}
}
}
Tools
list_demos
Lists the organization's demos. No input. Each row: id, title, slug, status, updatedAt, plus a shareUrl for published demos. Soft-deleted demos are never returned.
get_demo_analytics
Input: demoId (the id from list_demos). Returns the demo's funnel for its current published version: views, completions, completionRate, ctaClicks, and per-step reached counts. A demo that isn't yours — or has no data — returns a zeroed funnel, never another organization's numbers.
Security
- The key is verified before any data is read. A bad, wrong-type, or unbound key is rejected outright.
- Every query is scoped to the key's organization — an MCP key can never read another organization's demos or analytics.
- Analytics are aggregate counts only. No session ids, emails, or lead data are ever exposed over MCP.
- The server offers no mutating tools. Connecting an agent cannot change, publish, or remove anything.
- Revoke a key any time from Settings → API keys; it stops working immediately.