measuremy.site
Cookieless web analytics your AI agent can read: traffic, spikes and what caused them, funnels.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http measuremy-site 'https://a.measuremy.site/mcp'
{
"mcpServers": {
"measuremy-site": {
"type": "http",
"url": "https://a.measuremy.site/mcp"
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
measuremysite-mcp
Cookieless web analytics your AI agent can read. A small analytics server for one website, with an MCP server built in, so Claude Code, Cursor or Codex can look at your traffic and help you decide what to do next.
You deploy it to your own Cloudflare account (Workers + D1, the free tier is enough for most small sites). Your data stays in your account.
This repo used to be called agentlytics-mcp. The worker, database, tracker (agentlytics.track) and MCP server keep that name so existing installs keep working.
Example questions and answers; the numbers are illustrative.
Hosted MCP server: https://a.measuremy.site/mcp
Don't want to run it yourself? measuremy.site is the hosted version (site.measuremy/analytics in the MCP registry): the same MCP tools, plus a dashboard, AI explanations of traffic spikes, tracking of posts that mention you (Hacker News, Bluesky, YouTube...), alerts and weekly summaries. Streamable HTTP with OAuth: you sign in through the browser the first time, and no API key is pasted anywhere. 30-day free trial, no card; plans from $9 a month.
VS Code (Copilot): in .vscode/mcp.json, or MCP: Add Server → HTTP. VS Code asks you to sign in when the server starts.
{
"servers": {
"measuremysite": { "type": "http", "url": "https://a.measuremy.site/mcp" }
}
}
Claude Code
claude mcp add --scope user --transport http measuremysite https://a.measuremy.site/mcp
Cursor (~/.cursor/mcp.json)
{ "mcpServers": { "measuremysite": { "url": "https://a.measuremy.site/mcp" } } }
On sign-in you create an account (or log in) and enter your site's domain. Then ask your agent to "add measuremy.site analytics to this project": the server hands it the script tag for your site. Docs: measuremy.site/docs/mcp.
The rest of this README covers the self-hosted version.
What your agent can do
Ask in plain words, for example:
- "Why did traffic jump yesterday?" It finds the spike and the source, page or event behind it.
- "Where do people drop off between the homepage and signup?" It builds a funnel and shows the biggest drop.
- "What's working, and what should I post next?" It ranks channels by conversions and turns that into steps.
- "Make a tracked link for my Reddit post, and check how it did next week."
Tools exposed over MCP:
| Area | Tools |
|---|---|
| Traffic | get_overview, get_timeseries, top_sources, top_pages, top_countries, top_browsers, top_systems, list_events |
| Questions about visits | query_visits (filter and group by country, browser, OS, source, page, event, day), recent_visits |
| Spikes | find_traffic_spikes, explain_spike (ranked causes, plus your annotations) |
| Funnels | create_funnel, get_funnel, delete_funnel |
| Growth | get_whats_working, get_growth_actions |
| Campaigns | create_tracked_link, get_campaign_results, add_annotation |
Plus a plan_marketing prompt that walks the agent through a data-backed plan.
Privacy
- No cookies and nothing stored in the visitor's browser.
- No IP address or user agent is stored. A visitor id is a hash that changes every day, so nobody can be followed from one day to the next.
- Only browser and OS names (like "Firefox", "macOS") and the country Cloudflare reports are kept.
- Raw events are deleted after 400 days; hourly totals are kept.
Check what applies where you and your visitors are; this is not legal advice.
Deploy
One click
The button copies this repo to your GitHub account, creates the D1 database, runs the migrations and deploys the worker. It asks for three settings:
SITE_DOMAIN: your website's domain, likeexample.com(nohttps://orwww)HASH_SECRET: any long random string, used to make the daily visitor idMCP_READ_KEY: another long random string, the key your AI agent uses
Generate the two random values with openssl rand -hex 32, and keep MCP_READ_KEY for connecting your agent below.
By hand
You need a Cloudflare account and Node.js 20+.
git clone https://github.com/developeron29/measuremysite-mcp.git
cd measuremysite-mcp
npm install
npx wrangler login
- Create the database and paste the printed
database_idintowrangler.jsonc:npx wrangler d1 create agentlytics-mcp Set the three settings. Use long random values for the two keys, for example from
openssl rand -hex 32:npx wrangler secret put SITE_DOMAIN # e.g. example.com npx wrangler secret put HASH_SECRET # makes the daily visitor id; never share it npx wrangler secret put MCP_READ_KEY # the key your agent uses; keep it out of your repoWrangler may offer to create the worker on the first
secret put; say yes.- Deploy (this also creates the tables):
npm run deploy
Either way you get a worker URL like https://agentlytics-mcp.<you>.workers.dev. Opening it shows a status page with your domain. You can attach a custom domain such as stats.yourdomain.com in the Cloudflare dashboard.
Optional rate limit: to cap how often one IP can send hits, add this to wrangler.jsonc and deploy again:
"ratelimits": [{ "name": "COLLECT_LIMITER", "namespace_id": "1001", "simple": { "limit": 120, "period": 60 } }]
Add the tracker to your site
Put this in the <head> of every page:
<script defer src="https://YOUR-WORKER-URL/t.js"></script>
It counts pageviews, including client-side navigation in single-page apps. To count something that matters, like a signup:
agentlytics.track("signup", { plan: "pro" });
or without JavaScript, on any element:
<button data-agentlytics-event="cta_click">Start free</button>
Only pages on SITE_DOMAIN (and its subdomains) are counted.
Connect your agent
Claude Code
claude mcp add --scope user --transport http agentlytics https://YOUR-WORKER-URL/mcp --header "Authorization: Bearer YOUR_MCP_READ_KEY"
Cursor (.cursor/mcp.json or ~/.cursor/mcp.json)
{
"mcpServers": {
"agentlytics": {
"url": "https://YOUR-WORKER-URL/mcp",
"headers": { "Authorization": "Bearer YOUR_MCP_READ_KEY" }
}
}
}
Codex (~/.codex/config.toml)
[mcp_servers.agentlytics]
url = "https://YOUR-WORKER-URL/mcp"
bearer_token_env_var = "AGENTLYTICS_READ_KEY"
and export AGENTLYTICS_READ_KEY=YOUR_MCP_READ_KEY in the shell that starts Codex.
Then ask: "Use agentlytics to tell me how my site did this week." Spikes need a few days of traffic to compare against.
Let your agent do the setup
Point your coding agent at AGENTS.md: "Deploy measuremysite-mcp for my site by following AGENTS.md". It walks through every step and asks you before anything that needs your Cloudflare login.
Self-hosted or hosted?
| measuremysite-mcp (this repo) | measuremy.site | |
|---|---|---|
| MCP tools for your agent | Yes | Yes |
| Cookieless tracking, funnels, spikes, campaigns | Yes | Yes |
| Sites | One per deploy | Several, one account |
| Dashboard | No (ask your agent) | Yes, with filters and a public share link |
| AI explanations of spikes | No | Yes |
| Posts that mention you (HN, Lobsters, Bluesky, YouTube, Reddit) | No | Yes, on your traffic chart |
| Alerts, weekly email summary | No | Yes |
| Who runs it | You, on your Cloudflare account | Us |
| Price | Free (your Cloudflare usage) | 30-day free trial, then from $9 a month |
Develop
cp .dev.vars.example .dev.vars # then edit the values
npm run db:migrate:local
npx wrangler dev
npm test
npm run typecheck
scripts/stdio.sh runs the server locally and serves MCP over stdio, for clients that start a server as a command (Glama uses it). It needs SITE_DOMAIN, HASH_SECRET and MCP_READ_KEY in the environment.
License
MIT. See LICENSE.
Questions fréquentes
Qu'est-ce que measuremy.site ?
Cookieless web analytics your AI agent can read: traffic, spikes and what caused them, funnels.
Comment installer measuremy.site ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http measuremy-site 'https://a.measuremy.site/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour measuremy.site ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
measuremy.site est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient measuremy.site ?
Il est publié par developeron29. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.