Open-source MCP server
Connect Claude to your Tag Manager in 60 seconds.
One-click OAuth, no local install. Lets any MCP-compatible host audit containers, find tracking that was never published, build GA4 event tags and triggers in draft, and publish — only when you say so — straight from a conversation.
We never store your container data. Only an OAuth refresh token, encrypted at rest, so the connector can act on your behalf.
How it works
-
1
Click "Connect with Google"
Standard Google consent screen. You grant access to Tag Manager (edit + publish). We capture an offline refresh token, encrypt it with AES-256-GCM, and mint a personal MCP bearer token for you.
-
2
Paste the install command
One
claude mcp addcommand, pre-filled with your token, ready to copy. Works in Claude Code, Claude Desktop, Cursor, Continue.dev — anything that speaks MCP. -
3
Ask about your tracking
Just ask. Examples:
- "Audit my container — is GA4 actually live on the site?"
- "Track clicks on the WhatsApp button as a generate_lead event."
- "Show me exactly what would go live if I published now."
18 tools, ready to call
list_containersAccounts and containers you can access.
audit_containerHealth check: what's broken, and the fix.
get_container_statusLive version vs unpublished draft.
list_tagsTags with triggers and configuration.
list_triggersTriggers with readable conditions.
list_variablesUser-defined + built-in variables.
list_versionsVersion history, live one marked.
create_google_tagBase GA4 / Ads tag — draft.
create_ga4_event_tagConversion / event tag — draft.
create_triggerLink click, click, form, custom event — draft.
update_tagRename, pause, re-trigger — draft.
delete_tag / delete_triggerRemove from draft.
preview_changesExactly what a publish would push live.
publish_workspaceGo live — needs explicit confirmation.
rollback_to_versionUndo a bad publish.
Security model
- • Google refresh tokens are encrypted with AES-256-GCM before being written to Mongo. Key lives in env, never in the database.
- • MCP bearer tokens are stored as sha256 hashes only — the plaintext is shown once on connect, then unrecoverable.
- • Per-request OAuth client is built from the decrypted refresh token, used for that single call, then discarded.
- • Revoke at any time — server-side revocation is instant.
- • Code is open-source on GitLab; self-host if you'd rather not trust a hosted service.