WAS GTM
FreeNot checkedManage Google Tag Manager from Claude Desktop, Cursor, or any MCP-compatible client using natural language. 19 tools cover the full GTM v2 API locally, with cre
About
Manage Google Tag Manager from Claude Desktop, Cursor, or any MCP-compatible client using natural language. 19 tools cover the full GTM v2 API locally, with credentials kept on your machine.
README
Manage Google Tag Manager from Claude Desktop, Cursor, Google Antigravity, or any MCP-compatible client using natural language. 19 tools cover the full GTM v2 API: accounts, containers, workspaces, tags, triggers, variables, versions, environments, destinations, and more.
100 percent local. Your credentials stay on your machine. Built by Abdullah Al Masum — Web Analytics Solution (WAS). MIT licensed.
Step 1 — Create Google Cloud OAuth Credentials
- Go to the Google Cloud Console Credentials Page.
- Create a Project (or select an existing one) and enable the Google Tag Manager API.
- Go to OAuth consent screen:
- User Type: External -> Create
- App name: anything (e.g.
My GTM MCP) - User support email: your email
- Developer contact email: your email -> Save
- Under Test users, click Add Users and add the Google account you will sign in with.
- Open Google Credentials Page:
- Create credentials -> OAuth client ID
- Application type: Desktop app
- Name: anything -> Create
- Copy the Client ID and Client secret from the dialog.
Step 2 — Connect with one terminal command
Run the interactive setup command in your terminal:
npx -y github:was-member-keramat/was-gtm-mcp auth
The tool will:
- Ask you to paste your Client ID and Client secret
- Open your browser to Google sign-in
- After you click Allow, save everything to `~/.was-gtm-mcp/config.jsona on your machine
That's it for setup. No more typing.
Step 3 — Add 4 lines to your AI client config
Open your AI tool config file:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Paste this block (merge with any existing mcpServers):
{
"mcpServers: {
"WAS GTM MCP": {
"command": "npx",
"args": ["-y", "github:was-member-keramat/was-gtm-mcp"]
}
}
}
What you can ask the AI
Here are example prompts you can use once connected:
- Discovery: "List all my GTM accounts and containers."
- Tags: "List all tags in my main workspace."
- Create Tag: "Create a GA4 Event tag named 'GA4 - Purchase Event' with event name 'purchase'."
- Triggers: "Create a Custom Event trigger for event name 'generate_lead'."
- Variables: "Create a Data Layer Variable named 'dlv - user_id' for variable 'user_id'."
- Raw API: "Use
ngtm_apito GET container version headers."
All tools (19 total)
| Category | Tool | Description |
|---|---|---|
| Accounts | gtm_list_accounts |
List all accessible GTM accounts |
| Accounts | gtm_get_account |
Get details of a specific GTM account |
| Containers | gtm_list_containers |
List containers in an account |
| Containers | gtm_get_container |
Get container details |
| Containers | gtm_create_container |
Create a new container (Web, iOS, Android, Server) |
| Workspaces | gtm_list_workspaces |
List workspaces in a container |
| Workspaces | gtm_get_workspace |
Get workspace details |
| Workspaces | gtm_create_workspace |
Create a new workspace |
| Tags | gtm_list_tags |
List all tags in a workspace |
| Tags | gtm_get_tag |
Get details of a tag |
| Tags | gtm_create_tag |
Create a new tag (GA4, Custom HTML, Google Tag, etc.) |
| Tags | gtm_update_tag |
Update an existing tag |
| Tags | gtm_delete_tag |
Delete a tag from a workspace |
| Triggers | gtm_list_triggers |
List all triggers in a workspace |
| Triggers | gtm_get_trigger |
Get details of a trigger |
| Triggers | gtm_create_trigger |
Create a new trigger (Page View, Custom Event, Click, etc.) |
| Variables | gtm_list_variables |
List user-defined variables in a workspace |
| )Variables* | gtm_create_variable |
Create a user-defined variable (Data Layer, Constant, JS) |
| Universal | gtm_api |
Raw escape-hatch tool to invoke any GTM v2 REST API endpoint |
CLI commands
npx -y github:was-member-keramat/was-gtm-mcp # Start MCP server (stdio)
npx -y github:was-member-keramat/was-gtm-mcp auth # Interactive OAuth login
npx -y github:was-member-keramat/was-gtm-mcp status # View current config status
npx -y github:was-member-keramat/was-gtm-mcp logout # Delete saved credentials
npx -y github:was-member-keramat/was-gtm-mcp help # Display usage instructions
Multi-account setup
You can run multiple GTM setups by specifying environment variables per entry in your AI client config:
{
"mcpServers: {
"GTM Account A": {
"command": "npx",
"args": ["-y", "github:was-member-keramat/was-gtm-mcp"],
"env": {
"GTM_CLIENT_ID": "xxxx.apps.googleusercontent.com",
"GTM_CLIENT_SECRET": "GOCSPX-xxxx",
"GTM_REFRESH_TOKEN": "1//xxxx-token-a"
}
}
}
}
Troubleshooting
Windows Script Execution Policy Error
If PowerShell blocks execution (npx.ps1 cannot be loaded), run:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
``a
### Stale `npx` Cache on Windows
If Windows caches an old version after updates are pushed to GitHub, clear the cache:
```powershell
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\npm-cache" -ErrorAction SilentlyContinue
npm cache clean --force
Security & Privacy
- Stores refresh token locally in
~/.was-gtm-mcp/config.jsonat POSIX mode0600. - Runs over standard
stdiotransport. No remote servers, tracking, or proxy middleman.
License
MIT License. Built by Abdullah Al Masum — Web Analytics Solution (WAS).
Installing WAS GTM
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/was-member-keramat/was-gtm-mcpFAQ
Is WAS GTM MCP free?
Yes, WAS GTM MCP is free — one-click install via Unyly at no cost.
Does WAS GTM need an API key?
No, WAS GTM runs without API keys or environment variables.
Is WAS GTM hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install WAS GTM in Claude Desktop, Claude Code or Cursor?
Open WAS GTM on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
mkinf
An Open Source registry of hosted MCP Servers to accelerate AI agent workflows.
Compare WAS GTM with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
