Read, write, version, publish GTM containers. Tags, triggers, variables — all writable.
GAQL queries, conversion actions, Enhanced Conversions, Customer Match — fully programmatic.
Provision properties, register events, build audiences, pull funnel reports — without the UI.
Product feeds, performance data, account config — scriptable for multi-account management.
Google Workspace + Cloud from the terminal. Service accounts, IAM, projects — all scriptable. Pairs directly with Claude Code.
Cloudflare Developer Platform MCP exposes GCP primitives as Claude tool calls. Infra-as-conversation.
gcloud projects add-iam-policy-binding — grant per-API scopes programmatically.gcloud scheduler.gcloud commands. You review. Claude executes with --dangerously-skip-permissions. Zero console time.
gtm-AI, linkedin-capi-setup, gcp-access-gtm, tidy-gtmevent_id across web GTM (GTM-W9S77T7) and server GTM (GTM-KJHX6KJ7)wrangler pages deploy.claude/ — newsletter and LinkedIn post auto-generated from codebase on deploy.mcp.json) + gtm-debug skill for post-deploy validation without opening GTM UIgcloud, node scripts, direct API calls. MCP sits on top as a convenience layer. If MCP fails mid-session, the underlying CLI script still runs. Every MCP operation has a CLI fallback in scripts/..claude/skills/: gtm-AI (deploy + audit), tidy-gtm (standardize), linkedin-capi-setup, tracking-validation, data-audit. Each skill injects the correct API schema and tag type registry before Claude writes anything.CONFIG/phase-state.json. Claude selects the right path automatically based on operation scope.Tags: Platform - Type - Event ConvID · Variables: {{DL - name}} {{CJS - name}} {{ED - name}} · Triggers: sGTM - CE - EventNametidy-gtm skill before every publish. Never manually defined again.gtm.createVersion() call. Zero human clicks required.playwright.fire(syntheticEvents)assert(tagPanel.contains(expected))gtm.createVersion() ← only if passesReady to deploy your first AI agent fleet on Apple Silicon?