mcpField
G
Google Tag Manager MCP

Google Tag Manager MCP

本地服务
github.com商业与营销14 周前更新

关于 Google Tag Manager MCP

Google Tag Manager MCP 让 AI 应用检查和管理真实的 Google Tag Manager API v2 容器、工作区、标签、触发器和变量。它将草稿修改、版本编译与发布分开处理,并标记具有破坏性的操作。

主要功能

  1. 01查看账号、容器和工作区
  2. 02读取标签、触发器、变量和版本
  3. 03创建和更新工作区草稿
  4. 04分别编译和发布版本
  5. 05OAuth 登录与配额感知请求

适用场景

  1. 01查找由页面浏览触发器触发的标签
  2. 02在草稿工作区准备跟踪变更
  3. 03创建版本前检查编译错误
  4. 04确认后发布指定容器版本

MCP 相关

它向 MCP 客户端提供 Google Tag Manager API v2 工具,涵盖读取、编辑、版本管理和发布操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"a1-x-tech-mcp-google-tagmanager": {
"command": "npx",
"args": [
"-y",
"mcp-google-tagmanager"
],
"env": {
"GOOGLE_TAGMANAGER_CLIENT_ID": "<GOOGLE_TAGMANAGER_CLIENT_ID>",
"GOOGLE_TAGMANAGER_CLIENT_SECRET": "<GOOGLE_TAGMANAGER_CLIENT_SECRET>",
"GOOGLE_TAGMANAGER_REFRESH_TOKEN": "<GOOGLE_TAGMANAGER_REFRESH_TOKEN>",
"GOOGLE_TAGMANAGER_ACCESS_TOKEN": "<GOOGLE_TAGMANAGER_ACCESS_TOKEN>",
"GOOGLE_TAGMANAGER_OAUTH_PORT": "<GOOGLE_TAGMANAGER_OAUTH_PORT>",
"GOOGLE_TAGMANAGER_API_BASE": "<GOOGLE_TAGMANAGER_API_BASE>",
"GOOGLE_TAGMANAGER_TIMEOUT_MS": "<GOOGLE_TAGMANAGER_TIMEOUT_MS>",
"GOOGLE_TAGMANAGER_MAX_RETRIES": "<GOOGLE_TAGMANAGER_MAX_RETRIES>",
"GOOGLE_TAGMANAGER_MIN_INTERVAL_MS": "<GOOGLE_TAGMANAGER_MIN_INTERVAL_MS>"
}
}
}
}
启动命令npx -y mcp-google-tagmanager
需要配置的环境变量
GOOGLE_TAGMANAGER_CLIENT_IDGoogle OAuth client id (refresh-token flow).
GOOGLE_TAGMANAGER_CLIENT_SECRET密钥Google OAuth client secret (refresh-token flow). Treat it as a secret.
GOOGLE_TAGMANAGER_REFRESH_TOKEN密钥Google OAuth refresh token; exchanged for access tokens automatically. Treat it as a secret.
GOOGLE_TAGMANAGER_ACCESS_TOKEN密钥Ready-made OAuth access token (~1h lifetime). Alternative to the client-id/secret/refresh-token trio.
GOOGLE_TAGMANAGER_OAUTH_PORT密钥Fixed port for the loopback listener of the in-chat login (127.0.0.1 + PKCE). Set it when the client runs over SSH port forwarding; otherwise a free port is picked per login.
GOOGLE_TAGMANAGER_API_BASEAPI root host override.
GOOGLE_TAGMANAGER_TIMEOUT_MSPer-request timeout in milliseconds.
GOOGLE_TAGMANAGER_MAX_RETRIESRetries on transient errors (429, quota 403, and 5xx/network for reads).
GOOGLE_TAGMANAGER_MIN_INTERVAL_MSMinimum spacing between API requests, for the 0.25 QPS quota.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-google-tagmanager1.2.0

工具

25

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

A1 Google Tag Manager MCP

English | Русский

npm Glama CI License: MIT

A1 Google Tag Manager MCP 让 AI 应用能够通过自然语言检查和管理 Google Tag Manager 容器。查看页面上触发了哪些内容,在草稿工作区中处理代码、触发器和变量,并在准备就绪后有意地编译和发布版本。

它通过你的 Google 账号连接到 Google Tag Manager API v2。与让 AI 猜测 GTM 配置不同,它操作的是你选择的实际容器、工作区和版本。

  • 25 个工具。 10 项操作只读取 GTM 数据;4 项操作会创建草稿或更改内置变量;5 项操作可能更改、删除、编译或发布线上配置。
  • 在对话中连接。 说“连接 Google Tag Manager”:服务会引导你配置 OAuth 客户端,通过 PKCE 在 127.0.0.1 接收 Google 的重定向,并自行保存令牌——无需配置文件,也无需重启。
  • 先创建草稿。 代码、触发器和变量都在工作区中创建。发布是独立且明确的破坏性操作。
  • 考虑配额限制。 GTM 每个项目每秒允许 0.25 次请求;服务会将请求间隔至少设为 4.2 秒,避免给 API 造成过大压力。
  • 使用你的 Google 访问权限。 服务使用你的 OAuth 凭据,并且只请求读取、编辑、版本管理和发布所需的 Tag Manager 权限范围。

从只读问题开始:

我的容器中,哪些代码会在网页浏览触发器上触发?

连接服务 · 探索使用场景 · 查看技术文档


一分钟了解它的工作方式

你: 列出我的 GTM 容器,并显示哪些代码会在网页浏览时触发。

助手: 列出容器、对应的工作区、相关触发器以及关联的代码。不会进行任何更改。

你: 在 GTM-ABC123 的 Default Workspace 中,为所有页面准备一个测量 ID 为 G-XXXXXXX 的 GA4 配置代码。

助手: 显示工作区、拟议的代码和触发器配置,然后在创建草稿前请求确认。

你: 确认草稿。

助手: 在工作区中创建代码。它不会发布容器;编译和发布版本仍是单独的步骤。

目录

快速入门

你需要 Node.js 20+ 和一个 Google 账号。安装时无需凭据——服务会在对话过程中连接。

  1. 将服务添加到你的 AI 应用。
  2. 说“连接 Google Tag Manager”:助手会引导你创建 OAuth 客户端并批准访问,无需编辑配置文件。
  3. 从上面的只读问题开始。
Codex

在应用中:

  1. 打开 Settings → MCP servers。
  2. 选择 Add server。
  3. 选择 STDIO,然后输入 npx -y mcp-google-tagmanager@latest 和下面三个环境变量。
变量值
GOOGLE_TAGMANAGER_CLIENT_ID你的 Google OAuth 客户端 ID
GOOGLE_TAGMANAGER_CLIENT_SECRET你的 Google OAuth 客户端密钥
GOOGLE_TAGMANAGER_REFRESH_TOKEN你的 Google OAuth 刷新令牌
  1. 选择 Save,然后选择 Restart。

在命令行中:

codex mcp add google-tagmanager \
  -- npx -y mcp-google-tagmanager@latest
codex mcp list

Codex MCP 文档

Claude Code
claude mcp add \
  --transport stdio \
  --scope user \
  google-tagmanager \
  -- npx -y mcp-google-tagmanager@latest
claude mcp list

Claude Code MCP 文档

Claude Desktop

目前官方推荐的路径是 Settings → Extensions。要安装自定义桌面扩展,请打开 Advanced settings → Extension Developer → Install Extension…,选择 .mcpb 文件并按提示操作。

此仓库目前发布的是 npm stdio 包,不包含 .mcpb 捆绑包。对于仍支持本地配置的 Claude Desktop 版本,可使用以下 JSON stdio 配置作为备用方案:

{
  "mcpServers": {
    "google-tagmanager": {
      "command": "npx",
      "args": ["-y", "mcp-google-tagmanager@latest"]
    }
  }
}

在这些版本中,macOS 上将其保存到 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上保存到 %APPDATA%\Claude\claude_desktop_config.json。

Claude Desktop MCP 文档

Cursor

在 macOS/Linux 上将用户级服务添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:

{
  "mcpServers": {
    "google-tagmanager": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-tagmanager@latest"]
    }
  }
}

Cursor MCP 文档

VS Code

从命令面板运行 MCP: Open User Configuration,并添加:

{
  "servers": {
    "google-tagmanager": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-tagmanager@latest"]
    }
  }
}

使用 MCP: List Servers 检查配置。

VS Code MCP 文档

你可以让它做什么

了解当前设置
  • 列出我可以访问的 GTM 账号和容器。
  • 此工作区中哪些标签会在页面浏览时触发?
  • 显示此标签的触发器和变量配置。
  • 启用了哪些内置变量?
在草稿中准备跟踪变更
  • 为结账跟踪变更创建一个工作区。
  • 为特定事件准备一个 GA4 标签和触发器。
  • 启用此触发器所需的点击变量。
  • 在向我展示完整的替换配置后更新此标签。
有计划地发布版本
  • 将此工作区编译为名为 April release 的版本。
  • 显示编译错误(如果有)。
  • 在我确认版本及其变更后发布版本 42。

GTM 变更的关联方式

GTM 有清晰的发布流程:

  1. 一个账号包含一个或多个容器。
  2. 容器拥有用于草稿变更的工作区。
  3. 标签、触发器和变量属于某个工作区。
  4. 编译工作区会创建一个容器版本并移除源工作区。GTM 会提供一个替代工作区。
  5. 发布操作会使选定的容器版本正式生效。

此服务可以检查每个步骤。它不会将草稿视为正式发布:创建版本和发布是两个独立操作。

可执行的更改

操作发生的情况确认边界
列出账号、容器、工作区、代码、触发器、变量和版本读取 GTM 配置不会产生更改
创建容器或工作区添加新的 GTM 对象更改 GTM
创建代码、触发器或变量向工作区添加草稿对象更改草稿工作区
启用或停用内置变量更改工作区配置更改草稿工作区
更新代码、触发器或变量替换完整资源,并由其指纹保护可能具有破坏性
删除代码、触发器或变量移除选定对象具有破坏性
编译工作区创建版本并删除源工作区具有破坏性
发布版本使选定版本正式上线具有破坏性
原始 API 请求可调用没有专用工具的 API 方法可能具有破坏性

AI 客户端决定如何请求确认。服务会标记只读、写入和具有破坏性的操作,以便客户端区分查看与实际更改。

获取访问权限

Google Tag Manager 需要 OAuth 2.0;仅有 API 密钥并不足够。有两种接入方式,第一种无需配置文件。

在聊天中连接(推荐)

说“连接 Google Tag Manager”,助手就会与你一起完成流程:

  1. setup_instructions 会显示检查清单:创建或选择 Google Cloud 项目、启用 Tag Manager API、配置同意屏幕并创建 Desktop app OAuth 客户端。
  2. 下载该客户端的 JSON(“Download JSON”),并将其路径提供给助手——set_client 会以仅所有者可访问的权限保存它。密钥不会经过对话传递。
  3. start_login 会返回 Google 授权链接。在此设备上打开链接并批准;授权码会返回到 127.0.0.1 上的一次性监听器(PKCE),不会经过聊天传递。
  4. finish_login 会交换授权码,并将令牌保存到 ~/.config/mcp-google-tagmanager/credentials.json(模式为 0600),然后通过实际的 Tag Manager API 调用验证令牌——因此,如果 API 仍处于关闭状态,会立即发现。

每次调用时都会重新读取令牌,因此连接会立即生效——无需重启 AI 应用。auth_status 会显示已连接的信息,logout 会撤销连接并删除令牌。

环境变量(CI、无人值守安装)
  1. 创建或选择 Google Cloud 项目,并启用 Tag Manager API。未启用该 API 的项目不会获得配额。

  2. 配置 OAuth 同意屏幕并创建 OAuth 客户端。Desktop app 客户端适用于本地使用。

  3. 授权你的 Google 账号并获取刷新令牌。如果启用 Use your own OAuth credentials,OAuth 2.0 Playground 可以完成此操作。

  4. 同时请求以下范围:

    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
    

这些范围各不相同:读取、编辑、编译版本和发布分别需要对应的权限。请将客户端密钥和刷新令牌视为密码。

配置

所有变量都是可选的——即使不设置任何变量,服务也会从聊天中连接。

变量必需说明
GOOGLE_TAGMANAGER_CLIENT_ID否*OAuth 客户端 ID。
GOOGLE_TAGMANAGER_CLIENT_SECRET否*OAuth 客户端密钥。
GOOGLE_TAGMANAGER_REFRESH_TOKEN否*OAuth 刷新令牌。
GOOGLE_TAGMANAGER_ACCESS_TOKEN否*OAuth 三项参数的短期替代方案。
GOOGLE_TAGMANAGER_OAUTH_PORT否用于聊天内登录的固定环回端口;通过 SSH 端口转发时很有用。
GOOGLE_TAGMANAGER_API_BASE否覆盖 Tag Manager API 基础 URL。
GOOGLE_TAGMANAGER_TIMEOUT_MS否每个请求的超时时间;默认为 60000 毫秒。
GOOGLE_TAGMANAGER_MAX_RETRIES否临时故障时的最大重试次数;默认为 3。
GOOGLE_TAGMANAGER_MIN_INTERVAL_MS否请求之间的最小间隔;默认为 4200 毫秒。

* 提供 OAuth 三项参数或访问令牌即可。访问令牌约一小时后过期,且不会自动刷新。

数据和遥测

该服务在本地运行,并向 Google 发送 GTM API 请求和 OAuth 刷新请求。其匿名遥测数据包含随机安装 ID、软件包版本、AI 客户端以及 Node.js/操作系统版本和工具名称。它不会发送 OAuth 令牌、GTM 数据、工具参数或提示词。

使用以下设置可为 A1 MCP 服务停用遥测:

ASKADS_TELEMETRY=0

限制和后台工作

  • GTM 有速率限制。 API 对每个项目每秒允许 0.25 个请求,因此该服务会将调用串行化,间隔至少为 4.2 秒。因此,范围较广的审计可能需要一些时间。
  • 临时限制会谨慎重试。 对于 429 和 Google 配额 403 响应,会使用指数退避和 Retry-After。网络故障和 5xx 故障后会重试读取操作;发生结果不确定的故障后不会重放写入操作。
  • 没有后台监控。 只有当你的 AI 应用调用该服务时,它才会运行。如果应用支持计划任务,则可定期检查容器或其实时版本。
  • 编译后工作区会消失。 调用 create_version 前,请保存工作区中需要保留的内容,并检查返回的替代工作区路径。

技术文档

支持

发现 Bug 或需要处理某种场景?创建 Issue 或在 Telegram 上留言。


两只 Mona 击掌

你已经读到了最后!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。