返回 MCP 目录
public公开dns本地运行

gtm-mcp-server

GTM MCP服务器是一个基于模型上下文协议的工具,允许用户通过AI助手(如Claude、ChatGPT、Gemini)以自然语言管理Google Tag Manager容器,实现标签创建、配置审计、跟踪计划生成和发布更改等功能。

article

README

🚀 GTM MCP Server

让AI管理你的Google Tag Manager容器。通过与Claude、ChatGPT或Gemini进行自然对话,即可创建标签、审核配置、生成跟踪计划并发布更改。

URLhttps://mcp.gtmeditor.com

🚀 快速开始

Claude(网页版和桌面版)

Claude.ai

  1. 前往设置连接器添加自定义连接器
  2. 输入:https://mcp.gtmeditor.com
  3. 点击添加,并使用Google账号登录。

Claude Code(命令行界面)

claude mcp add -t http gtm https://mcp.gtmeditor.com

ChatGPT

  1. 访问 OpenAI应用平台
  2. 添加一个MCP集成,URL为:https://mcp.gtmeditor.com
  3. 使用你的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时,它会:

  1. 使用你的Google账户进行身份验证(OAuth 2.1)。
  2. 读取你的容器配置。
  3. 执行你请求的更改。
  4. 在进行破坏性操作之前进行确认

你的凭据不会被存储 — 服务器使用基于令牌的身份验证,你可以随时从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设置

  1. 访问 Google Cloud控制台
  2. 启用Tag Manager API
  3. 创建OAuth 2.0凭据(Web应用程序)。
  4. 添加重定向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创建或更新linkClickclickformSubmission触发器时,autoEventFilter字段(用于“部分链接点击”/“部分表单提交”条件)会被Google Tag Manager API静默丢弃。API返回200 OK和新的指纹,但不会保留autoEventFilter

通过HTTP级调试已确认:请求正文中发送了正确的JSON,但Google的响应中省略了该字段。filtercustomEventFilter字段正常工作。

解决方法:通过 GTM网页界面 手动配置autoEventFilter条件。MCP服务器可以读取通过UI设置了autoEventFilter的触发器。

状态#33

链接

作者

Paolo Bietolini

mcp@paolobietolini.com

📄 许可证

BSD-3-Clause

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端