Claude Code analytics, asked in the terminal
Claude Code already has your codebase. This gives it the other half: who visited, what they read, what they paid, and which of your pages earns. One command, and you ask in the terminal you are already in.
MCP is on every plan. Seven days free.
Claude Code, reading your own numbers
One command, then ask it anything
Claude Code talks to an HTTP MCP server with a bearer key. Nothing is exported and nothing is cached.
- terminal$ claude mcp add --transport http geckostats \https://geckostats.com/api/mcp \--header "Authorization: Bearer ml_your_site_key"✓ connected · 26 tools
1. Add the server
One command, with a key you generate per website and can revoke whenever you like.
- ✻ Welcome to Claude Code!/help for help, /status for your current setupcwd: ~/sites/yoursite>which page made the most money last month?? for shortcuts⏺ geckostats - top_pages (MCP)(period: last_month, sort: revenue)⎿ /blog/how-to-pitch-journalists — 194 visitors, $1,943
2. Ask in plain English
No query language and no dashboard to open. It picks the tool, runs it against your data and shows you which one it used.
- 26tools, 24 of them read-only
site_overviewtop_pagestop_sourcestop_goalsbreakdowngeographydevicesrealtimecustomerssubscriptionsvisitorsvisitor_profileretentionlist_funnelsfunnel_statssearch_queriesseo_opportunitiesindex_status+8 more3. Read-only, by default
Twenty-four of the 26 tools are marked read-only by the server. The other two add a funnel or re-run attribution; neither can delete anything or touch your payment provider.
What you can ask
Four kinds of question, the tools your agent reaches for, and what comes back.
“Which post paid for itself?” “Why is revenue down this week?”
overviewsourcescampaigns“Which search queries actually earn?” “Which page is worth another post?”
search_queriespages“Who paid after reading the blog?” “How long from first visit to payment?”
customersfunnels“Did the last deploy hurt conversion?” “Who is on the site right now?”
releasesgoalslive
- New chat
- Chats
- Projects
- Artifacts
All 26 tools
Every one runs the dashboard’s own read path, so a tool returns the figure the dashboard would show or an error.
Traffic
The numbers the dashboard opens on, for any period you ask for.
site_overviewtop_pagestop_sourcestop_goalsbreakdowngeographydevicesrealtimeMoney and people
Who paid, who came back, and what a channel is worth.
customerssubscriptionsvisitorsvisitor_profileretentionlist_funnelsfunnel_statsSearch
Search Console joined to the revenue of the pages it sends people to.
search_queriesseo_opportunitiesindex_statusctr_pressureai_vs_searchSpeed and releases
Core Web Vitals from real visits, and what you shipped when.
vitalsdeploysSetup and admin
The only two tools in the whole set that write anything are create_funnel and rematch_payments. The other 24 only look.
list_sitessite_installcreate_funnelrematch_paymentsPlug GeckoStats into any agent
MCP for your AI tools, a REST API for everything else, and a dashboard that shows what they read.
Work with AI agents
Use Claude, ChatGPT, Claude Code, OpenClaw, Grok, GrokBot, Hermes, Cursor or Gemini CLI to read your traffic, revenue, search and funnels through GeckoStats. MCP for the agents, a REST API for your own code.
Start free trialAsk your AI about your own numbers
Connect any MCP client with one command or a connector. It reads your traffic, revenue, search and funnels through 26 tools, and only the site whose key you gave it.
- New chat
- Search chats
- Library
A payment from anywhere
Four providers send webhooks on their own. For everything else, one call with the amount and the visitor id, and it lands next to the source that brought them.
Mark every deploy on the chart
One curl at the end of your pipeline puts a release tag on the chart, so a drop in revenue or Core Web Vitals can be read against what you shipped.
- name: Mark the release
run: |
curl -X POST https://your-stats.com/api/releases \
-H "Authorization: Bearer ml_…" \
-d '{"name": "v2.4.0", "sha": "$GITHUB_SHA"}'
✓ v2.4.0 on the chart at 14:02And 6 more, on every plan
Starter and Growth both include every one of these, at every size.- Alerts by webhookTracking stopped, revenue down, a page deindexed: each one as a JSON POST to wherever you listen.
- identify()Tie a visitor to an email from your own code, and every earlier visit joins the customer.
- Serve the script from your domainA one-line rewrite, so ad blockers never see it. Payments come from the webhook either way.
- Bearer keys per siteStored as hashes, scoped to one website, revoked from the settings page.
- Every report as JSONSources, pages, goals, funnels, customers, search: the same read path the dashboard uses.
- No cookies, no bannerA visitor is a salted hash that rotates every day. Nothing to consent to, nothing to export.
The same server, from whatever else you use
Plain HTTP MCP with bearer auth, so the tools and the numbers are identical everywhere. Only the registration differs.
Simple pricing, seven days free
MCP is included at every size, with no per-call charge beyond the event allowance you already have.
Starter
For one site and one person.
Billed monthly · up to 100K events
No commitment. Cancel anytime.
- Realtime dashboard
- Live Globe
- User Profiles
- Funnels
- Revenue tracking
- Core Web Vitals
- and 9 more, on every plan
Growth
RecommendedFor several sites and the people who work on them.
Billed monthly · up to 100K events
No commitment. Cancel anytime.
- Realtime dashboard
- Live Globe
- User Profiles
- Funnels
- Revenue tracking
- Core Web Vitals
- and 9 more, on every plan
Every plan starts with 7 days free. No commitment, cancel anytime. Prices exclude VAT, which may apply at checkout.
Claude Code questions
Can Claude Code change anything in my analytics?
Almost nothing. Twenty-four of the 26 tools are marked read-only by the server itself. The two that are not are create_funnel, which adds a funnel definition, and rematch_payments, which re-runs attribution over payments that arrived before a visitor was identified. Neither deletes anything and neither touches your payment provider.
Will it make the numbers up?
It cannot. Every tool runs the dashboard’s own read path against your own database, so a tool either returns the figure the dashboard would show for that period or returns an error. What the model can still get wrong is the reasoning on top, which is why answers come back with the tool call that produced them.
Does this send my visitors’ data to Anthropic?
Only what you ask for comes back, and only to the client you connected. The server is yours, the key is per website, and nothing is pushed anywhere on its own. Visitor identity is derived per site and the IP is never stored, so there is no raw log to leak in the first place.
What if I have several sites?
One key per website. list_sites shows the ones a key can see, and every other tool takes a site id, so you can connect one project or all of them. Revoke a key in Settings and that client stops answering immediately.
Does it work in Cursor, ChatGPT or Gemini CLI too?
Yes. It is a plain HTTP MCP server with bearer auth, so any client that speaks MCP gets the same 26 tools and the same numbers. The command on this page is the Claude Code one; the others differ only in how you register the server.
Is MCP included or an add-on?
Included on every plan, at every size, with no separate charge and no per-call limit beyond the event allowance you already have.
Do I need to export anything, ever?
No. That is the point. There is no CSV step, no copy-paste into the chat, and no stale snapshot: it queries live when you ask.
Give Claude Code the numbers.
One command, and it reads your traffic, revenue, funnels and search from your own database. No exports, no copy-paste.
7 days free · no commitment · cancel anytime
- Overview
- Sources
- Pages
- Campaigns
- Goals
- Customers
- Search
- AI
- Live
- Settings
Copy your key now. You won’t see it again.
ml_live_Qm7xT2vLr9KcH0sWbN8y…4f2aCopyTransport
Client