MCP · 94 tools · 15 prompts · open source (MIT)

Your analytics, inside Cursor.

Ship a feature in Cursor or Claude Code, then ask “did it work?” without leaving the buffer. Because the agent has your code and tracking plan, you can ask by your own names (“MAU for the PQR page”) and it resolves them to routes. Answers are computed from deterministic reports, never generated SQL.

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 94 tools and 15 built-in prompts (instrument-my-app, whats-broken-today, weekly-review, and more). On the cloud it is one connection for the whole org: add your org's MCP endpoint once (the API token from Settings, at /api/mcp), then query or manage any project by passing project="the-name" to any of those tools, and provision new projects with create_project, no browser. The secret read key stays server-side, and the token is permanent, so you set it up once. Because the agent also has your codebase and tracking plan, you can ask in your own terms, like "what's the MAU for the PQR page", and it resolves PQR to the /pqr route before querying. Answers are computed from exact, deterministic reports (funnels, retention, paths), never LLM-generated SQL. 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 $19/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. 94 tools: funnels, retention, paths, trends, instrumentation health, alerts. On the cloud, one connection with your org token operates every project: pass project="the-name" to any tool, or create_project to provision one with no browser, and the read key stays server-side. No API keys to us; your model does the reasoning, so asking is free.
15 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.
Deterministic reports
The tools are computed reports, never generated SQL, so the model can't hallucinate a number it never computes. 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 Pro $19/mo (unlimited sites, 2M events included) or Scale $49/mo (5M events included); past that it's a flat $6/M 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). On the cloud, add your org's MCP endpoint once (the API token from Settings) and it operates the whole org: pass project="the-name" to any tool to query or manage a project, or create_project to provision one, with the secret read key staying server-side and the token permanent. Your editor gets 94 tools and 15 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. 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.

go deeper