Skip to main content
Glama
jinchliu

tagmanager-mcp

by jinchliu

Google Tag Manager MCP Server (Alpha)

🚀 Empower your AI agents to handle the whole Google Tag Manager workflow!

This repo contains the source code for running a local MCP server that interacts with APIs for Google Tag Manager.

Features

  • No frequent authentication. Standard Google ADC with your own OAuth client is all you need. Everything runs on your machine, straight against the GTM API.

  • No service account required. The server runs as you, with the GTM permissions your account already has.

  • Built for LLM context windows. A single GTM tag can be hundreds of lines of JSON; list_* tools return slim skeletons and get_* fetches full detail only when asked.

Related MCP server: unboundai-gtm-mcp-server

Tools

The server uses the Google Tag Manager API to provide Tools for use with LLMs. The most frequently used tools are:

Tool

Purpose

list_containers

Containers in an account — where every session starts

list_tags

Tags in the workspace as slim skeletons

get_tag

One tag's full configuration, on demand

get_workspace_status

Unpublished changes and merge conflicts

create_tag

Add a tag to the workspace draft

update_tag

Merge partial changes into a tag (fingerprint-checked)

delete_tag

Remove a tag (requires confirm=true)

Triggers and variables have the same four tools as tags, and versioning and publishing have their own. See Appendix I for the full list.

The write safety model:

  • Editing and going live are separate. Create/update/delete only touch the workspace draft; only publish_version changes the live site.

  • Updates are merge patches. The model sends just the fields it changes, and the server submits the entity's fingerprint, so a concurrent edit fails cleanly instead of being clobbered.

  • Deletes and publishing need confirm=true, and every destructive tool is declared with destructiveHint.

  • No blind retries on writes. Rate-limit rejections are retried, ambiguous 5xx errors are not, so a create is never silently duplicated.

Prerequisites

  • Python >= 3.10

  • pipx

  • The gcloud CLI

  • A Google account with access to your GTM containers

  • A GCP project (used only for quota attribution)

Setup instructions

1. Install

pipx install tagmanager-mcp

2. Enable the Tag Manager API on your quota project

gcloud services enable tagmanager.googleapis.com --project=YOUR_PROJECT

3. Create a Desktop OAuth client

Check out Manage OAuth Clients for how to create an OAuth client. Two choices matter here: pick application type Desktop app, and publish the app to Production, because an app left in Testing issues refresh tokens that expire after 7 days. Download the client JSON at the end — step 4 needs it.

Why your own client? Google may block gcloud's built-in one for Tag Manager scopes ("This app is blocked"), and that block is not something you can work around from your side.

4. Log in

gcloud auth application-default login \
  --client-id-file=path/to/your-client.json \
  --scopes=\
https://www.googleapis.com/auth/tagmanager.readonly,\
https://www.googleapis.com/auth/tagmanager.edit.containers,\
https://www.googleapis.com/auth/tagmanager.edit.containerversions,\
https://www.googleapis.com/auth/tagmanager.publish,\
https://www.googleapis.com/auth/cloud-platform

gcloud auth application-default set-quota-project YOUR_PROJECT

The browser will warn "Google hasn't verified this app" — it is your own app; choose Advanced → Continue.

Those scopes unlock everything. Drop the lines you do not want:

Scope

Unlocks

tagmanager.readonly

Every read tool

tagmanager.edit.containers

Create / update / delete in a workspace

tagmanager.edit.containerversions

create_version

tagmanager.publish

publish_version

cloud-platform

Nothing in GTM — needed by set-quota-project

Tools outside your granted scopes fail with a clear re-login hint, and everything else keeps working.

Connect an MCP client

Configure Claude Code

claude mcp add --scope user tagmanager-mcp -- tagmanager-mcp

--scope user registers the server for every project instead of just the current directory. Verify with claude mcp list, or run /mcp inside a session.

Configure Claude Desktop

Claude Desktop needs the absolute path to the executable. Print it:

which tagmanager-mcp

Open Settings → Developer → Edit Config, which reveals claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows), and add the server with the path you just printed:

{
  "mcpServers": {
    "tagmanager-mcp": {
      "command": "/Users/you/.local/bin/tagmanager-mcp"
    }
  }
}

Save the file and restart Claude Desktop — it reads the config only at startup. The tools then appear under the tools icon in the chat box.

Example prompts

  • "Which GTM accounts and containers do I have?"

  • "How many tags are in container GTM-XXXXXXX, grouped by type?"

  • "Show me the purchase tag's config and which triggers fire it."

  • "Does the current workspace have unpublished changes?"

  • "Pause every tag that fires on the checkout trigger."

  • "Create a custom-event trigger for sign_up and a GA4 event tag that fires on it."

Note on quota

The GTM API allows 10,000 requests/day and 25 requests per 100 seconds per GCP project; per-user overrides do not raise it. Ordinary audit conversations fit comfortably — just avoid sweeping every tag across many containers at once.

Appendix I: A Full List of Tools

Read

Tool

Purpose

list_accounts

GTM accounts you can access (optionally Google Tag accounts)

list_containers

Containers in an account

list_workspaces

Workspaces in a container

get_workspace_status

Unpublished changes and merge conflicts

list_tags / get_tag

Tags — skeleton list / full configuration

list_triggers / get_trigger

Triggers — skeleton list / full configuration

list_variables / get_variable

Variables — skeleton list / full configuration

list_versions

Container version headers — skeleton list

get_version / get_live_version

One version / the currently live version, with slimmed contents

Write

Tool

Purpose

create_tag / create_trigger / create_variable

Create an entity in the workspace draft

update_tag / update_trigger / update_variable

Merge partial changes into an entity

delete_tag / delete_trigger / delete_variable

Delete an entity (requires confirm=true)

create_version

Snapshot the workspace into a version (consumes the workspace; returns newWorkspacePath)

publish_version

Publish a version live (requires confirm=true)

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Google Tag Manager API, enabling users to manage containers, tags, and triggers through natural language using Google Application Default Credentials.
    Last updated
    18
    41
    Apache 2.0
  • A
    license
    B
    quality
    A
    maintenance
    Production-grade MCP server for the Google Tag Manager API v2 with read-only GA4 (Admin + Data API) tooling. 107 tools covering the full GTM surface, including server-side containers. Ships read-only: writes, publishes, and deletes are each gated behind separate opt-in flags, every mutation requires per-call confirmation, and a dry-run mode simulates changes. Includes container audits
    Last updated
    4
    100
    14,460
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Google Tag Manager and GA4, enabling tag management, consent auditing, workspace versioning, and analytics reporting through natural language.
    Last updated
    18
    64
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Gainium — manage trading bots, deals, and balances via AI assistants

  • Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

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/jinchliu/tagmanager-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server