Gtm Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Gtm Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center"> <img src="banner.png" alt="Google Tag Manager MCP Server" width="830"> </div>
MCP server for Google Tag Manager API v2. Provides programmatic access to GTM accounts, containers, workspaces, tags, triggers, variables, and version management.
npm install -g gtm-mcpOr install locally:
npm install gtm-mcpgit clone https://github.com/pouyanafisi/gtm-mcp.git
cd gtm-mcp
npm install
npm run buildcredentials.json in gtm-mcp directoryIf installed globally, use the binary directly:
{
"mcpServers": {
"gtm": {
"command": "gtm-mcp",
"env": {
"GTM_CREDENTIALS_FILE": "/absolute/path/to/credentials.json",
"GTM_TOKEN_FILE": "/absolute/path/to/token.json"
}
}
}
}If installed locally, use npx:
{
"mcpServers": {
"gtm": {
"command": "npx",
"args": ["gtm-mcp"],
"env": {
"GTM_CREDENTIALS_FILE": "/absolute/path/to/credentials.json",
"GTM_TOKEN_FILE": "/absolute/path/to/token.json"
}
}
}
}{
"mcpServers": {
"gtm": {
"command": "node",
"args": ["/absolute/path/to/gtm-mcp/dist/index.js"],
"env": {
"GTM_CREDENTIALS_FILE": "/absolute/path/to/gtm-mcp/credentials.json",
"GTM_TOKEN_FILE": "/absolute/path/to/gtm-mcp/token.json"
}
}
}
}See MCP_SETUP.md for platform-specific instructions.
If installed globally:
gtm-mcp-authOr with npx:
npx gtm-mcp-authnpm run authToken saved to token.json and auto-refreshed.
99 operations available (95 API operations + 4 workflow helpers). See OPERATIONS.md for complete reference.
List all containers for account 123456Create GA4 setup with measurement ID G-XXXXXXXXXX for account 123456, container 7890123Update tag 1 in account 123456, container 7890123 with new parametersPublish version for account 123456, container 7890123 with name "Version 1.0"123456)7890123)1 for default)GTM-XXXXXXX format (not used by API)Find IDs in GTM UI URL or container settings.
gtm-mcp/
├── src/
│ ├── index.ts # MCP server
│ ├── gtm-client.ts # GTM API client
│ ├── gtm-components.ts # Workflow templates
│ ├── auth-helper.ts # OAuth2 helper
│ └── auth.ts # Auth script
├── docs/ # API documentation
├── dist/ # Compiled output
└── package.jsonnpm run dev # Watch mode
npm run type-check # Type checking
npm run build # Build
npm run auth # Authenticate
npm test # Run tests
npm run test:run # Run tests once
npm run test:ui # Test UI
npm run test:coverage # Coverage reportAuthentication fails: Run npm run auth separately. Verify credentials.json exists.
Permission errors: Verify account has edit access to container. Use numeric IDs, not GTM-XXX.
API errors: Check account/container IDs. Verify workspace exists. Check rate limits.
Build errors: Node.js 18+, run npm install, verify TypeScript config.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.