README
🚀 GTM MCP Server
让AI管理你的Google Tag Manager容器。通过与Claude、ChatGPT或Gemini进行自然对话,即可创建标签、审核配置、生成跟踪计划并发布更改。
URL:https://mcp.gtmeditor.com
🚀 快速开始
Claude(网页版和桌面版)
Claude.ai:
- 前往设置 → 连接器 → 添加自定义连接器。
- 输入:
https://mcp.gtmeditor.com。 - 点击添加,并使用Google账号登录。
Claude Code(命令行界面):
claude mcp add -t http gtm https://mcp.gtmeditor.com
ChatGPT
- 访问 OpenAI应用平台。
- 添加一个MCP集成,URL为:
https://mcp.gtmeditor.com。 - 使用你的Google账号授权。
Gemini CLI
gemini mcp add --transport http --url https://mcp.gtmeditor.com gtm
✨ 主要特性
标签管理
创建和修改任何GTM标签类型:
- GA4配置与事件 — 使用正确的测量ID设置Google Analytics 4。
- 电子商务跟踪 — 购买、添加到购物车、查看商品事件。
- 自定义HTML — 注入脚本、像素和自定义代码。
- 自定义图像 — 带有缓存清除功能的跟踪像素。
触发器管理
为任何场景构建触发器:
- 页面视图(所有页面或特定URL)
- 自定义dataLayer事件
- 点击跟踪
- 表单提交
- 基于计时器的触发器
- 用于复杂条件的触发器组
容器操作
- 浏览账户、容器和工作区
- 从工作区更改创建版本
- 发布版本以生效
- 使用文件夹进行组织
- 启用/禁用内置变量
服务器端容器
全面支持服务器端GTM容器:
- 客户端 — 创建、更新和删除服务器端客户端(例如GA4客户端)。
- 转换 — 使用允许、排除和增强规则控制事件参数。
社区模板库
从Google的社区模板库导入模板:
- “导入iubenda cookie同意模板”
- “将Cookiebot添加到我的容器中”
- “使用库模板设置Facebook Pixel”
AI将搜索模板,找到GitHub存储库并自动导入。
人工智能驱动的工作流程
容器审核 “审核我的容器是否存在问题” — 分析你的工作区,查找以下问题:
- 命名不一致
- 重复标签
- 孤立触发器
- 安全问题
- 违反最佳实践
跟踪计划生成 “生成跟踪计划” — 创建以下内容的Markdown文档:
- 所有事件及其触发器
- 数据层要求
- 变量定义
- 实施说明
GA4设置建议 “帮助我为电子商务设置GA4” — 提供以下建议:
- 要创建的标签
- 触发器配置
- 所需变量
- 数据层实施代码
💻 使用示例
你可以向AI助手提出以下请求:
- “列出我所有的GTM容器”
- “为表单提交创建一个GA4事件标签”
- “审核此容器是否存在问题和重复项”
- “为营销团队生成一份跟踪计划文档”
- “设置电子商务购买跟踪”
- “发布我们刚刚所做的更改”
无需再在GTM界面中点击操作,也无需复制粘贴配置,只需描述你需要的内容即可。
📚 详细文档
使用案例
构建完整的跟踪设置
要求AI从头开始创建完整的GA4电子商务实施:
- “为我的商店设置GA4电子商务跟踪”
- 创建12个以上的标签(配置 + 所有电子商务事件)
- 为每个dataLayer事件创建匹配的触发器
- 创建用于商品、货币、价值、交易ID的数据层变量
- 遵循Google推荐的事件命名和参数
实施同意管理
将OneTrust等隐私工具与你的跟踪集成:
- “仅在获得分析同意时触发GA4”
- 创建同意检查变量
- 设置条件触发器
- 更新现有标签以尊重用户选择
批量操作和重命名
大规模管理容器:
- “为所有电子商务触发器添加‘ecom -’前缀”
- “更新所有标签以使用测量ID变量”
- 通过对话重命名、更新或组织数十个项目
自定义变量和逻辑
创建复杂的跟踪逻辑:
- “创建一个返回本地时间戳的变量”
- “向购买标签添加自定义参数”
- 自定义JavaScript变量、数据层映射等
适用于代理机构
- 管理多个客户容器(演示中显示7个以上账户)
- 跨客户标准化实施
- 为新项目快速设置
- 安全地进行版本控制和发布更改
工作原理
GTM MCP服务器使用模型上下文协议将AI助手连接到Google Tag Manager API。当你要求Claude或ChatGPT管理你的GTM时,它会:
- 使用你的Google账户进行身份验证(OAuth 2.1)。
- 读取你的容器配置。
- 执行你请求的更改。
- 在进行破坏性操作之前进行确认。
你的凭据不会被存储 — 服务器使用基于令牌的身份验证,你可以随时从Google账户中撤销。
安全功能
- 删除和发布操作需要确认。
- 仅在工作区进行更改 — 在你发布之前,任何更改都不会生效。
- 版本控制 — 所有更改首先会创建一个版本。
- 审核日志 — 跟踪所做的更改。
自托管
如果你想运行自己的实例,可以按照以下步骤操作:
Docker设置
git clone https://github.com/paolobietolini/gtm-mcp-server.git
cd gtm-mcp-server
# 创建.env文件
cat > .env << 'EOF'
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
JWT_SECRET=$(openssl rand -base64 32)
BASE_URL=http://localhost:8080
EOF
# 启动服务器
docker compose up -d
# 添加到Claude
claude mcp add -t http gtm http://localhost:8080
Docker到Docker
如果另一个容器需要通过内部Docker网络别名访问MCP服务器,请在你的.env文件中添加ALLOWED_HOSTS:
ALLOWED_HOSTS=gtm-mcp:8080
这允许对受信任的内部主机名进行动态URL解析,同时确保服务器免受主机头注入攻击。
Google Cloud设置
- 访问 Google Cloud控制台。
- 启用Tag Manager API。
- 创建OAuth 2.0凭据(Web应用程序)。
- 添加重定向URI:
https://claude.ai/api/mcp/auth_callback
https://claude.com/api/mcp/auth_callback
https://chatgpt.com/connector_platform_oauth_redirect
https://your-domain.com/oauth/callback
可用工具
读取操作
| 工具 | 描述 |
|------|-------------|
| list_accounts | 列出所有GTM账户 |
| list_containers | 列出账户中的容器 |
| list_workspaces | 列出容器中的工作区 |
| list_tags | 列出工作区中的所有标签 |
| get_tag | 按ID获取标签详细信息 |
| list_triggers | 列出所有触发器 |
| get_trigger | 按ID获取触发器详细信息 |
| list_variables | 列出所有变量 |
| get_variable | 按ID获取变量详细信息 |
| list_folders | 列出工作区中的文件夹 |
| get_folder_entities | 获取文件夹中的标签/触发器/变量 |
| list_built_in_variables | 列出工作区中启用的内置变量 |
实用工具
| 工具 | 描述 |
|------|-------------|
| ping | 测试服务器连接性 |
| auth_status | 检查身份验证状态 |
写入操作
| 工具 | 描述 |
|------|-------------|
| create_container | 在账户中创建新容器 |
| delete_container | 删除容器(需要确认) |
| create_workspace | 在容器中创建新工作区 |
| create_tag | 创建新标签 |
| update_tag | 修改现有标签 |
| delete_tag | 删除标签(需要确认) |
| create_trigger | 创建新触发器 |
| update_trigger | 修改现有触发器 |
| delete_trigger | 删除触发器(需要确认) |
| create_variable | 创建新变量 |
| update_variable | 修改现有变量 |
| delete_variable | 删除变量(需要确认) |
| enable_built_in_variables | 在工作区中启用内置变量类型 |
| disable_built_in_variables | 禁用内置变量类型(需要确认) |
服务器端容器工具
| 工具 | 描述 |
|------|-------------|
| list_clients | 列出工作区中的所有客户端 |
| get_client | 按ID获取客户端详细信息 |
| create_client | 创建新客户端 |
| update_client | 修改现有客户端 |
| delete_client | 删除客户端(需要确认) |
| list_transformations | 列出工作区中的所有转换 |
| get_transformation | 按ID获取转换详细信息 |
| create_transformation | 创建新转换 |
| update_transformation | 修改现有转换 |
| delete_transformation | 删除转换(需要确认) |
发布
| 工具 | 描述 |
|------|-------------|
| get_workspace_status | 在版本控制之前检查待处理的更改和合并冲突 |
| list_versions | 列出所有容器版本及其标签/触发器/变量数量 |
| create_version | 从工作区更改创建版本 |
| publish_version | 发布版本(需要确认) |
模板
| 工具 | 描述 |
|------|-------------|
| get_tag_templates | 获取GA4/HTML标签参数示例 |
| get_trigger_templates | 获取触发器配置示例 |
| list_templates | 列出工作区中的自定义模板 |
| get_template | 获取模板详细信息,包括模板代码 |
| create_template | 根据.tpl代码创建自定义模板 |
| update_template | 修改现有模板 |
| delete_template | 删除模板(需要确认) |
| import_gallery_template | 从社区模板库导入模板 |
资源和提示
资源(基于URI的访问)
通过结构化URI访问GTM数据:
gtm://accounts
gtm://accounts/{id}/containers
gtm://accounts/{id}/containers/{id}/workspaces
gtm://accounts/.../workspaces/{id}/tags
gtm://accounts/.../workspaces/{id}/triggers
gtm://accounts/.../workspaces/{id}/variables
提示(工作流模板)
| 提示 | 描述 |
|--------|-------------|
| audit_container | 全面的容器分析 |
| generate_tracking_plan | Markdown文档生成器 |
| suggest_ga4_setup | GA4实施建议 |
| find_gallery_template | 查找和导入社区模板库模板的指南 |
更好的AI上下文
为了获得最佳效果,请安装GTM API技能,以便你的AI助手了解GTM的API结构、参数格式和验证规则。
Claude Code
# 一键安装
curl -sL https://github.com/paolobietolini/gtm-api-for-llms/archive/main.tar.gz | tar xz && \
mkdir -p ~/.claude/skills && \
cp -r gtm-api-for-llms-main/skills/gtm-api ~/.claude/skills/ && \
rm -rf gtm-api-for-llms-main
或者克隆并复制:
git clone https://github.com/paolobietolini/gtm-api-for-llms.git
cp -r gtm-api-for-llms/skills/gtm-api ~/.claude/skills/
OpenAI Codex
curl -sL https://github.com/paolobietolini/gtm-api-for-llms/archive/main.tar.gz | tar xz && \
mkdir -p ~/.codex/skills && \
cp -r gtm-api-for-llms-main/skills/gtm-api ~/.codex/skills/ && \
rm -rf gtm-api-for-llms-main
该技能包含哪些内容?
GTM API for LLMs 存储库提供了针对大语言模型优化的文档:请求模板、验证规则、工作流算法以及所有GTM实体类型(包括服务器端容器)的完整架构。
架构
- 协议:基于HTTP的模型上下文协议(MCP)
- 身份验证:带有PKCE的OAuth 2.1
- 标准:RFC 8414、RFC 7591、RFC 9728
已知问题
🐛 Google Tag Manager API 会静默丢弃 autoEventFilter
通过API创建或更新linkClick、click或formSubmission触发器时,autoEventFilter字段(用于“部分链接点击”/“部分表单提交”条件)会被Google Tag Manager API静默丢弃。API返回200 OK和新的指纹,但不会保留autoEventFilter。
通过HTTP级调试已确认:请求正文中发送了正确的JSON,但Google的响应中省略了该字段。filter和customEventFilter字段正常工作。
解决方法:通过 GTM网页界面 手动配置autoEventFilter条件。MCP服务器可以读取通过UI设置了autoEventFilter的触发器。
状态:#33
链接
作者
Paolo Bietolini
mcp@paolobietolini.com
Scan to join WeChat group