MCP · 47 tools · 13 prompts · open source (MIT)

Your analytics, inside your editor.

Ship a feature in Cursor or Claude Code, then ask “did it work?” without leaving the buffer. Answers are computed from deterministic reports — never generated SQL — and a CI test guarantees the editor's answer equals the dashboard's.

claude code — /whats-broken-today
you ▸ /whats-broken-today
ai ▸ One thing changed: signup is down 18% vs a typical day (94 vs 115) — started around 14:00. Tracking is healthy: all 6 planned events flowing. Traffic is normal, referrer mix unchanged — this is a product problem, not a tracking problem. Most useful action today: check yesterday's deploy to the signup form.
computed from deterministic reports — not guessed SQL. (demo data)

what analytics works inside Cursor and Claude Code?

smolanalytics is an open-source (MIT) web and product analytics tool built to be asked from your editor. It ships an MCP server — `smolanalytics connect` wires it into Claude Code, Cursor, and other MCP clients — exposing 47 tools and 13 built-in prompts (instrument-my-app, whats-broken-today, weekly-review, and more). Answers are computed from exact, deterministic reports — funnels, retention, paths — never LLM-generated SQL, and a CI agreement test asserts the editor's answer always equals the dashboard's for the same question. A plan-as-code gate (`smolanalytics plan check`) fails your CI when an event your tracking plan expects stops firing, and it can run against existing PostHog data via --source=posthog before you migrate anything. You bring your own model, so asking is never metered. Self-host the single Go binary free forever, or use the cloud at smolanalytics.com: 14-day full trial, then from $9/month.

built for the agent loop

Connect over MCP in one command
smolanalytics connect wires the MCP server into every coding assistant you have installed — Claude Code, Cursor, Windsurf, VS Code, Cline. 47 tools: funnels, retention, paths, trends, instrumentation health, alerts. No API keys to us; your model does the reasoning, so asking is free.
13 built-in prompts
Type / and pick a routine: instrument-my-app wires tracking on a fresh repo, whats-broken-today is the morning triage, weekly-review is the recap a good cofounder would give you. Each prompt calls the right tools in the right order and gives you the read, not a data dump.
The agreement test
The tools are deterministic reports, never generated SQL — the model can't hallucinate a number it never computes. A CI agreement test asserts the MCP answer and the HTTP API answer are identical for the same question, every build. The editor's number is the dashboard's number.
Plan-as-code, gated in CI
Your tracking plan lives in smolanalytics.plan.json. smolanalytics plan check exits 1 when an event the plan expects stops flowing — so instrumentation drift fails the build, not the launch. Already on PostHog? Run it with --source=posthog: same gate, zero migration.

Honest pricing: self-hosting is free forever — one MIT-licensed Go binary. The cloud is a 14-day full trial, then Solo $9/mo (unlimited sites, 250k events) or Pro $19/mo (3 seats, 2M events); overage is $5/million and the dashboard never locks. Asking from your editor is never metered — it's your model.

Stop alt-tabbing to a dashboard.

Wire it into your editor in one command, gate your instrumentation in CI, and get the real number where you already work.

questions

How do I connect smolanalytics to Cursor or Claude Code?
Run smolanalytics connect once — it wires the MCP server into every coding assistant you have installed (Claude Code, Cursor, Windsurf, VS Code, Cline). Your editor gets 47 tools and 13 prompts. No API keys to us: your own model does the reasoning, so asking is never metered.
Can the AI hallucinate my numbers?
No. The MCP tools are exact, deterministic reports — funnels, retention, paths — never LLM-generated SQL. A CI agreement test asserts the editor's answer and the dashboard's answer are identical for the same question, every build. You get the real number or nothing.
Can I fail CI when my tracking breaks?
Yes. Declare your tracking plan in smolanalytics.plan.json and run smolanalytics plan check in CI — it exits 1 when an event the plan expects stops flowing or a property goes missing. It also works against existing PostHog data with --source=posthog, so you can adopt the gate before migrating anything.