MCP · claude mcp add · 96 tools · your model, never metered

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. Because Claude Code 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 Claude Code?

smolanalytics is 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 96 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 Claude Code 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 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. Try it at smolanalytics.com: 14-day full trial, no card, then $19/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. 96 tools land in your session: 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; Claude is already your model, 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 Claude can't hallucinate a number it never computes. 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: a 14-day full trial, no credit card. 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 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. 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 session gets 96 tools and 15 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. 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