SEO Tools: Google Analytics 4
NPM · SEO-TOOLS-MCP-GA4 · SCANNED SEP 20
Google Analytics 4: reports, traffic sources, landing pages, events, realtime (read-only).
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security89
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects uuid 9.0.1, reached via google-auth-library > gaxios > uuid. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 40 of 118 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 25 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability59
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 5363 tokens (~282/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 93% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 19 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the SEO Tools: Google Analytics 4 MCP server?
SEO Tools: Google Analytics 4 runs locally as an npm package, launched with npx -y seo-tools-mcp-ga4. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · seo-tools-mcp-ga4
claude mcp add antohins-seo-tools-mcp-ga4 -- npx -y seo-tools-mcp-ga4
{
"mcpServers": {
"antohins-seo-tools-mcp-ga4": {
"command": "npx",
"args": [
"-y",
"seo-tools-mcp-ga4"
]
}
}
} {
"servers": {
"antohins-seo-tools-mcp-ga4": {
"command": "npx",
"args": [
"-y",
"seo-tools-mcp-ga4"
]
}
}
} codex mcp add antohins-seo-tools-mcp-ga4 -- npx -y seo-tools-mcp-ga4
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"antohins-seo-tools-mcp-ga4": {
"type": "local",
"command": [
"npx",
"-y",
"seo-tools-mcp-ga4"
],
"enabled": true
}
}
} openclaw mcp add antohins-seo-tools-mcp-ga4 --command npx --arg -y --arg seo-tools-mcp-ga4
mcp_servers:
antohins-seo-tools-mcp-ga4:
command: "npx"
args: ["-y", "seo-tools-mcp-ga4"] {
"McpServers": {
"antohins-seo-tools-mcp-ga4": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"seo-tools-mcp-ga4"
]
}
}
} assistant mcp add antohins-seo-tools-mcp-ga4 -t stdio -c npx -a -y seo-tools-mcp-ga4
{
"mcpServers": {
"antohins-seo-tools-mcp-ga4": {
"command": "npx",
"args": [
"-y",
"seo-tools-mcp-ga4"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 −3
- Stability: pass → 0.77 functional
- 14 Sept 26 +1
- Stability: 0.97 → pass security
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Sept 26 −3
- Stability: pass → 0.80 functional
- 7 Sept 26 +1
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/seo-tools-mcp-ga4@1.8.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-w5hq-g745-h8pq | CVE-2026-41907 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 118 packages
| Packages resolved | 118 |
|---|---|
| Deprecated | 1 |
| Stale | 39 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ga4_annotations GA4: annotations ~236
Аннотации свойства GA4 (Admin API reportingDataAnnotations, v1alpha) — пометки на датах: релизы, редизайны, рекламные кампании, а также сгенерированные самой GA4 (systemGenerated=true). ВЫЗЫВАТЬ, когда в динамике виден необъяснимый скачок или провал: аннотация часто и есть объяснение. Аннотация бывает на одну дату (date) или на период (date + endDate).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| endDate | string | – | Конец периода (YYYY-MM-DD) |
| limit | integer | – | Сколько аннотаций вернуть |
| propertyId | string | – | Числовой id свойства (по умолчанию GA4_PROPERTY_ID) |
| startDate | string | – | Оставить аннотации, пересекающие период. Строго YYYY-MM-DD: ключевые слова GA4 здесь НЕ работают (фильтр Admin API) |
No output schema declared.
No examples provided.
ga4_auth_status GA4: auth status ~74
Статус авторизации ga4: какие ключи заданы (маскированно), каких не хватает, как их получить. ВЫЗЫВАТЬ ПЕРВЫМ в начале работы с ga4. Если чего-то нет — запросить значения у пользователя и сохранить через ga4_set_credentials.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ga4_bytime GA4: bytime ~343
Динамика метрик GA4 по времени: разбивка по дате/неделе/месяцу/часу. Возвращает строки {date|week|month|hour, <метрики>} в хронологическом порядке.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| compareEndDate | string | – | Конец периода сравнения |
| compareStartDate | string | – | Начало периода сравнения (вместе с compareEndDate). В строках появится колонка dateRange: current/previous |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| includeQuota | boolean | – | Добавить остаток квоты свойства (поле quota): сколько «токенов» Data API съел запрос и сколько осталось на час/сутки |
| includeTotals | boolean | – | Добавить итоги по метрикам (поле totals; при сравнении — по строке на период) |
| limit | integer | – | Сколько строк вернуть (в ответе totalRows/truncated) |
| metrics | array | – | Метрики GA4 (по умолчанию sessions, activeUsers, screenPageViews) |
| period | string | – | Гранулярность ряда |
| propertyId | string | – | Числовой id свойства GA4 (или properties/123). По умолчанию — GA4_PROPERTY_ID |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4: today, yesterday, NdaysAgo |
No output schema declared.
No examples provided.
ga4_check_compatibility GA4: check compatibility ~329
Совместима ли связка измерений/метрик В ЭТОМ свойстве (Data API checkCompatibility) — проверка БЕЗ тяжёлого отчёта. compatible=true означает, что такой отчёт пройдёт; при false в incompatibleFields — поля, которые GA4 просит убрать. Дополнительно возвращает canAddDimensions/canAddMetrics — что ЕЩЁ можно добавить к этому запросу, сохранив совместимость. Совместимость зависит от свойства: например, метрики Search Console (organicGoogleSearchClicks и др.) работают только при связке GA4 ↔ Search Console, иначе не сочетаются ни с одним измерением. Фильтры тоже влияют на совместимость — передавай те же filters/metricFilters, что и в будущем отчёте.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| dimensions | array | – | Проверяемые измерения |
| filters | array | – | Те же фильтры по измерениям, что пойдут в отчёт (они участвуют в проверке совместимости) |
| limit | integer | – | Сколько «можно добавить»-полей вернуть |
| metricFilters | array | – | Те же фильтры по метрикам, что пойдут в отчёт |
| metrics | array | – | Проверяемые метрики |
| propertyId | string | – | Числовой id свойства (по умолчанию GA4_PROPERTY_ID) |
No output schema declared.
No examples provided.
ga4_devices GA4: devices ~292
Устройства GA4: сессии/пользователи по типу устройства, ОС или браузеру.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| compareEndDate | string | – | Конец периода сравнения |
| compareStartDate | string | – | Начало периода сравнения (вместе с compareEndDate). В строках появится колонка dateRange: current/previous |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| groupBy | string | – | – |
| includeQuota | boolean | – | Добавить остаток квоты свойства (поле quota): сколько «токенов» Data API съел запрос и сколько осталось на час/сутки |
| includeTotals | boolean | – | Добавить итоги по метрикам (поле totals; при сравнении — по строке на период) |
| limit | integer | – | Сколько строк вернуть (в ответе totalRows/truncated) |
| metrics | array | – | – |
| propertyId | string | – | Числовой id свойства GA4 (или properties/123). По умолчанию — GA4_PROPERTY_ID |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4: today, yesterday, NdaysAgo |
No output schema declared.
No examples provided.
ga4_events GA4: events ~382
События GA4: количество событий и пользователей по eventName. keyEventsOnly=true — оставить ТОЛЬКО ключевые события (бывшие конверсии): фильтр по измерению isKeyEvent + метрика keyEvents (и измерение, и метрика есть не во всех свойствах — если API ответит ошибкой по полю, вызови с keyEventsOnly=false).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| compareEndDate | string | – | Конец периода сравнения |
| compareStartDate | string | – | Начало периода сравнения (вместе с compareEndDate). В строках появится колонка dateRange: current/previous |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| eventName | string | – | Точное имя события для фильтра |
| includeQuota | boolean | – | Добавить остаток квоты свойства (поле quota): сколько «токенов» Data API съел запрос и сколько осталось на час/сутки |
| includeTotals | boolean | – | Добавить итоги по метрикам (поле totals; при сравнении — по строке на период) |
| keyEventsOnly | boolean | – | Только ключевые события: фильтр isKeyEvent=true + метрика keyEvents |
| limit | integer | – | Сколько строк вернуть (в ответе totalRows/truncated) |
| metrics | array | – | – |
| propertyId | string | – | Числовой id свойства GA4 (или properties/123). По умолчанию — GA4_PROPERTY_ID |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4: today, yesterday, NdaysAgo |
No output schema declared.
No examples provided.
ga4_funnel GA4: funnel ~531
Воронка GA4 (Data API runFunnelReport, v1alpha): сколько пользователей дошло до каждого шага и где отвалились. Шаг задаётся событием (eventName) и/или условиями по измерениям. Минимум ДВА шага. openFunnel=false (по умолчанию) — закрытая воронка: считаются только те, кто вошёл через ПЕРВЫЙ шаг; true — пользователь может войти на любом шаге. isDirectlyFollowedBy — шаг обязан идти сразу за предыдущим. breakdownDimension разбивает воронку по измерению (deviceCategory, sessionSourceMedium…); у каждого шага появляется строка-ИТОГ с меткой "(всего)" — складывать её с остальными нельзя. ВНИМАНИЕ 1: внутри ШАГОВ действует схема Exploration API, а НЕ обычная схема отчётов — часть измерений там недоступна, в том числе pagePath (брать pagePathPlusQueryString, pageLocation или unifiedPagePathScreen). ga4_metadata на шаги воронки не распространяется. ВНИМАНИЕ 2: у воронок СВОЯ корзина квоты Data API, и запрос дорогой — порядка 10 «токенов» против 1 у обычного отчёта.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| breakdownDimension | string | – | Измерение для разбивки воронки, например deviceCategory |
| breakdownLimit | integer | – | Сколько значений разбивки оставить (по умолчанию — решает GA4) |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| filters | array | – | Фильтр по ВСЕЙ воронке (не по отдельному шагу) |
| includeQuota | boolean | – | Добавить остаток квоты (у воронок корзина своя) |
| limit | integer | – | Сколько строк таблицы воронки вернуть |
| openFunnel | boolean | – | true — открытая воронка (вход на любом шаге) |
| propertyId | string | – | Числовой id свойства (по умолчанию GA4_PROPERTY_ID) |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| steps | array | yes | Шаги воронки по порядку, минимум два |
No output schema declared.
No examples provided.
ga4_geo GA4: geo ~291
География GA4: сессии/пользователи по стране, региону или городу.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| compareEndDate | string | – | Конец периода сравнения |
| compareStartDate | string | – | Начало периода сравнения (вместе с compareEndDate). В строках появится колонка dateRange: current/previous |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| groupBy | string | – | – |
| includeQuota | boolean | – | Добавить остаток квоты свойства (поле quota): сколько «токенов» Data API съел запрос и сколько осталось на час/сутки |
| includeTotals | boolean | – | Добавить итоги по метрикам (поле totals; при сравнении — по строке на период) |
| limit | integer | – | Сколько строк вернуть (в ответе totalRows/truncated) |
| metrics | array | – | – |
| propertyId | string | – | Числовой id свойства GA4 (или properties/123). По умолчанию — GA4_PROPERTY_ID |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4: today, yesterday, NdaysAgo |
No output schema declared.
No examples provided.
ga4_list_properties GA4: list properties ~106
Свойства GA4, доступные авторизации (Admin API accountSummaries, с полным обходом страниц). Возвращает { propertyId, displayName, account, accountName } — propertyId нужен всем остальным инструментам (это НЕ Measurement ID G-XXXXXXX). Заодно проверка доступов.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
No output schema declared.
No examples provided.
ga4_metadata GA4: metadata ~321
Какие измерения и метрики доступны В ЭТОМ свойстве GA4 (Data API getMetadata), включая КАСТОМНЫЕ (customEvent:… / customUser:…). ВЫЗЫВАТЬ ПЕРЕД ga4_report, если не уверен в именах полей: их сотни (порядка 375 измерений и 119 метрик), и точные API-имена не угадываются. search — подстрока по имени/описанию; customOnly — только кастомные поля свойства. ВАЖНО: у метрики может быть blockedReasons — по такой отчёт вернёт ОДНИ НУЛИ без ошибки, а metricFilters по ней упадёт с 400. Поле type подсказывает, целое или дробное класть в metricFilters.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| customOnly | boolean | – | Только кастомные определения свойства |
| limit | integer | – | Сколько полей каждого типа вернуть |
| propertyId | string | – | Числовой id свойства (по умолчанию GA4_PROPERTY_ID) |
| search | string | – | Подстрока для поиска (регистронезависимо), например "landing", "revenue", "organic" |
| withDescriptions | boolean | – | Включить описания полей (ответ вырастет в разы; поиск по описанию работает всегда) |
No output schema declared.
No examples provided.
ga4_oauth_finish GA4: oauth finish ~122
Шаг 2 OAuth-авторизации Google: обменивает код на access+refresh токены и сохраняет их. Без аргументов берёт код, пойманный localhost-приёмником после ga4_oauth_start; можно передать код вручную.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| code | string | – | Код из редиректа (обычно не нужен — подхватывается автоматически) |
No output schema declared.
No examples provided.
ga4_oauth_start GA4: oauth start ~201
Шаг 1 OAuth-авторизации Google: вернёт ссылку — пользователь открывает её под нужным Google-аккаунтом и разрешает read-only доступ. Полученный токен видит доступ ко ВСЕМ свойствам Google Analytics этого аккаунта. Требуется OAuth client типа Desktop app (client ID + secret из console.cloud.google.com); переданные clientId/clientSecret сохраняются (при account — в профиль GOOGLE_CLIENT_*__<account>, базовые значения не перезаписываются). После согласия Google отправит браузер на localhost — код подхватится автоматически, затем вызвать ga4_oauth_finish.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| clientId | string | – | OAuth client ID (если не сохранён как GOOGLE_CLIENT_ID) |
| clientSecret | string | – | OAuth client secret |
No output schema declared.
No examples provided.
ga4_property_details GA4: property details ~188
Карточка свойства GA4 (Admin API): таймзона отчётов, валюта, отрасль, уровень сервиса (STANDARD или 360 — от него зависят квоты и сэмплирование), дата создания и ПОТОКИ ДАННЫХ с их Measurement ID (G-XXXXXXX). ВЫЗЫВАТЬ, когда даты в отчётах не сходятся с ожидаемыми (GA4 считает сутки в таймзоне свойства, не в UTC) или когда нужно сопоставить свойство с кодом счётчика на сайте.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| propertyId | string | – | Числовой id свойства (по умолчанию GA4_PROPERTY_ID) |
No output schema declared.
No examples provided.
ga4_realtime GA4: realtime ~170
Realtime-отчёт GA4 (последние 30 минут, runRealtimeReport): активные пользователи с разбивкой. Периода дат у него нет; доступен ограниченный набор измерений/метрик.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| dimensions | array | – | Realtime-измерения: country, city, deviceCategory, unifiedScreenName, eventName… |
| limit | integer | – | – |
| metrics | array | – | Realtime-метрики: activeUsers, screenPageViews, eventCount |
| propertyId | string | – | Числовой id свойства GA4 (по умолчанию GA4_PROPERTY_ID) |
No output schema declared.
No examples provided.
ga4_report GA4: report ~645
Произвольный отчёт GA4 (Data API runReport): любые измерения × метрики, фильтры по измерениям и по значениям метрик, сортировка, сравнение периодов (compareStartDate/compareEndDate) и итоги (includeTotals). Если не уверен в именах полей — сначала ga4_metadata; если боишься 400 «incompatible» — ga4_check_compatibility. Имена — как в API: измерения (date, sessionSourceMedium, pagePath, country, deviceCategory, eventName…), метрики (activeUsers, newUsers, sessions, screenPageViews, engagedSessions, engagementRate, bounceRate, averageSessionDuration, eventCount, keyEvents, totalRevenue…). ВНИМАНИЕ: bounceRate/engagementRate GA4 возвращает ДОЛЕЙ (0..1), не процентами. В ответе timeZone свойства, totalRows и truncated; thresholded=true — часть данных скрыта порогом конфиденциальности.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| compareEndDate | string | – | Конец периода сравнения |
| compareStartDate | string | – | Начало периода сравнения (вместе с compareEndDate). В строках появится колонка dateRange: current/previous |
| dimensions | array | – | Измерения GA4, максимум 9 (пусто — только итоги по метрикам) |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| filters | array | – | Фильтры по измерениям (между собой — AND) |
| includeQuota | boolean | – | Добавить остаток квоты свойства (поле quota): сколько «токенов» Data API съел запрос и сколько осталось на час/сутки |
| includeTotals | boolean | – | Добавить итоги по метрикам (поле totals; при сравнении — по строке на период) |
| keepEmptyRows | boolean | – | Возвращать строки с нулями |
| limit | integer | – | Сколько строк вернуть (в ответе totalRows/truncated) |
| metricFilters | array | – | Фильтры по ЗНАЧЕНИЯМ метрик (между собой — AND), например sessions > 50 — отсечь шумовые строки |
| metrics | array | yes | Метрики GA4, максимум 10 |
| offset | integer | – | Смещение для постраничного обхода |
| orderBy | string | – | Метрика или измерение для сортировки (обязано быть в metrics/dimensions этого запроса) |
| orderDesc | boolean | – | Сортировать по убыванию |
| propertyId | string | – | Числовой id свойства GA4 (или properties/123). По умолчанию — GA4_PROPERTY_ID |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4: today, yesterday, NdaysAgo |
No output schema declared.
No examples provided.
ga4_save_sa_json GA4: save sa json ~128
Сохранить содержимое JSON-ключа сервис-аккаунта в конфиг-директорию (права 600) и прописать GA4_SA_JSON. Альтернатива, если файл уже лежит на диске: ga4_set_credentials с путём в GA4_SA_JSON.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| json | string | yes | Полное содержимое скачанного JSON-ключа сервис-аккаунта |
No output schema declared.
No examples provided.
ga4_set_credentials GA4: set credentials ~240
Сохранить ключи ga4 в /tmp/.config/seo-tools-mcp/.env (права 600) и применить сразу, без перезапуска сервера. Передавать только обновляемые поля. account — сохранить в именованный профиль (мультиаккаунт). Значения даёт пользователь; в ответе они маскируются.
| Name | Type | Req | Description |
|---|---|---|---|
| GA4_PROPERTY_ID | string | – | Свойство GA4 по умолчанию (числовой id, например 123456789) |
| GA4_REFRESH_TOKEN | string | – | Refresh-токен OAuth (получается через ga4_oauth_start/finish) |
| GA4_SA_JSON | string | – | Путь к JSON-ключу сервис-аккаунта (альтернативный путь) |
| GOOGLE_CLIENT_ID | string | – | OAuth client ID из Google Cloud (для пути OAuth) |
| GOOGLE_CLIENT_SECRET | string | – | OAuth client secret из Google Cloud |
| account | string | – | Имя аккаунта-профиля (мультиаккаунт): ключи сохранятся с суффиксом __<account> |
No output schema declared.
No examples provided.
ga4_top_pages GA4: top pages ~414
Топ страниц GA4: по URL страницы (pagePath), заголовку или странице входа. groupBy=landing использует landingPagePlusQueryString (у устаревшего landingPage с 2023 обрезается query string, и цифры расходятся с отчётом «Целевая страница» в интерфейсе GA4). organicOnly=true — только органический поиск (полезно для SEO-аналитики посадочных).
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| compareEndDate | string | – | Конец периода сравнения |
| compareStartDate | string | – | Начало периода сравнения (вместе с compareEndDate). В строках появится колонка dateRange: current/previous |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| groupBy | string | – | – |
| includeQuota | boolean | – | Добавить остаток квоты свойства (поле quota): сколько «токенов» Data API съел запрос и сколько осталось на час/сутки |
| includeTotals | boolean | – | Добавить итоги по метрикам (поле totals; при сравнении — по строке на период) |
| limit | integer | – | Сколько строк вернуть (в ответе totalRows/truncated) |
| metrics | array | – | – |
| organicOnly | boolean | – | Только Organic Search |
| pathContains | string | – | Фильтр по подстроке пути (CONTAINS): по группирующему измерению, а при groupBy=title — по pagePath |
| propertyId | string | – | Числовой id свойства GA4 (или properties/123). По умолчанию — GA4_PROPERTY_ID |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4: today, yesterday, NdaysAgo |
No output schema declared.
No examples provided.
ga4_traffic_sources GA4: traffic sources ~350
Источники трафика GA4: сессии/пользователи/вовлечённость по каналу или источнику-каналу. groupBy=channel — стандартные группы каналов (Organic Search, Direct, Referral…), source_medium — «google / organic».
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Аккаунт-профиль (мультиаккаунт, см. *_auth_status); пусто = основной |
| compareEndDate | string | – | Конец периода сравнения |
| compareStartDate | string | – | Начало периода сравнения (вместе с compareEndDate). В строках появится колонка dateRange: current/previous |
| endDate | string | – | YYYY-MM-DD или ключевое слово GA4 |
| groupBy | string | – | – |
| includeQuota | boolean | – | Добавить остаток квоты свойства (поле quota): сколько «токенов» Data API съел запрос и сколько осталось на час/сутки |
| includeTotals | boolean | – | Добавить итоги по метрикам (поле totals; при сравнении — по строке на период) |
| limit | integer | – | Сколько строк вернуть (в ответе totalRows/truncated) |
| metrics | array | – | – |
| organicOnly | boolean | – | Только органический поиск (sessionDefaultChannelGroup = Organic Search) |
| propertyId | string | – | Числовой id свойства GA4 (или properties/123). По умолчанию — GA4_PROPERTY_ID |
| startDate | string | – | YYYY-MM-DD или ключевое слово GA4: today, yesterday, NdaysAgo |
No output schema declared.
No examples provided.
What is the SEO Tools: Google Analytics 4 MCP server?
SEO Tools: Google Analytics 4 is an MCP server listed in the public MCP registry as io.github.antohins/seo-tools-mcp-ga4. Google Analytics 4: reports, traffic sources, landing pages, events, realtime (read-only). This page covers its npm package (seo-tools-mcp-ga4).
Is the SEO Tools: Google Analytics 4 MCP server safe to use?
SEO Tools: Google Analytics 4 scores 78 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the SEO Tools: Google Analytics 4 MCP server expose?
SEO Tools: Google Analytics 4 exposes 19 tools: ga4_auth_status, ga4_set_credentials, ga4_oauth_start, ga4_oauth_finish, ga4_save_sa_json, and 14 more. Their descriptions and schemas cost roughly 5,363 tokens of context every time the server is loaded.
Is the SEO Tools: Google Analytics 4 MCP server still maintained?
SEO Tools: Google Analytics 4 is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the SEO Tools: Google Analytics 4 MCP server under?
SEO Tools: Google Analytics 4 declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.