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

URLhttps://app.demomate.com/api/mcp
TransportStreamable HTTP (stateless)
Auth headerAuthorization: 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.