MCP · claude mcp add · 47 tools · open source (MIT)

Your analytics, inside Claude Code.

Ship a feature in Claude Code, then ask “did it work?” without leaving the terminal. One connect command registers the MCP server via Claude Code's own CLI; answers are computed from deterministic reports — never generated SQL — and a CI test guarantees the terminal'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 Claude Code?

smolanalytics is open-source (MIT) web and product analytics you ask from inside Claude Code. It ships an MCP server, and `smolanalytics connect claude-code` registers it through Claude Code's own CLI — it runs `claude mcp add -s user` for you rather than hand-editing a JSON file, which is the documented, supported path. Once connected, Claude Code gets 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 CI when an event your tracking plan expects stops firing, and it can run against existing PostHog data via --source=posthog before you migrate. You bring your own model — Claude Code is already your 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 via Claude Code's own CLI
smolanalytics connect claude-code registers the MCP server the way Claude Code expects — it runs claude mcp add -s user for you, no JSON file to hand-edit. 47 tools land in your session: funnels, retention, paths, trends, instrumentation health, alerts. No API keys to us; Claude is already your model, 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 — Claude 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 number in your terminal 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 $29/mo (3 seats, 2M events); overage is $5/million and the dashboard never locks. Asking from Claude Code is never metered — it's your model.

Stop alt-tabbing to a dashboard.

One connect command, gate your instrumentation in CI, and get the real number where you already work.

questions

How do I connect smolanalytics to Claude Code?
Run smolanalytics connect claude-code once. It registers the MCP server through Claude Code's own CLI — running claude mcp add -s user for you — rather than editing a config file, which is the supported path. Your session gets 47 tools and 13 prompts. No API keys to us: Claude is already your model, so asking is never metered.
Can Claude 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.

go deeper