mcp-google-tagmanager
v1.2.0
Published
MCP server for the Google Tag Manager API v2 — accounts, containers, workspaces, tags, triggers, variables, versions and publishing. For Claude, Cursor, Codex and other AI clients.
Maintainers
Readme
Google Tag Manager MCP
English | Русский
A1 Google Tag Manager MCP позволяет AI-приложению проверять и настраивать контейнеры Google Tag Manager на естественном языке. Можно увидеть, что срабатывает на странице, подготовить теги, триггеры и переменные в черновом рабочем пространстве, а затем осознанно собрать и опубликовать версию.
Сервер подключается к Google Tag Manager API v2 через ваш аккаунт Google. В отличие от догадки AI о настройке GTM, он работает с выбранными вами настоящими контейнером, рабочим пространством и версией.
- 25 инструментов. 10 операций только читают данные GTM; 4 создают черновики или меняют встроенные переменные; 5 могут изменить, удалить, собрать или опубликовать конфигурацию.
- Подключение из диалога. Скажите «подключи Google Tag Manager»: сервер проведёт через создание OAuth-клиента, поймает редирект Google на
127.0.0.1с PKCE и сам сохранит токены — без конфигов и перезапуска. - Сначала черновик. Теги, триггеры и переменные создаются в рабочем пространстве. Публикация — отдельная явно разрушительная операция.
- С учётом квоты. GTM разрешает 0,25 запроса в секунду на проект; сервер делает паузу не менее 4,2 секунды между запросами, а не перегружает API.
- Ваш доступ Google. Сервер использует ваши OAuth-данные и запрашивает только scope GTM, нужные для чтения, редактирования, версий и публикации.
Начните с запроса, который только читает данные:
Какие теги в моих контейнерах срабатывают по триггеру просмотра страницы?
Подключить сервер · Посмотреть сценарии · Открыть техническую документацию
Увидеть работу за минуту
Вы: Покажи мои контейнеры GTM и теги, которые срабатывают при просмотре страницы.
Ассистент: Показывает контейнеры, их рабочие пространства, подходящие триггеры и привязанные теги. Ничего не меняется.
Вы: В Default Workspace контейнера
GTM-ABC123подготовь GA4 configuration tag для measurement IDG-XXXXXXXна всех страницах.Ассистент: Показывает рабочее пространство, предлагаемые настройки тега и триггера, затем запрашивает подтверждение перед созданием черновика.
Вы: Подтверждаю черновик.
Ассистент: Создаёт тег в рабочем пространстве. Контейнер не публикуется: сборка и публикация версии остаются отдельным шагом.
Содержание
- Быстрый старт
- Что можно поручить
- Как связаны изменения GTM
- Что может измениться
- Как получить доступ
- Конфигурация
- Данные и телеметрия
- Ограничения и работа в фоне
- Техническая документация
- Поддержка
Быстрый старт
Нужны Node.js 20+ и Google-аккаунт. Учётные данные при установке не нужны: сервер подключается прямо в диалоге.
- Добавьте сервер в AI-приложение.
- Скажите «подключи Google Tag Manager» — ассистент проведёт создание OAuth-клиента и выдачу доступа, не трогая конфиги.
- Начните с запроса, который только читает данные.
В приложении:
- Откройте Settings → MCP servers.
- Нажмите Add server.
- Выберите STDIO, затем укажите
npx -y mcp-google-tagmanager@latestи три переменные окружения ниже.
| Переменная | Значение |
|---|---|
| GOOGLE_TAGMANAGER_CLIENT_ID | Ваш Google OAuth client ID |
| GOOGLE_TAGMANAGER_CLIENT_SECRET | Ваш Google OAuth client secret |
| GOOGLE_TAGMANAGER_REFRESH_TOKEN | Ваш Google OAuth refresh token |
- Нажмите Save, затем Restart.
В командной строке:
codex mcp add google-tagmanager \
-- npx -y mcp-google-tagmanager@latestcodex mcp listclaude mcp add \
--transport stdio \
--scope user \
google-tagmanager \
-- npx -y mcp-google-tagmanager@latestclaude mcp listАктуальный официальный путь — Settings → Extensions. Для пользовательского desktop extension откройте Advanced settings → Extension Developer → Install Extension…, выберите файл .mcpb и следуйте подсказкам.
Этот репозиторий сейчас публикует npm-пакет со stdio и пока не содержит .mcpb. Поэтому используйте приведённый ниже JSON stdio-конфиг как fallback только в сборках Claude Desktop, где ещё поддерживается локальная конфигурация:
{
"mcpServers": {
"google-tagmanager": {
"command": "npx",
"args": ["-y", "mcp-google-tagmanager@latest"]
}
}
}В таких сборках сохраните его в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows.
Документация Claude Desktop MCP
Добавьте сервер уровня пользователя в ~/.cursor/mcp.json на macOS/Linux или в %USERPROFILE%\.cursor\mcp.json на Windows:
{
"mcpServers": {
"google-tagmanager": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-tagmanager@latest"]
}
}
}Запустите MCP: Open User Configuration из Command Palette и добавьте:
{
"servers": {
"google-tagmanager": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-tagmanager@latest"]
}
}
}Проверьте сервер командой MCP: List Servers.
Что можно поручить
Понять текущую настройку
- Покажи доступные мне аккаунты и контейнеры GTM.
- Какие теги срабатывают при просмотре страницы в этом рабочем пространстве?
- Покажи настройки триггера и переменных для этого тега.
- Какие встроенные переменные включены?
Подготовить изменение аналитики в черновике
- Создай рабочее пространство для изменения отслеживания checkout.
- Подготовь GA4-тег и триггер для нужного события.
- Включи переменные клика, необходимые для этого триггера.
- Обнови этот тег, сначала показав мне полную конфигурацию для замены.
Осознанно выпустить версию
- Собери из этого рабочего пространства версию с названием
April release. - Покажи ошибки компилятора, если они есть.
- Опубликуй версию
42после моего подтверждения версии и её изменений.
Как связаны изменения GTM
В GTM есть понятный путь выпуска:
- В аккаунте находятся один или несколько контейнеров.
- У контейнера есть рабочие пространства для черновых изменений.
- Теги, триггеры и переменные принадлежат рабочему пространству.
- Сборка рабочего пространства создаёт версию контейнера и удаляет исходное рабочее пространство. GTM создаёт замену.
- Публикация делает выбранную версию контейнера рабочей.
Сервер умеет проверить каждый шаг. Он не приравнивает черновик к выпуску: создание версии и публикация — разные операции.
Что может измениться
| Операция | Что происходит | Граница подтверждения | |---|---|---| | Просмотр аккаунтов, контейнеров, пространств, тегов, триггеров, переменных и версий | Читает конфигурацию GTM | Ничего не меняет | | Создание контейнера или рабочего пространства | Добавляет объект GTM | Меняет GTM | | Создание тега, триггера или переменной | Добавляет черновой объект в пространство | Меняет черновое пространство | | Включение или выключение встроенных переменных | Меняет конфигурацию пространства | Меняет черновое пространство | | Обновление тега, триггера или переменной | Полностью заменяет ресурс, защищённый fingerprint | Потенциально разрушительно | | Удаление тега, триггера или переменной | Удаляет выбранный объект | Разрушительно | | Сборка рабочего пространства | Создаёт версию и удаляет исходное пространство | Разрушительно | | Публикация версии | Делает выбранную версию рабочей | Разрушительно | | Технический запрос API | Может вызвать метод API без отдельного инструмента | Потенциально разрушительно |
То, как AI-приложение запрашивает подтверждение, определяет само приложение. Сервер помечает операции как read-only, write и destructive, чтобы оно могло отличить проверку от реального изменения.
Как получить доступ
Google Tag Manager требует OAuth 2.0: одного API-ключа недостаточно. Путей два, и первый не требует править конфигурационные файлы.
Подключение из диалога (рекомендуемый путь)
Скажите «подключи Google Tag Manager», и ассистент пройдёт флоу вместе с вами:
setup_instructionsвыдаёт чек-лист: создать или выбрать проект Google Cloud, включить Tag Manager API, настроить consent screen и создать OAuth-клиент типа Desktop app.- Скачайте JSON этого клиента («Download JSON») и передайте ассистенту путь к файлу —
set_clientсохранит его с правами только для владельца. Секрет через переписку не проходит. start_loginвозвращает ссылку на согласие Google. Откройте её на этой же машине и подтвердите доступ: код возвращается на одноразовый слушатель127.0.0.1(PKCE), а не в чат.finish_loginменяет код на токены и кладёт их в~/.config/mcp-google-tagmanager/credentials.json(права 0600) и проверяет их реальным вызовом Tag Manager API — так невключённый API ловится сразу.
Токены перечитываются на каждый вызов, поэтому подключение действует немедленно — перезапускать AI-приложение не нужно. auth_status показывает состояние, logout отзывает токен и удаляет его.
Переменные окружения (CI и автоматические установки)
Создайте или выберите проект Google Cloud и включите Tag Manager API. Проект без включённого API не получает квоту.
Настройте OAuth consent screen и создайте OAuth-клиент. Для локальной работы подходит тип Desktop app.
Авторизуйте свой Google-аккаунт и получите refresh token. Это можно сделать через OAuth 2.0 Playground, если включить Use your own OAuth credentials.
Запросите все scope вместе:
https://www.googleapis.com/auth/tagmanager.readonly https://www.googleapis.com/auth/tagmanager.edit.containers https://www.googleapis.com/auth/tagmanager.edit.containerversions https://www.googleapis.com/auth/tagmanager.publish
Scope разделены: для чтения, редактирования, сборки версии и публикации требуется соответствующее разрешение. Храните client secret и refresh token как пароли.
Конфигурация
Все переменные необязательные — без единой из них сервер подключается из диалога.
| Переменная | Обязательна | Описание |
|---|---|---|
| GOOGLE_TAGMANAGER_CLIENT_ID | Нет* | OAuth client ID. |
| GOOGLE_TAGMANAGER_CLIENT_SECRET | Нет* | OAuth client secret. |
| GOOGLE_TAGMANAGER_REFRESH_TOKEN | Нет* | OAuth refresh token. |
| GOOGLE_TAGMANAGER_ACCESS_TOKEN | Нет* | Короткоживущая альтернатива OAuth-тройке. |
| GOOGLE_TAGMANAGER_OAUTH_PORT | Нет | Фиксированный порт loopback-слушателя для входа из диалога; нужен при пробросе портов по SSH. |
| GOOGLE_TAGMANAGER_API_BASE | Нет | Переопределяет базовый URL Tag Manager API. |
| GOOGLE_TAGMANAGER_TIMEOUT_MS | Нет | Тайм-аут запроса; по умолчанию 60000 мс. |
| GOOGLE_TAGMANAGER_MAX_RETRIES | Нет | Максимум повторов при временных ошибках; по умолчанию 3. |
| GOOGLE_TAGMANAGER_MIN_INTERVAL_MS | Нет | Минимальная пауза между запросами; по умолчанию 4200 мс. |
* Передайте либо OAuth-тройку, либо access token. Access token истекает примерно через час и автоматически не обновляется.
Данные и телеметрия
Сервер работает локально и отправляет запросы GTM API и OAuth refresh requests в Google. Анонимная телеметрия содержит случайный ID установки, версию пакета, версии AI-клиента, Node.js и операционной системы, а также имена инструментов. OAuth-токены, данные GTM, аргументы инструментов и промпты не отправляются.
Отключить телеметрию для MCP-серверов A1 можно так:
ASKADS_TELEMETRY=0Ограничения и работа в фоне
- GTM ограничивает частоту. API разрешает 0,25 запроса в секунду на проект, поэтому сервер выполняет запросы с интервалом не менее 4,2 секунды. Широкая проверка может занять время.
- Временные лимиты обрабатываются осторожно. Ответы
429и quota403от Google обрабатываются с экспоненциальной задержкой иRetry-After. Чтение повторяется после сетевых и5xxошибок; запись после неопределённой ошибки не повторяется. - Постоянного наблюдения нет. Сервер работает только во время вызова из AI-приложения. Если приложение поддерживает задания по расписанию, оно может периодически проверять контейнер или его рабочую версию.
- Рабочее пространство исчезает при сборке. Перед
create_versionсохраните нужные данные и проверьте путь к созданному GTM пространству-замене.
Техническая документация
- Каталог MCP-возможностей — страницы по пользовательским задачам для каждого инструмента.
- Все инструменты и параметры
- Документация по разработке
- Документация по публикации
- Справочник Google Tag Manager API v2
Поддержка
Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram.
