百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
G

google-tag-manager-mcp-server

> 开发工具
开源

用于 Google Tag Manager 的 MCP 服务器

196 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

用于 Google Tag Manager 的 MCP 服务器

MCP Server for Google Tag Manager

An interface to the Google Tag Manager API over MCP, in two flavours: a hosted server with Google OAuth built in, and a local CLI that runs on your own credentials.

Table of Contents

  • MCP Server for Google Tag Manager
    • Table of Contents
    • Repository layout
    • Installation
      • Claude Desktop
      • Claude Code
      • VS Code
      • GitHub Copilot
      • Copilot CLI
      • Cursor
      • Antigravity
      • ChatGPT
      • Other MCP clients
      • Troubleshooting
    • Test your changes locally
      • Changes to packages/core or packages/cli
      • Changes to apps/worker
        • 1. Set up a Google Cloud OAuth client
        • 2. Configure local environment variables
        • 3. Start the server
        • 4. Point your MCP client at the local server
    • Releasing
    • Development
    • Useful resources
    • Open Source

Repository layout

npm workspace with one app and two published packages:

Path Package What it is
apps/worker (private) The hosted Cloudflare Worker at gtm-mcp.stape.ai: Google OAuth, the approval flow, the public pages, session removal.
packages/cli google-tag-manager-mcp-server The npm package: a local MCP server over stdio, authenticating with credentials you supply.
packages/core google-tag-manager-mcp-core Every GTM tool and schema, independent of how credentials are obtained.

Tools reach Google through a GtmAuthProvider (getAccessToken(): Promise) rather than through any particular session, which is what lets the same tool set back both servers — and a private one with your own auth. See the core package README.

Installation

This server comes in two flavours: Hosted server and Local CLI. Both give you the same 18 GTM tools; the difference is who handles Google auth.

Hosted server Local CLI
Auth Google OAuth in your browser, handled for you You supply a service account key, refresh token, or access token
Data Passes through gtm-mcp.stape.ai Only ever leaves your machine
Setup None Set one environment variable

If you're a contributor testing an unreleased change rather than just using the tools, skip everything below and see Test your changes locally instead.

Pick your client below. The hosted server needs the mcp-remote bridge on clients whose MCP support doesn't complete Google's OAuth flow natively; where a client does that itself, it connects straight to https://gtm-mcp.stape.ai/mcp.

Claude Desktop

⬇️ Click to expand ⬇️

Hosted server — Claude Desktop connects to remote HTTP MCP servers natively, no bridge needed. Go to Settings → Connectors → Add custom connector, set the name to gtm-mcp-server and the URL to https://gtm-mcp.stape.ai/mcp, then save. Click the new connector to complete the Google OAuth flow in the browser window that opens.

mcp-remote is also possible for the hosted server, for anyone who'd rather configure it through the JSON config file (Settings -> Developer -> Edit Config) instead of the Connectors UI — less recommended, but still supported:

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

Local CLI — no OAuth flow, no data through anyone else's server, you supply a service account key or a refresh token. Open Settings -> Developer -> Edit Config and add:

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

See the CLI README for every credential option.

Claude Code

⬇️ Click to expand ⬇️

Claude Code speaks HTTP directly, including the OAuth handshake, so the hosted server needs no bridge.

Hosted server:

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

A browser window opens for the Google OAuth flow the first time a tool is used. Run /mcp inside Claude Code to confirm it connected.

Local CLI:

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

Both write into .mcp.json / your Claude Code MCP config.

VS Code

⬇️ Click to expand ⬇️

VS Code's MCP client supports HTTP servers and their OAuth flow natively, no mcp-remote needed. Add this to .vscode/mcp.json:

Hosted server:

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

Local 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

⬇️ Click to expand ⬇️

GitHub Copilot Chat in VS Code uses VS Code's own MCP client, so it reads the same .vscode/mcp.json file — see VS Code above. No separate configuration is needed.

Copilot CLI

⬇️ Click to expand ⬇️

Copilot CLI also completes OAuth natively for remote HTTP servers. Add this to ~/.copilot/mcp-config.json:

Hosted server:

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

Local CLI:

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

See GitHub's docs for the equivalent copilot mcp add subcommand.

Cursor

⬇️ Click to expand ⬇️

Cursor speaks HTTP directly too, no mcp-remote needed. Add this to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global — Settings → MCP → Add new global MCP server):

Hosted server:

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

A browser window opens for the Google OAuth flow the first time a tool is used.

Local CLI:

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

Antigravity

⬇️ Click to expand ⬇️

Antigravity's own OAuth support for remote HTTP servers doesn't reliably reach a token to the server yet (antigravity-cli#25), so use mcp-remote for the hosted server here too. Add this to ~/.gemini/config/mcp_config.json (global) or .agents/mcp_config.json (workspace-local) — accessible from the editor's agent panel via … → MCP Servers → Manage MCP Servers → View raw config:

Hosted server:

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

Local CLI:

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

ChatGPT

⬇️ Click to expand ⬇️

  1. In ChatGPT, enable Developer mode: Settings → Apps & Connectors → Advanced settings → Developer mode.
  2. Go to Settings → Connectors → Create, and set the server URL to https://gtm-mcp.stape.ai/mcp.
  3. Set Authentication to OAuth and complete the Google login in the browser window that opens.

ChatGPT only reaches servers over the public internet, it can't spawn a local process — so there's no Local CLI option here, only the hosted server.

Other MCP clients

⬇️ Click to expand ⬇️

Any other MCP-compatible client that expects a stdio-style command/args config can use the same mcp-remote block for the hosted server:

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

Or the local CLI directly, with your credentials:

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

Troubleshooting

MCP Server Name Length Limit

Some MCP clients (like Cursor AI) have a 60-character limit for the combined MCP server name + tool name length. If you use a longer server name in your configuration (e.g., gtm-mcp-server-your-additional-long-name), some tools may be filtered out.

To avoid this issue:

  • Use shorter server names in your MCP configuration (e.g., gtm-mcp-server)

Clearing MCP Cache

If you're connecting through mcp-remote (Antigravity, or Claude Desktop configured that way), it stores all the credential information inside ~/.mcp-auth (or wherever your MCP_REMOTE_CONFIG_DIR points to). If you're having persistent issues, try running:

rm -rf ~/.mcp-auth

Then, restart your MCP client.

Test your changes locally

Which workflow you need depends on what you changed. Most changes are in the first category — reach for the second only if you're touching the Worker itself.

Changes to packages/core or packages/cli

This is the tool logic itself (schemas, GTM API calls, error handling) — almost everything you'd fix or add lives here. You don't need a Google Cloud OAuth client or any Worker setup: build from source and run the CLI directly with credentials you already have.

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

Point your MCP client at the local build instead of npx — same credential options as the Claude Desktop Local CLI example above, an access token from the OAuth Playground is the fastest way to test a single change:

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

See the CLI README for every credential option.

Changes to apps/worker

Only needed for the hosted server's own code: the OAuth flow, routing, session handling, the approval and status pages. This runs that code on your own machine against your own Google Cloud OAuth credentials instead of gtm-mcp.stape.ai.

1. Set up a Google Cloud OAuth client

  1. In the [Google Cloud Console](https://console.c

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

TypeScriptgtmgtm-server-sidemcpmcp-server

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月18日
分类开发工具
定价开源

> 相关工具

V
VS Code
流行的开源代码编辑器
G
Git
分布式版本控制系统
V
Vite
下一代前端构建工具