Analytics,designed for AI agents.

Drop-in behavioral tracking that AI coding agents can read, query, and fix — in one conversation.

<script
  src="https://useractivity.ai/tracker.js"
  data-site="YOUR_SITE_ID"
  defer
></script>

One tag. Zero config. Every behavioral signal, captured.

The problem

AI tools never add analytics

Prompt "build a signup flow" and you get the flow — not tracking for drop-offs, rage clicks, or abandonment. Observability is never part of the happy path.

Traditional analytics aren't built for agents

PostHog, Mixpanel, Amplitude — they output dashboards and charts for humans. Your AI agent needs structured data and natural language summaries it can reason about.

No feedback loop

You can't say "users are dropping off at step 3 — fix it" and have your AI agent act on structured behavioral data. The loop between user behavior and code iteration is open.

How it works

1

One script tag

Paste a single line into your HTML. Works on any site — React, Vue, Svelte, vanilla HTML, Lovable, Vercel, anywhere.

<script src="https://useractivity.ai/tracker.js" data-site="YOUR_SITE_ID" defer></script>
2

Connect your AI agent

Add this to your project's MCP config. Nothing to install — your agent connects directly to the hosted API.

// .mcp.json (Claude Code, Cursor, etc.)
{
  "mcpServers": {
    "useractivity": {
      "type": "http",
      "url": "https://useractivity.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
3

Close the loop

Ask your agent about real user behavior. It queries the data, identifies problems, and fixes them — all in one conversation.

You:   "Users aren't converting on signup. What's wrong?"

Agent: [calls get_frustration_signals for /signup]

Agent: "The signup page has a frustration score of 34/100.
       67% of users never scroll past the first fold, and
       11% show u-turn behavior. I recommend moving the
       CTA above the fold. Want me to fix that?"

What AI agents see

Natural language summaries and structured data — designed for AI consumption, not dashboards.

API response

GET /api/v1/frustration?site_id=abc-123
Authorization: Bearer sk_...

{
  "command": "frustration",
  "site_id": "abc-123",
  "period_days": 7,
  "score": 72,
  "score_breakdown": {
    "rageClickPenalty": -8,
    "deadClickPenalty": -12,
    "errorPenalty": -3,
    "hesitationPenalty": -5
  },
  "narratives": [
    {
      "severity": "warning",
      "summary": "Dead clicks detected on /pricing",
      "detail": "12% of sessions include clicks on non-interactive elements"
    },
    {
      "severity": "critical",
      "summary": "Rage clicks on checkout submit button",
      "detail": "8% of sessions show 3+ rapid clicks on .btn-submit"
    }
  ]
}

MCP tool response

// get_frustration_signals({ page: "/pricing" })

{
  "page": "/pricing",
  "frustration_score": 34,
  "signals": [
    {
      "type": "scroll_dropoff",
      "detail": "67% of users never scroll past first fold",
      "affected_sessions": 412
    },
    {
      "type": "u_turns",
      "detail": "11% navigate to /pricing, leave, return",
      "pattern": "/ → /pricing → / → /pricing"
    }
  ]
}

Quick start

# 1. Sign up at useractivity.ai/dashboard
# 2. Create a site — get your site ID and API key
# 3. Add the script tag to your HTML <head>

<script
  src="https://useractivity.ai/tracker.js"
  data-site="YOUR_SITE_ID"
  defer
></script>

# 4. Query your data via the API
curl -H "Authorization: Bearer YOUR_API_KEY" "https://useractivity.ai/api/v1/health?site_id=YOUR_SITE_ID"

# 5. Or connect your AI agent via MCP (see docs)