MCP · VS Code mcp.json · 47 tools · open source (MIT)

Your analytics, inside Copilot.

Ship a feature with GitHub Copilot in VS Code, then ask “did it work?” in the chat panel. One connect command writes the MCP server into VS Code's mcp.json with the right key; answers are computed from deterministic reports — never generated SQL — and a CI test guarantees the editor's answer equals the dashboard's.

copilot chat (agent mode) — /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 with GitHub Copilot?

smolanalytics is open-source (MIT) web and product analytics you ask from GitHub Copilot in VS Code. Copilot's agent mode reads MCP servers from VS Code's user mcp.json, and the quirk that trips people up is the top-level key there is `servers`, not `mcpServers`. `smolanalytics connect vscode` writes that file with the right key for you, so Copilot picks up the tools without you hand-editing JSON. Once connected, Copilot 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 runs against existing PostHog data via --source=posthog before you migrate. You bring your own model — Copilot's — 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

One command, and it uses the right key
VS Code's mcp.json uses the top-level key servers, not mcpServers — get that wrong and Copilot silently ignores the server. smolanalytics connect vscode writes the file correctly, so Copilot's agent mode picks up all 47 tools: funnels, retention, paths, trends, instrumentation health, alerts. No API keys to us; Copilot is your model, so asking is free.
13 built-in prompts
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 — Copilot 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 editor 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 Copilot is never metered — it's your model.

Stop alt-tabbing to a dashboard.

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

questions

How do I connect smolanalytics to GitHub Copilot?
Run smolanalytics connect vscode once. Copilot's agent mode reads MCP servers from VS Code's user mcp.json, and this writes the server there with the correct top-level key — servers, not mcpServers, which is the thing people get wrong by hand. Copilot then gets 47 tools and 13 prompts. No API keys to us: Copilot is your model, so asking is never metered.
Can Copilot 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