gtm-mcp-server
GTM MCP 服务器
一个用于 Google Tag Manager 的 Model Context Protocol (MCP) 服务器,使用服务账号认证——无需 OAuth 流程。
功能特性
无需 OAuth - 使用 Google 服务账号进行认证
覆盖 GTM 核心工作流 - 账号、容器、工作区、代码、触发器、变量、内置变量和版本(29 个工具)
本地且私密 - 完全在您的机器上运行
兼容 Claude Desktop、Cursor 及其他 MCP 客户端
快速开始
1. 创建 Google Cloud 服务账号
选择或创建一个项目
启用 Tag Manager API:
前往 APIs 与服务 → 库
搜索 "Tag Manager API"
点击启用
创建服务账号:
前往 IAM 与管理 → 服务账号
点击"创建服务账号"
为其命名(例如 "gtm-mcp-server")
点击创建并继续(跳过可选权限)
点击完成
创建密钥:
点击您的服务账号
前往密钥选项卡
添加密钥 → 创建新密钥 → JSON
将下载的 JSON 文件保存到安全位置(例如
~/.config/gtm-service-account.json)
2. 授予服务账号 GTM 访问权限
点击管理(齿轮图标)
在账号下,点击"用户管理"
点击 + 按钮添加用户
输入服务账号邮箱(格式类似
name@project-id.iam.gserviceaccount.com)设置适当的权限:
读取 - 仅用于查看/列出
编辑 - 用于创建/修改代码、触发器、变量
发布 - 用于发布版本
管理 - 完全访问权限,包括用户管理
3. 配置您的 MCP 客户端
Claude Desktop
在您的 Claude Desktop 配置中添加(Mac 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"gtm": {
"command": "npx",
"args": ["-y", "gtm-mcp-server"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account.json"
}
}
}
}Cursor
在您的 Cursor MCP 设置中添加:
{
"mcpServers": {
"gtm": {
"command": "npx",
"args": ["-y", "gtm-mcp-server"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account.json"
}
}
}
}4. 重启您的客户端
保存配置后,重启您的 MCP 客户端。您应该能看到 GTM 工具可用。
可用工具
账号管理
gtm_list_accounts- 列出所有可访问的 GTM 账号
容器管理
gtm_list_containers- 列出账号中的容器gtm_get_container- 获取容器详情
工作区管理
gtm_list_workspaces- 列出容器中的工作区gtm_create_workspace- 创建新的工作区gtm_get_workspace_status- 显示工作区中的待处理更改和合并冲突gtm_sync_workspace- 将工作区同步到最新的容器版本
代码管理
gtm_list_tags- 列出工作区中的所有代码gtm_get_tag- 获取代码的完整详情及参数gtm_create_tag- 创建新的代码gtm_update_tag- 更新现有代码gtm_delete_tag- 删除代码
触发器管理
gtm_list_triggers- 列出工作区中的所有触发器gtm_get_trigger- 获取触发器的完整详情gtm_create_trigger- 创建新的触发器gtm_update_trigger- 更新现有触发器gtm_delete_trigger- 删除触发器
变量管理
gtm_list_variables- 列出工作区中的所有变量gtm_get_variable- 获取变量的完整详情gtm_create_variable- 创建新的变量gtm_update_variable- 更新现有变量gtm_delete_variable- 删除变量
内置变量管理
gtm_list_built_in_variables- 列出已启用的内置变量gtm_enable_built_in_variables- 启用内置变量(例如 Page URL、Click Classes)gtm_disable_built_in_variables- 禁用内置变量
版本管理
gtm_list_versions- 列出容器版本gtm_get_live_version- 获取当前线上(已发布)版本gtm_create_version- 从工作区创建版本gtm_publish_version- 发布版本以使其上线
所有列表工具每次返回一页结果;当存在更多结果时,响应中会包含 page_token 以用于下一次调用。
使用示例
配置完成后,您可以向 Claude 提问,例如:
"列出我的 GTM 账号"
"显示账号 123456 中的所有容器"
"我的网站容器中有哪些代码?"
"创建一个名为 'All Pages' 的网页浏览量触发器"
"创建一个在所有页面上触发的自定义 HTML 代码"
"创建版本并发布"
故障排除
"GOOGLE_APPLICATION_CREDENTIALS not set"
确保环境变量已在您的 MCP 客户端配置中设置,并且指向有效的 JSON 密钥文件。
"Permission denied" 错误
验证服务账号邮箱已添加到您的 GTM 账号中
检查权限级别是否足以执行该操作
"API not enabled" 错误
确保已在您的 Google Cloud 项目中启用 Tag Manager API。
服务器未出现在 Claude Desktop 中
检查您的配置中的路径是否正确
查看 Claude Desktop 的 MCP 日志以获取错误信息
尝试直接运行
npx gtm-mcp-server以查看任何错误消息
开发
# Clone the repository
git clone https://github.com/alexstansfield/gtm-mcp-server.git
cd gtm-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Watch mode for development
npm run dev
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js许可证
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP (Model Context Protocol) server for Appwrite
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlexStansfield/gtm-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server