smolanalytics
log inStart free
the analytics MCP server

The analytics MCP server your AI can't hallucinate.

Ask your funnels, retention, and paths in plain english from Cursor or Claude. Answers are computed from the same deterministic reports the dashboard renders, never guessed, with a CI test that fails the build if the editor's answer ever differs from the dashboard. 47 tools, 13 prompts, your own model, so the AI is free.

smolanalytics (smolanalytics.com) is an analytics MCP server: a single open-source Go binary that does web and product analytics (visitors, referrers, funnels, retention, paths, cohorts) from one snippet, and exposes all of it to your AI over the Model Context Protocol as 47 tools and 13 prompts. You point Cursor, Claude Code, VS Code, or Windsurf at it and ask your real numbers in plain English from the same window you write code in. The load-bearing difference from a chatbot pointed at your data is that answers are computed, not generated: each tool returns a value from the same deterministic report the dashboard renders, so the model phrases the reply but never invents the figure, and a CI agreement test fails the build if the editor's answer ever differs from the dashboard's. It is bring-your-own-model, so your editor's own AI does the asking and the AI part costs nothing. Self-host the binary free forever (MIT), or use the hosted cloud on a 14-day full trial.
what it is

An analytics backend your AI can call directly

smolanalytics is a single open-source Go binary that does web and product analytics from one snippet: visitors, referrers, UTM, funnels, retention, paths, and cohorts. On top of that data it speaks the Model Context Protocol, the open standard for connecting AI assistants to external tools. That makes it an analytics MCP server: it publishes your metrics as 47 callable tools and 13 prompts, so the model in your editor can fetch a funnel or a retention curve the same way it calls any other MCP tool.

There are two ways to ask, reading the exact same reports: a plain-english ask bar inside the dashboard, and your own coding agent over MCP for code-aware questions in the window where you already work. What each surface is for is spelled out on how it works, and the term itself is defined on the MCP analytics server glossary page.

the killer differentiator

Why can't the AI just make up your numbers?

Every assistant admits it hallucinates your metrics. This one is built so it can't. Three things make the answer trustworthy, and they are the whole reason to use it over a chatbot pointed at a spreadsheet:

  • 1Computed, not generated. Each tool returns a value from the same deterministic report the dashboard renders. The language model phrases the reply, but the figure itself is calculated from your events, never invented by the model.
  • 2A CI agreement test proves it. A test in the build asserts the answer an assistant gets over MCP equals the number the dashboard shows. If they ever drift apart, the build fails. Your editor and your dashboard can't disagree, by construction.
  • 3Bring your own model, so the AI is free. The AI already in your editor (your Cursor, Claude, or VS Code subscription) does the asking. The MCP server just answers with computed numbers, so there is no second AI bill from the analytics tool.

That is the difference between "the model guessed a plausible number" and "the model read the real number and read it out loud." A bare chatbot can do the first. Only a computed MCP server with an agreement test can promise the second.

how to connect

Point Cursor or Claude at it in one command

Once events are flowing, run one command. It wires smolanalytics into every coding assistant you have, so your editor's own model answers from your real data over MCP:

one command, then restart your editor
smolanalytics connect        # wires up Cursor, Claude Code, VS Code, Windsurf, …

That is the hosted-cloud path. If you self-host, run the binary and point your editor's MCP config at that instance instead; the tools and prompts are identical. Either way, after a restart you ask your metrics in the same window you write code. Exact per-editor config is in the docs, and the Cursor / Claude walkthrough is on the Cursor page.

what you can ask

Ask it like you'd ask a data person

Your analytics questions arrive while you write code, not while you stare at a dashboard. So ask them where you already are:

what's my signup to paid conversion, and how long does it take?
did activation improve since we shipped the new onboarding?
what's the retention curve for users who came from the blog?
which channel brings the users that actually stick?

The 47 tools cover funnels, retention, paths, cohorts, channels, and the daily verdict on what to fix; the 13 prompts are ready-made investigations you can trigger by name. See the full list on every feature.

install

Run the whole thing with one docker line

The dashboard, ingestion, and the MCP server are all in one binary. No Kafka, no ClickHouse, no Postgres, just the standard library. Kick the tyres locally:

docker (fastest)
docker run -p 8080:8080 ghcr.io/arjun0606/smolanalytics
# dashboard on http://localhost:8080, ingestion at /v1/events, MCP server ready to connect

Prefer real data first? The live demo is a populated instance you can ask right now, no install. Full self-host notes are in the GitHub README.

Common questions

What is an analytics MCP server?
It is an analytics backend that speaks the Model Context Protocol, the open standard for connecting AI assistants to external tools and data. Instead of copying numbers into a chat, your assistant queries the server directly, so you ask about your traffic, funnels, and retention in plain English from Cursor or Claude and get answers computed from your real data. smolanalytics is one: a single Go binary exposing 47 tools and 13 prompts.
How is this different from just pasting my data into a chatbot?
A chatbot pointed at a spreadsheet formats whatever it can guess. smolanalytics returns values computed from the same deterministic reports the dashboard renders, so the language model phrases the answer but never invents the figure. A CI agreement test fails the build if the answer an assistant gets over MCP ever differs from the dashboard's, which is a guarantee a bare chatbot cannot make.
Whose AI runs the queries, and what does it cost?
Your own. smolanalytics is bring-your-own-model: the AI already in your editor (your Cursor, Claude, or VS Code subscription) does the asking, and the MCP server just answers with computed numbers. There is no separate AI bill from the analytics tool. You pay for the analytics instance, and self-hosting the single Go binary is free forever.
How do I connect my editor to it?
Run smolanalytics connect once and it wires the server into every coding assistant you have (Cursor, Claude Code, VS Code, Windsurf), then restart the editor. After that you ask your metrics in the same window you write code, answered by your model over MCP with 47 tools and 13 prompts. You can also drop a docker one-liner and point your editor at that instance instead.
Can I self-host the MCP server?
Yes. The whole product is one open-source (MIT) Go binary with the standard library only, no Kafka, ClickHouse, or Postgres to run. docker run -p 8080:8080 ghcr.io/arjun0606/smolanalytics gives you the dashboard, ingestion, and the MCP server, all local. Self-host is free forever with unlimited everything; the hosted cloud exists only for the day you would rather not run a server.
What can I actually ask it?
Anything the reports cover: "what's my signup to paid conversion, and how long does it take?", "did activation improve since we shipped onboarding?", "what's the retention curve for users from the blog?", "which channel brings the users that stick?". The 47 tools cover funnels, retention, paths, cohorts, channels, and the daily verdict on what to fix; the 13 prompts are ready-made investigations you can trigger by name.
keep reading
Start the 14-day trial