measuremysite-mcp
Веб-аналитика без cookie, доступная вашему AI-агенту. Компактный сервер аналитики для одного сайта со встроенным сервером MCP. С его помощью Claude Code, Cursor или Codex могут анализировать трафик и помогать решать, что делать дальше.
Разверните сервер в своём аккаунте Cloudflare (Workers + D1; бесплатного тарифа достаточно для большинства небольших сайтов). Данные останутся в вашем аккаунте.
Раньше этот репозиторий назывался agentlytics-mcp. Worker, база данных, трекер (agentlytics.track) и сервер MCP сохранили прежнее название, чтобы продолжали работать существующие установки.
Ниже приведены примеры вопросов и ответов; числа указаны для иллюстрации.
Хостинговый сервер MCP: https://a.measuremy.site/mcp
Не хотите размещать сервер самостоятельно? measuremy.site — хостинговая версия (site.measuremy/analytics в реестре MCP): те же инструменты MCP, а также панель управления, объяснения всплесков трафика с помощью AI, отслеживание публикаций с упоминаниями о вас (Hacker News, Bluesky, YouTube и другие), оповещения и еженедельные сводки. Используется Streamable HTTP с OAuth: при первом подключении нужно войти через браузер, а API key никуда вставлять не требуется. 30-дневный бесплатный пробный период без привязки карты; тарифы начинаются от $9 в месяц.
VS Code (Copilot): добавьте сервер в .vscode/mcp.json или выберите MCP: Add Server → HTTP. При запуске сервера VS Code предложит войти.
{
"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" } } }
После входа создайте аккаунт или войдите в существующий и укажите домен сайта. Затем попросите агента: «добавь аналитику measuremy.site в этот проект». Сервер передаст ему тег script для вашего сайта. Документация: measuremy.site/docs/mcp.
В остальной части README описана версия для самостоятельного размещения.
Что умеет ваш агент
Задавайте вопросы обычными словами, например:
-
«Почему вчера резко вырос трафик?» Агент найдёт всплеск и определит источник, страницу или событие, которые за ним стоят.
-
«На каком этапе пользователи уходят с главной страницы, не завершив регистрацию?» Агент построит воронку и покажет самый большой отток.
-
«Что работает и о чём написать дальше?» Агент ранжирует каналы по числу конверсий и предложит следующие шаги.
-
«Создай отслеживаемую ссылку для моей публикации на Reddit и проверь на следующей неделе, как она сработала».
Инструменты, доступные через MCP:
| Область | Инструменты |
|---|---|
| Трафик | get_overview, get_timeseries, top_sources, top_pages, top_countries, top_browsers, top_systems, list_events |
| Запросы о посещениях | query_visits (фильтрация и группировка по стране, браузеру, ОС, источнику, странице, событию и дню), recent_visits |
| Всплески | find_traffic_spikes, explain_spike (ранжирование возможных причин и ваши аннотации) |
| Воронки | create_funnel, get_funnel, delete_funnel |
| Рост | get_whats_working, get_growth_actions |
| Кампании | create_tracked_link, get_campaign_results, add_annotation |
Также доступен prompt plan_marketing, который помогает агенту составить план на основе данных.
Конфиденциальность
-
Cookie не используются, и данные в браузере посетителя не сохраняются.
-
IP-адрес и user agent не сохраняются. Идентификатор посетителя — это хеш, который меняется каждый день, поэтому отслеживать человека изо дня в день невозможно.
-
Сохраняются только названия браузера и ОС (например, «Firefox» и «macOS»), а также страна, которую определяет Cloudflare.
-
Необработанные события удаляются через 400 дней; почасовые итоги сохраняются.
Проверьте, какие правила применяются в вашем регионе и в регионах ваших посетителей; это не юридическая консультация.
Развертывание
В один клик
Кнопка копирует этот репозиторий в ваш аккаунт GitHub, создаёт базу данных D1, выполняет миграции и развёртывает Worker. При этом запрашиваются три параметра:
-
SITE_DOMAIN: домен вашего сайта, напримерexample.com(безhttps://иwww) -
HASH_SECRET: произвольная длинная случайная строка, используемая для создания ежедневного идентификатора посетителя -
MCP_READ_KEY: ещё одна длинная случайная строка — ключ, который использует ваш AI-агент
Создайте два случайных значения с помощью openssl rand -hex 32. Сохраните MCP_READ_KEY, чтобы подключить агента, как описано ниже.
Вручную
Вам понадобятся аккаунт Cloudflare и Node.js версии 20 или выше.
git clone https://github.com/developeron29/measuremysite-mcp.git
cd measuremysite-mcp
npm install
npx wrangler login
- Создайте базу данных и вставьте выведенный
database_idвwrangler.jsonc:
npx wrangler d1 create agentlytics-mcp
- Задайте три параметра. Для двух ключей используйте длинные случайные значения, например созданные с помощью
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 repo
При первом выполнении secret put Wrangler может предложить создать Worker. Подтвердите действие.
- Разверните приложение (при этом также создаются таблицы):
npm run deploy
В обоих случаях вы получите URL Worker, например https://agentlytics-mcp..workers.dev. При переходе по нему откроется страница состояния с доменом вашего сайта. В панели Cloudflare можно подключить собственный домен, например stats.yourdomain.com.
Необязательное ограничение частоты запросов: чтобы ограничить число запросов с одного IP-адреса, добавьте этот фрагмент в wrangler.jsonc и выполните развёртывание повторно:
"ratelimits": [{ "name": "COLLECT_LIMITER", "namespace_id": "1001", "simple": { "limit": 120, "period": 60 } }]
Добавление трекера на сайт
Добавьте этот код в `` на каждой странице:
<script defer src="https://YOUR-WORKER-URL/t.js"></script>
Трекер учитывает просмотры страниц, в том числе переходы на стороне клиента в одностраничных приложениях. Чтобы учитывать важные события, например регистрацию:
agentlytics.track("signup", { plan: "pro" });
Либо добавьте атрибут к любому элементу, чтобы отслеживать событие без JavaScript:
Start free">
<button data-agentlytics-event="cta_click">Start free</button>
Учитываются только страницы на домене SITE_DOMAIN и его поддоменах.
Подключение агента
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 или ~/.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"
Затем выполните export AGENTLYTICS_READ_KEY=YOUR_MCP_READ_KEY в оболочке, из которой запускаете Codex.
После этого спросите: «Используй agentlytics и расскажи, как прошла эта неделя для моего сайта». Для сравнения всплесков понадобится несколько дней данных о трафике.
Поручите настройку агенту
Предложите своему агенту для работы с кодом следовать инструкциям в AGENTS.md: «Разверни measuremysite-mcp для моего сайта, следуя AGENTS.md». Агент проведёт вас через все шаги и запросит подтверждение перед действиями, для которых нужен вход в Cloudflare.
Самостоятельное размещение или хостинговая версия?
| measuremysite-mcp (этот репозиторий) | measuremy.site | |
|---|---|---|
| Инструменты MCP для агента | Да | Да |
| Отслеживание без cookie, воронки, всплески и кампании | Да | Да |
| Сайты | Один на каждое развёртывание | Несколько в одном аккаунте |
| Панель управления | Нет (задавайте вопросы агенту) | Да, с фильтрами и публичной ссылкой для общего доступа |
| Объяснения всплесков с помощью AI | Нет | Да |
| Публикации с упоминаниями о вас (HN, Lobsters, Bluesky, YouTube, Reddit) | Нет | Да, на графике трафика |
| Оповещения и еженедельная сводка по электронной почте | Нет | Да |
| Кто обслуживает | Вы, в своём аккаунте Cloudflare | Мы |
| Стоимость | Бесплатно (оплачивается только использование Cloudflare) | 30-дневный бесплатный пробный период, затем от $9 в месяц |
Разработка
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 запускает сервер локально и предоставляет MCP через stdio для клиентов, которые запускают сервер как команду (например, Glama). В окружении должны быть заданы SITE_DOMAIN, HASH_SECRET и MCP_READ_KEY.
Лицензия
MIT. См. файл LICENSE.