关于 Google Tag Manager MCP
Google Tag Manager MCP 让 AI 应用检查和管理真实的 Google Tag Manager API v2 容器、工作区、标签、触发器和变量。它将草稿修改、版本编译与发布分开处理,并标记具有破坏性的操作。
主要功能
- 01查看账号、容器和工作区
- 02读取标签、触发器、变量和版本
- 03创建和更新工作区草稿
- 04分别编译和发布版本
- 05OAuth 登录与配额感知请求
适用场景
- 01查找由页面浏览触发器触发的标签
- 02在草稿工作区准备跟踪变更
- 03创建版本前检查编译错误
- 04确认后发布指定容器版本
MCP 相关
它向 MCP 客户端提供 Google Tag Manager API v2 工具,涵盖读取、编辑、版本管理和发布操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-google-tagmanagerGOOGLE_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
25收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Google Tag Manager MCP
English | Русский
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 账号。安装时无需凭据——服务会在对话过程中连接。
- 将服务添加到你的 AI 应用。
- 说“连接 Google Tag Manager”:助手会引导你创建 OAuth 客户端并批准访问,无需编辑配置文件。
- 从上面的只读问题开始。
Codex
在应用中:
- 打开 Settings → MCP servers。
- 选择 Add server。
- 选择 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 刷新令牌 |
- 选择 Save,然后选择 Restart。
在命令行中:
codex mcp add google-tagmanager \
-- npx -y mcp-google-tagmanager@latest
codex mcp list
Claude Code
claude mcp add \
--transport stdio \
--scope user \
google-tagmanager \
-- npx -y mcp-google-tagmanager@latest
claude mcp list
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。
Cursor
在 macOS/Linux 上将用户级服务添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:
{
"mcpServers": {
"google-tagmanager": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-tagmanager@latest"]
}
}
}
VS Code
从命令面板运行 MCP: Open User Configuration,并添加:
{
"servers": {
"google-tagmanager": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-tagmanager@latest"]
}
}
}
使用 MCP: List Servers 检查配置。
你可以让它做什么
了解当前设置
- 列出我可以访问的 GTM 账号和容器。
- 此工作区中哪些标签会在页面浏览时触发?
- 显示此标签的触发器和变量配置。
- 启用了哪些内置变量?
在草稿中准备跟踪变更
- 为结账跟踪变更创建一个工作区。
- 为特定事件准备一个 GA4 标签和触发器。
- 启用此触发器所需的点击变量。
- 在向我展示完整的替换配置后更新此标签。
有计划地发布版本
- 将此工作区编译为名为
April release的版本。 - 显示编译错误(如果有)。
- 在我确认版本及其变更后发布版本
42。
GTM 变更的关联方式
GTM 有清晰的发布流程:
- 一个账号包含一个或多个容器。
- 容器拥有用于草稿变更的工作区。
- 标签、触发器和变量属于某个工作区。
- 编译工作区会创建一个容器版本并移除源工作区。GTM 会提供一个替代工作区。
- 发布操作会使选定的容器版本正式生效。
此服务可以检查每个步骤。它不会将草稿视为正式发布:创建版本和发布是两个独立操作。
可执行的更改
| 操作 | 发生的情况 | 确认边界 |
|---|---|---|
| 列出账号、容器、工作区、代码、触发器、变量和版本 | 读取 GTM 配置 | 不会产生更改 |
| 创建容器或工作区 | 添加新的 GTM 对象 | 更改 GTM |
| 创建代码、触发器或变量 | 向工作区添加草稿对象 | 更改草稿工作区 |
| 启用或停用内置变量 | 更改工作区配置 | 更改草稿工作区 |
| 更新代码、触发器或变量 | 替换完整资源,并由其指纹保护 | 可能具有破坏性 |
| 删除代码、触发器或变量 | 移除选定对象 | 具有破坏性 |
| 编译工作区 | 创建版本并删除源工作区 | 具有破坏性 |
| 发布版本 | 使选定版本正式上线 | 具有破坏性 |
| 原始 API 请求 | 可调用没有专用工具的 API 方法 | 可能具有破坏性 |
AI 客户端决定如何请求确认。服务会标记只读、写入和具有破坏性的操作,以便客户端区分查看与实际更改。
获取访问权限
Google Tag Manager 需要 OAuth 2.0;仅有 API 密钥并不足够。有两种接入方式,第一种无需配置文件。
在聊天中连接(推荐)
说“连接 Google Tag Manager”,助手就会与你一起完成流程:
setup_instructions会显示检查清单:创建或选择 Google Cloud 项目、启用 Tag Manager API、配置同意屏幕并创建 Desktop app OAuth 客户端。- 下载该客户端的 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 同意屏幕并创建 OAuth 客户端。Desktop app 客户端适用于本地使用。
-
授权你的 Google 账号并获取刷新令牌。如果启用 Use your own OAuth credentials,OAuth 2.0 Playground 可以完成此操作。
-
同时请求以下范围:
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前,请保存工作区中需要保留的内容,并检查返回的替代工作区路径。
技术文档
- MCP 功能目录 — 每个工具对应的任务导向页面。
- 所有工具和输入
- 开发文档
- 发布文档
- Google Tag Manager API v2 参考
支持
发现 Bug 或需要处理某种场景?创建 Issue 或在 Telegram 上留言。
你已经读到了最后!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。