mcpField
M
MCP Server for Google Tag Manager

MCP Server for Google Tag Manager

本地服务
stape.io商业与营销2401 周前更新

关于 MCP Server for Google Tag Manager

MCP Server for Google Tag Manager 通过 20 个工具提供 Google Tag Manager API 操作。它提供内置 Google OAuth 的托管服务,以及使用自有凭据的本地 CLI。

主要功能

  1. 01提供 20 个 Google Tag Manager 工具
  2. 02支持内置 Google OAuth 的托管端点
  3. 03提供本地 stdio CLI 服务
  4. 04支持服务账号或令牌认证
  5. 05不同服务模式共用工具逻辑

适用场景

  1. 01通过 MCP 客户端检查或管理 Google Tag Manager
  2. 02使用托管 OAuth,免配本地凭据
  3. 03使用自有 Google 凭据在本地运行

MCP 相关

它提供托管 HTTP MCP 端点和本地 stdio MCP 服务。客户端可通过 OAuth 连接托管端点,或使用自有凭据启动 CLI。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"google-tag-manager": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
启动命令npx -y mcp-remote

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

安装包
npmmcp-remote

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Google Tag Manager 的 MCP 服务

信任评分

通过 MCP 接入 Google Tag Manager API,提供两种形式:内置 Google OAuth 的托管服务,以及使用你自己的凭据运行的本地 CLI。

目录

仓库布局

包含一个应用和两个已发布软件包的 npm 工作区:

路径软件包说明
apps/worker(私有)位于 gtm-mcp.stape.io 的托管 Cloudflare Worker:Google OAuth、审批流程、公共页面、会话移除。
packages/cligoogle-tag-manager-mcp-servernpm 软件包:通过 stdio 运行的本地 MCP 服务,使用你提供的凭据进行身份验证。
packages/coregoogle-tag-manager-mcp-core所有 GTM 工具和架构,与凭据的获取方式无关。

工具通过 GtmAuthProvider(getAccessToken(): Promise<string>)访问 Google,而不依赖任何特定会话,因此同一套工具既可供这两种服务使用,也可供使用你自己的身份验证方式的私有服务使用。请参阅 核心软件包 README。

安装

此服务有两种形式:托管服务和本地 CLI。两者都提供相同的 20 个 GTM 工具;区别在于由谁处理 Google 身份验证。

托管服务本地 CLI
身份验证通过浏览器使用 Google OAuth,由服务代为处理你提供服务账号密钥、刷新令牌或访问令牌
数据经由 gtm-mcp.stape.io 传递数据始终不会离开你的设备
设置无需设置设置一个环境变量

如果你是要测试尚未发布的更改,而不只是使用这些工具,请跳过以下所有内容,改为参阅在本地测试更改。

请在下方选择你的客户端。托管服务是一个基于 HTTP 的远程 MCP 端点,地址为 https://gtm-mcp.stape.io/mcp。能够自行完成 Google OAuth 流程的客户端(Claude Desktop、Claude Code、VS Code、Copilot CLI、Cursor、ChatGPT)会直接连接到该 URL,并在首次连接时使用 Google 登录;其他客户端(Antigravity、仅支持 stdio 的客户端)则通过 mcp-remote 连接,这是一个用于连接远程 HTTP MCP 服务的小型桥接工具。更改配置后,请重启客户端。

Claude Desktop
⬇️ 点击展开 ⬇️

托管服务,自定义连接器(推荐)。

  1. 前往 Customize → Connectors → Add custom connector。对于 Team 和 Enterprise 计划,Owner 应改为前往 Organization settings → Connectors → Add → Custom 添加,然后每位成员再在 Customize → Connectors 下选择该连接器上的 Connect,并使用自己的 Google 账号登录。
  2. 设置名称(例如 gtm-mcp-server)和 URL:https://gtm-mcp.stape.io/mcp。如果对话框询问如何进行身份验证,请选择 Sign in now;如果询问 OAuth 客户端,请选择 Register automatically(服务端不支持 Use Claude's published identity)。
  3. 选择 Add,然后选择 Connect,并使用 Google 账号登录。

该连接器也可在 claude.ai 上使用。

托管服务,mcp-remote。 要通过 claude_desktop_config.json(Settings → Developer → Edit Config)进行配置,请改为:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://gtm-mcp.stape.io/mcp"
      ]
    }
  }
}

本地 CLI — 不需要 OAuth 流程,不会通过他人的服务传输数据,你需要提供服务账号密钥或刷新令牌。打开 Settings → Developer → Edit Config 并添加:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}

请参阅 CLI README,了解所有凭据选项。

Claude Code
⬇️ 点击展开 ⬇️

Claude Code 原生支持 HTTP,包括 OAuth 握手,因此托管服务无需桥接。

托管服务:

claude mcp add --transport http gtm-mcp-server https://gtm-mcp.stape.io/mcp

然后在 Claude Code 中运行 /mcp(或在 shell 中运行 claude mcp login gtm-mcp-server),并使用 Google 账号登录。运行 claude mcp list 可查看是否已连接。

本地 CLI:

claude mcp add gtm-mcp-server -e GOOGLE_SERVICE_ACCOUNT_KEY='{"type":"service_account", ... }' -- npx -y google-tag-manager-mcp-server

两种方式都会仅将服务添加到当前项目。添加 --scope user 可在每个项目中使用。--scope project 会将其写入项目的 .mcp.json,适用于托管服务(其中不包含机密信息,每位队友都使用自己的 Google 账号登录),但不适用于本地 CLI,其配置项包含你的凭据。

VS Code
⬇️ 点击展开 ⬇️

VS Code 的 MCP 客户端原生支持 HTTP 服务及其 OAuth 流程,无需使用 mcp-remote。将以下内容添加到 .vscode/mcp.json(此工作区),或添加到 MCP: Open User Configuration 打开的文件中(所有工作区):

托管服务:

{
  "servers": {
    "gtm-mcp-server": {
      "type": "http",
      "url": "https://gtm-mcp.stape.io/mcp"
    }
  }
}

服务首次启动时,VS Code 会提示你使用 Google 账号登录。

本地 CLI:

{
  "servers": {
    "gtm-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}
GitHub Copilot
⬇️ 点击展开 ⬇️

VS Code 中的 GitHub Copilot Chat 使用 VS Code 自带的 MCP 客户端,因此会读取相同的 MCP 配置 — 请参阅上文的 VS Code。无需单独配置。

Copilot CLI
⬇️ 点击展开 ⬇️

托管服务 — Copilot CLI 可原生为远程 HTTP 服务完成 OAuth 流程:

copilot mcp add --transport http gtm-mcp-server https://gtm-mcp.stape.io/mcp

Copilot CLI 提示时,使用 Google 账号登录。

本地 CLI:

copilot mcp add --env GOOGLE_SERVICE_ACCOUNT_KEY='{"type":"service_account", ... }' gtm-mcp-server -- npx -y google-tag-manager-mcp-server

两种方式都会将服务配置项写入 ~/.copilot/mcp-config.json。运行 copilot mcp get gtm-mcp-server 进行检查。在交互式会话中,/mcp add 可通过表单完成相同操作。更多信息请参阅 GitHub 的文档。

Cursor
⬇️ 点击展开 ⬇️

Cursor 原生支持 HTTP,包括 OAuth 流程,无需使用 mcp-remote。将以下内容添加到 .cursor/mcp.json(此项目)或 ~/.cursor/mcp.json(所有项目):

托管服务:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "url": "https://gtm-mcp.stape.io/mcp"
    }
  }
}

然后在 Cursor 侧边栏 Customize 下的服务配置项中,使用 Google 账号登录。

本地 CLI:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}
### Antigravity
⬇️ 点击展开 ⬇️

Antigravity 对远程 HTTP 服务的 OAuth 支持目前还无法将令牌发送到服务端(antigravity-cli#25),因此这里请使用 mcp-remote 连接托管服务。将以下内容添加到 ~/.gemini/config/mcp_config.json。Antigravity 编辑器和 CLI 共用此配置文件。在编辑器中,可通过 Agent 面板中的 … → MCP 服务 → 管理 MCP 服务 → 查看原始配置 打开:

托管服务:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://gtm-mcp.stape.io/mcp"
      ]
    }
  }
}

本地 CLI:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}

或者,在 Antigravity CLI 中运行以下任一命令(agy mcp add 会替换同名条目):

托管服务:

agy mcp add gtm-mcp-server -- npx -y mcp-remote https://gtm-mcp.stape.io/mcp

本地 CLI:

agy mcp add --env GOOGLE_SERVICE_ACCOUNT_KEY='{"type":"service_account", ... }' gtm-mcp-server -- npx -y google-tag-manager-mcp-server

mcp-remote 首次连接时,会在浏览器中打开 Google 登录页面。

ChatGPT
⬇️ 点击展开 ⬇️
  1. 在网页端 ChatGPT 中,前往 插件,选择 +,然后选择 添加自定义 MCP 服务。
  2. 输入名称(例如 gtm-mcp-server),并在 连接 下将服务 URL 设为 https://gtm-mcp.stape.io/mcp。
  3. 将身份验证设为 OAuth。该服务支持动态客户端注册,因此无需客户端 ID 或密钥。
  4. 确认风险警告(我了解并希望继续),然后选择 创建为插件。
  5. 从个人插件中安装该插件,使用 Google 登录,然后在提示词框中输入 @ 并选择它。

ChatGPT 只能访问公共互联网中的服务,因此这里没有本地 CLI 选项,只能使用托管服务。工作区管理员可以限制自定义 MCP 服务。详情请参阅 OpenAI 文档。

其他 MCP 客户端
⬇️ 点击展开 ⬇️

如果你的客户端支持使用 OAuth 的远程 HTTP MCP 服务,请像 Cursor 配置示例那样,将其指向 https://gtm-mcp.stape.io/mcp。否则,请使用 mcp-remote 连接托管服务:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://gtm-mcp.stape.io/mcp"
      ]
    }
  }
}

或者,使用你的凭据直接运行本地 CLI:

{
  "mcpServers": {
    "gtm-mcp-server": {
      "command": "npx",
      "args": ["-y", "google-tag-manager-mcp-server"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "{\"type\":\"service_account\", ... }"
      }
    }
  }
}
故障排除

身份验证错误

如果工具因 401/403 错误而无法运行,请让助手运行 gtm_auth_status。该命令会报告当前 Google 令牌是否有效、何时过期,以及缺少哪些 Tag Manager 权限范围,但不会泄露令牌。

MCP 服务名称长度限制

部分 MCP 客户端(如 Cursor AI)对 MCP 服务名称与工具名称的总长度限制为 60 个字符。如果你在配置中使用了较长的服务名称(例如 gtm-mcp-server-your-additional-long-name),部分工具可能会被过滤掉。

为避免此问题:

  • 在 MCP 配置中使用较短的服务名称(例如 gtm-mcp-server)

清除 MCP 缓存

如果你通过 mcp-remote 连接(Antigravity、以这种方式配置的 Claude Desktop,或其他使用 mcp-remote 配置块的客户端),所有凭据都会存储在 ~/.mcp-auth 中(或存储在 MCP_REMOTE_CONFIG_DIR 指定的位置)。如果问题持续存在,请尝试运行:

rm -rf ~/.mcp-auth

然后重启 MCP 客户端。

在本地测试更改

需要采用哪种工作流取决于你更改的内容。大多数更改属于第一类,只有在修改 Worker 本身时才需要采用第二类工作流。

packages/core 或 packages/cli 的更改

这里是工具逻辑本身(架构、GTM API 调用、错误处理),几乎所有需要修复或添加的内容都在这里。你不需要 Google Cloud OAuth 客户端或任何 Worker 设置:从源代码构建,并使用现有凭据直接运行 CLI。

git clone https://github.com/stape-io/google-tag-manager-mcp-server
cd google-tag-manager-mcp-server
gh pr checkout <PR number>   # or: git checkout <your-branch>
npm install
npm run build

将 MCP 客户端指向本地构建,而不是 npx。凭据选项与上文 Claude Desktop 的本地 CLI 示例相同;要测试单项更改,最快的方法是使用来自 OAuth Playground 的访问令牌:

{
  "mcpServers": {
    "gtm-mcp-local": {
      "command": "node",
      "args": ["/absolute/path/to/google-tag-manager-mcp-server/packages/cli/dist/index.js"],
      "env": {
        "GOOGLE_ACCESS_TOKEN": "..."
      }
    }
  }
}

所有凭据选项请参阅 CLI README。

apps/worker 的变更

仅用于托管服务自身的代码:OAuth 流程、路由、会话处理、审批和状态页面。此设置会让这些代码在你自己的机器上运行,并使用你自己的 Google Cloud OAuth 凭据,而不是 gtm-mcp.stape.io。

1. 设置 Google Cloud OAuth 客户端
  1. 在 Google Cloud 控制台中创建或选择一个项目,然后启用 Tag Manager API。
  2. 前往 APIs & Services > OAuth consent screen 并进行配置(选择 External 即可)。当应用的发布状态为 Testing 时,只有列为测试用户的账号才能登录。
  3. 前往 Audience,在 Test users 下添加你自己的 Google 账号。
  4. 前往 APIs & Services > Credentials > Create Credentials > OAuth client ID,选择 Web application 类型。
  5. 在 Authorized redirect URIs 下添加 http://localhost:8788/callback。(可以将 Authorized JavaScript origins 留空——此流程仅在服务端运行,不会通过浏览器 JS 直接调用 Google。)
  6. 保存,然后复制生成的 Client ID 和 Client secret。
2. 配置本地环境变量

复制示例文件,并填入上一步获取的值:

cp apps/worker/.dev.vars.example apps/worker/.dev.vars
GOOGLE_CLIENT_ID="<your client ID>"
GOOGLE_CLIENT_SECRET="<your client secret>"
COOKIE_ENCRYPTION_KEY="<any random string, at least 32 chars, e.g. output of: openssl rand -hex 32>"
WORKER_HOST="http://localhost:8788"
HOSTED_DOMAIN=""

.dev.vars 已加入 git 忽略规则——它仅在本地使用,不会提交。

3. 启动服务
npm install
npm run build
npm run dev

npm run build 会编译 Worker 所依赖的 core 包;npm run dev 会在 http://localhost:8788 启动 Worker。

4. 将 MCP 客户端指向本地服务

Claude Desktop 的自定义连接器需要可公开访问的 URL,因此要将连接器指向 localhost,只能使用 mcp-remote:

{
  "mcpServers": {
    "gtm-mcp-server-local": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:8788/mcp"]
    }
  }
}

重启 Claude Desktop。随后会打开浏览器窗口以完成 Google OAuth 流程;请使用你在步骤 1 中添加为测试用户的账号登录。

**注意:**如果你之前连接过托管服务(或在本地服务和托管服务之间切换),请先清除 mcp-remote 的缓存(参见上文的故障排除),并完全重启 MCP 客户端,否则它可能会复用过期或已缓存的连接。

发布

版本和变更日志通过 Changesets 管理。对于计划发布的变更,请一并添加:

npm run changeset

合并到 main 后,发布工作流会创建一个“Version Packages”PR;合并该 PR 后,系统会先发布 core 包到 npm,然后发布依赖它的 CLI。Worker 是私有的,不会发布——每次推送到 main 都会部署它。

开发

npm install
npm run build      # core, then the CLI, then the Worker's generated version
npm run typecheck
npm run lint
npm run smoke      # starts the built CLI and runs an MCP handshake against it

拉取请求会运行上述所有检查,还会检查 Worker 打包,并标记未附带 changeset 的已发布包变更。

@modelcontextprotocol/sdk 和 agents 在 apps/worker 中都锁定为精确版本。SDK 使用 instanceof 识别工具架构,因此整个工作区必须只解析到同一份副本;而 agents 的版本会锁定其构建所用的 SDK 版本。请同时升级这两个依赖,并谨慎部署。

实用资源

开源

适用于 Google Tag Manager 的 MCP 服务由 Stape Team 开发和维护,采用 Apache 2.0 许可证。

评论

支持 Markdown

第一次接触 MCP?

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

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