windrose
Dashboard Sign in
Cookieless analytics, MCP native

Your AI already writes your code.
Why is it blind to your traffic?

Windrose is web analytics with an MCP server as the front door. Your coding agent queries it directly and gets back compact, token efficient answers, not raw rows. Plausible for the agent era.

terminal
# add windrose to your agent, once
claude mcp add --transport http windrose https://windrose.sh/mcp
# then just ask
> how did the pricing page do this week?
windrose connected, 17 tools available
claude mcp add --transport http windrose ...
Cookieless tracker/Raw IP discarded/EU hosted
Free check, no signup

Can AI find and cite your site?

Enter your domain. We check whether AI crawlers can reach it, whether you have an llms.txt, and if your content is legible to agents that don't run JavaScript.

The product

The dashboard is not the point. This is.

Your agent reasons over traffic and hands you the answer, already summarized. No tab switching, no scanning charts.

claude code, windrose demo
> How is my traffic changing this week?
get_summary({ site: "windrose.sh", period: "7d" })
reading traffic
visitors 4,812 +12.4%
ai_referred 602 +41.0% chatgpt.com leads
detect_anomalies({ site: "windrose.sh", period: "7d" })
1 notable change referrer:news.ycombinator.com down 38%
sitewide traffic and AI referrals remain steady
Traffic is up 12.4% overall, led by ChatGPT referrals. Hacker News traffic fell 38%, but the drop is source-specific rather than sitewide.
What your agent can ask

Everything your agent needs.

“How is my site doing right now?”

One compact overview: visitors, pageviews, top movers, and what changed for the period. The first thing your agent reads.

get_summary

“Show me X, broken down by Y.”

Any single metric, filtered and grouped: signups by referrer, pageviews by country, bounce on one path.

query_metric

“What changed after I shipped?”

This week vs last, pre-deploy vs post. Deltas come back with significance hints, so the agent knows what is noise.

compare_periods

“Why did the numbers move?”

Spikes and drops surfaced with a probable cause attached: a vanished referrer, a broken page, a crawler wave.

detect_anomalies

“Is my traffic real, or bots?”

Human visitors and crawler hits split cleanly, plus which AI products are sending you actual people.

get_ai_traffic

“What should I fix to get cited?”

Ranked, evidence-backed actions: pages AI crawlers cannot fetch, cited pages that bounce, winners worth amplifying. Shaped for an agent to act on.

get_recommendations

“What is working best?”

Top pages, referrers, countries, devices, or events, ranked with share of total and week-over-week movement built in.

list_top
Two signals, never confused

A crawler is not a customer.

Windrose splits AI crawlers from real humans who arrived from an AI answer, then groups crawler hits by inferred purpose: training, indexing, retrieval, active-agent, or unknown. The JavaScript beacon alone undercounts crawlers that do not run JS, so one small server-side middleware captures recognized AI crawlers at the edge.

AI crawlers

Bots fetching your pages for training, indexing, retrieval, or a user-directed action. Useful to watch, never a conversion.

18,340 req / wk
ClaudeBot9,210
GPTBot6,480
PerplexityBot2,650
AI referrals

Real people who clicked through from an AI answer. This is the traffic that converts.

602 visits / wk
chatgpt.com388
perplexity.ai146
claude.ai68
Full crawler coverage takes one file

The JavaScript beacon only sees crawlers that run JS, so non-JS bots like GPTBot and ClaudeBot slip past it. Drop in the server-side middleware to capture recognized AI crawlers. Integrations that observe the final response also record its HTTP status, so you can see a bot hit a 404 after a deploy, fix the page, and watch the next crawl come back 200. See the setup.

Cookieless by design

No tracking cookies. No raw IP in analytics.

Windrose minimizes visitor data by design. The tracker builds no cross-site profile, raw IP addresses are discarded after country and daily visitor derivation instead of entering the analytics dataset, and the resulting identifier rotates every day.

The analytics tracker sets no cookies.
No persistent device IDs or cross-site profiles.
Daily pseudonymous visitor identifiers rotate every 24 hours.
EU hosted and privacy-first by architecture.
What we store per visit
page/pricing
sourcechatgpt.com
countryDE
devicedesktop
ip addressnever
cookie idnever
Data minimized No cross-site ID EU hosted
Pricing

Priced for people who ship, not enterprises.

Private beta

Free while we are in beta

These tiers are a preview of launch pricing. Until then, everything is free.

Join the beta

Give your agent eyes on your traffic.

One command to connect. Free to start, no credit card, privacy-first defaults.

claude mcp add --transport http windrose https://windrose.sh/mcp
Sign in with GitHub