io.github.samarthanalytics-sj/samarth-gtm-mcp
NPM · SAMARTH-GTM-MCP · SCANNED SEP 20
Google Tag Manager + read-only GA4 MCP server. Read-only by default, gated writes, audits.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security89
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects uuid 9.0.1, reached via google-auth-library > gaxios > uuid. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 48 of 148 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to samarthanalytics-sj/samarth-analytics-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 12 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability79
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 11859 tokens (~110/item across 107 items; 107 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage91
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 72% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 14 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "tags_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 108 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.samarthanalytics-sj/samarth-gtm-mcp server?
io.github.samarthanalytics-sj/samarth-gtm-mcp runs locally as an npm package, launched with npx -y samarth-gtm-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · samarth-gtm-mcp
claude mcp add samarthanalytics-sj-samarth-gtm-mcp -- npx -y samarth-gtm-mcp
{
"mcpServers": {
"samarthanalytics-sj-samarth-gtm-mcp": {
"command": "npx",
"args": [
"-y",
"samarth-gtm-mcp"
]
}
}
} {
"servers": {
"samarthanalytics-sj-samarth-gtm-mcp": {
"command": "npx",
"args": [
"-y",
"samarth-gtm-mcp"
]
}
}
} codex mcp add samarthanalytics-sj-samarth-gtm-mcp -- npx -y samarth-gtm-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"samarthanalytics-sj-samarth-gtm-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"samarth-gtm-mcp"
],
"enabled": true
}
}
} openclaw mcp add samarthanalytics-sj-samarth-gtm-mcp --command npx --arg -y --arg samarth-gtm-mcp
mcp_servers:
samarthanalytics-sj-samarth-gtm-mcp:
command: "npx"
args: ["-y", "samarth-gtm-mcp"] {
"McpServers": {
"samarthanalytics-sj-samarth-gtm-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"samarth-gtm-mcp"
]
}
}
} assistant mcp add samarthanalytics-sj-samarth-gtm-mcp -t stdio -c npx -a -y samarth-gtm-mcp
{
"mcpServers": {
"samarthanalytics-sj-samarth-gtm-mcp": {
"command": "npx",
"args": [
"-y",
"samarth-gtm-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −3
- Stability: pass → 0.80 functional
- 15 Sept 26 +1
- CVE-2026-82417 no longer affects this package ▲ security
- CVE-2026-82562 no longer affects this package ▲ security
- Stability: 0.97 → pass security
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Sept 26 −3
- Stability: pass → 0.80 functional
- 8 Sept 26 +1
- Stability: 0.97 → pass security
- Security disclosure: unverified → pass ▲ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/samarth-gtm-mcp@1.19.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | samarthanalytics-sj/samarth-analytics-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/samarthanalytics-sj/samarth-analytics-mcp/.github/workflows/release.yml@refs/heads/main |
| Rekor log index | 1803910685 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:ef3892684692d00cfbe075fbf1afcc4ad65ddb758a73685655672f1a827dd0ce1f0ed9292149670be40c8673cbe456319a76b39a17145865910393931 |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-w5hq-g745-h8pq | CVE-2026-41907 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 148 packages
| Packages resolved | 148 |
|---|---|
| Deprecated | 1 |
| Stale | 47 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
gtag_config_delete ~106
[DELETE] Delete a GTM gtag config. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this delete operation. |
| containerId | string | yes | The GTM container ID. |
| gtagConfigId | string | yes | The gtag configs ID to delete. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
gtag_config_get ~73
Get a specific GTM gtag config.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| gtagConfigId | string | yes | The gtag configs ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
gtag_config_list ~118
List all GTM gtag configs in a workspace. Automatically follows pagination.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| maxPages | integer | – | Maximum number of API pages to fetch (default 50). If more pages remain, the result includes truncated:true and a nextPageToken. |
| pageToken | string | – | Continuation token to resume listing from a previous truncated result. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
gtag_config_update ~148
[WRITE] Update an existing GTM gtag config. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Pass the full resource as a JSON string in bodyJson.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| bodyJson | string | yes | Full gtag configs resource as a JSON string. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| fingerprint | string | – | Current fingerprint (for optimistic locking). |
| gtagConfigId | string | yes | The gtag configs ID to update. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
tags_create ~214
[WRITE] Create a new GTM tag. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Pass the full tag configuration as parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| blockingTriggerId | array | – | IDs of blocking triggers. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| firingTriggerId | array | – | IDs of firing triggers. |
| name | string | yes | Tag name. |
| notes | string | – | Optional notes. |
| parameter | array | – | GTM parameter list. For list/map parameters, use the GTM UI or pass via raw JSON update. |
| parentFolderId | string | – | Parent folder ID. |
| paused | boolean | – | Whether the tag is paused. |
| type | string | yes | Tag type (e.g. "ua", "ga4", "html", "img"). |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
tags_delete ~115
[DELETE] Delete a GTM tag. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true. This is irreversible in the workspace (the tag is removed from the workspace).
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this delete operation. |
| containerId | string | yes | The GTM container ID. |
| tagId | string | yes | The GTM tag ID to delete. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
tags_get ~69
Get details of a specific GTM tag.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| tagId | string | yes | The GTM tag ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
tags_list ~118
List all GTM tags in a workspace. Automatically follows pagination to return all tags.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| maxPages | integer | – | Maximum number of API pages to fetch (default 50). If more pages remain, the result includes truncated:true and a nextPageToken. |
| pageToken | string | – | Continuation token to resume listing from a previous truncated result. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
tags_update ~224
[WRITE] Update an existing GTM tag. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Only the fields provided will be updated (partial update via the API fingerprint).
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| blockingTriggerId | array | – | IDs of blocking triggers. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| fingerprint | string | – | Current tag fingerprint (for optimistic locking). |
| firingTriggerId | array | – | IDs of firing triggers. |
| name | string | – | New tag name. |
| notes | string | – | Optional notes. |
| parameter | array | – | GTM parameter list. For list/map parameters, use the GTM UI or pass via raw JSON update. |
| paused | boolean | – | Whether the tag is paused. |
| tagId | string | yes | The GTM tag ID to update. |
| type | string | – | New tag type. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
templates_create ~125
[WRITE] Create a new GTM template. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Pass the full resource as a JSON string in bodyJson.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| bodyJson | string | yes | Full templates resource as a JSON string (e.g. {"name":"...","type":"..."}). |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
templates_delete ~98
[DELETE] Delete a GTM template. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this delete operation. |
| containerId | string | yes | The GTM container ID. |
| templateId | string | yes | The templates ID to delete. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
templates_get ~65
Get a specific GTM template.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| templateId | string | yes | The templates ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
templates_list ~114
List all GTM templates in a workspace. Automatically follows pagination.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| maxPages | integer | – | Maximum number of API pages to fetch (default 50). If more pages remain, the result includes truncated:true and a nextPageToken. |
| pageToken | string | – | Continuation token to resume listing from a previous truncated result. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
templates_revert ~122
[WRITE] Revert workspace changes to a GTM template back to its last container-version state. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| fingerprint | string | – | Current fingerprint (for optimistic locking). |
| templateId | string | yes | The templates ID to revert. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
templates_update ~138
[WRITE] Update an existing GTM template. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Pass the full resource as a JSON string in bodyJson.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| bodyJson | string | yes | Full templates resource as a JSON string. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| fingerprint | string | – | Current fingerprint (for optimistic locking). |
| templateId | string | yes | The templates ID to update. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
transformations_create ~125
[WRITE] Create a new GTM transformation. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Pass the full resource as a JSON string in bodyJson.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| bodyJson | string | yes | Full transformations resource as a JSON string (e.g. {"name":"...","type":"..."}). |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
transformations_delete ~98
[DELETE] Delete a GTM transformation. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this delete operation. |
| containerId | string | yes | The GTM container ID. |
| transformationId | string | yes | The transformations ID to delete. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
transformations_get ~65
Get a specific GTM transformation.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| transformationId | string | yes | The transformations ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
transformations_list ~114
List all GTM transformations in a workspace. Automatically follows pagination.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| maxPages | integer | – | Maximum number of API pages to fetch (default 50). If more pages remain, the result includes truncated:true and a nextPageToken. |
| pageToken | string | – | Continuation token to resume listing from a previous truncated result. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
transformations_revert ~122
[WRITE] Revert workspace changes to a GTM transformation back to its last container-version state. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| fingerprint | string | – | Current fingerprint (for optimistic locking). |
| transformationId | string | yes | The transformations ID to revert. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
transformations_update ~138
[WRITE] Update an existing GTM transformation. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Pass the full resource as a JSON string in bodyJson.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| bodyJson | string | yes | Full transformations resource as a JSON string. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| fingerprint | string | – | Current fingerprint (for optimistic locking). |
| transformationId | string | yes | The transformations ID to update. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
triggers_create ~194
[WRITE] Create a GTM trigger. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| customEventFilter | – | – | Used for custom event triggers. |
| eventName | object | – | Custom event name (for customEvent type). |
| filter | array | – | Conditions that must be met for the trigger to fire. |
| name | string | yes | Trigger name. |
| notes | string | – | – |
| parentFolderId | string | – | – |
| type | string | yes | Trigger type (e.g. "click", "pageview", "customEvent", "domReady", "windowLoaded", "historyChange", "jsError", "scrollDepth", "elementVisibility", "timer", "youTubeVideo", "formSubmission", "linkClic… |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
triggers_delete ~70
[DELETE] Delete a GTM trigger. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| triggerId | string | yes | – |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
triggers_get ~47
Get a specific GTM trigger.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| containerId | string | yes | – |
| triggerId | string | yes | – |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
triggers_list ~103
List all GTM triggers in a workspace. Automatically follows pagination to return all triggers.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| containerId | string | yes | – |
| maxPages | integer | – | Maximum number of API pages to fetch (default 50). If more pages remain, the result includes truncated:true and a nextPageToken. |
| pageToken | string | – | Continuation token to resume listing from a previous truncated result. |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
triggers_update ~119
[WRITE] Update a GTM trigger. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| customEventFilter | – | – | – |
| eventName | object | – | – |
| filter | array | – | – |
| fingerprint | string | – | – |
| name | string | – | – |
| notes | string | – | – |
| triggerId | string | yes | – |
| type | string | – | – |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
user_permissions_create ~107
[WRITE] Grant a user access to a GTM account (and optionally containers). Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| accountPermission | string | – | Account-level permission. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerAccess | array | – | Per-container access entries. |
| emailAddress | string | yes | Email address of the user to grant access to. |
No output schema declared.
No examples provided.
user_permissions_delete ~80
[DELETE] Revoke a user's access to a GTM account. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this delete operation. |
| userPermissionId | string | yes | The user permission ID to delete. |
No output schema declared.
No examples provided.
user_permissions_get ~47
Get a specific user permission record for a GTM account.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| userPermissionId | string | yes | The user permission ID. |
No output schema declared.
No examples provided.
user_permissions_list ~105
List all user permissions for a GTM account. Automatically follows pagination. Each record shows a user email plus their account and per-container access levels.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| maxPages | integer | – | Maximum number of API pages to fetch (default 50). If more pages remain, the result includes truncated:true and a nextPageToken. |
| pageToken | string | – | Continuation token to resume listing from a previous truncated result. |
No output schema declared.
No examples provided.
user_permissions_update ~118
[WRITE] Update a user's account and/or container access levels. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. Provide the full intended access (account + container) as the API replaces the record.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| accountPermission | string | – | Account-level permission. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerAccess | array | – | Per-container access entries. |
| userPermissionId | string | yes | The user permission ID to update. |
No output schema declared.
No examples provided.
variables_create ~173
[WRITE] Create a GTM variable. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| disablingTriggerId | array | – | – |
| enablingTriggerId | array | – | – |
| name | string | yes | Variable name. |
| notes | string | – | – |
| parameter | array | – | – |
| parentFolderId | string | – | – |
| type | string | yes | Variable type (e.g. "v" for data layer, "k" for first-party cookie, "u" for URL, "c" for constant, "jsm" for custom JS, "smm" for lookup table, "gas" for GA settings). |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
variables_delete ~70
[DELETE] Delete a GTM variable. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| variableId | string | yes | – |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
variables_get ~47
Get a specific GTM variable.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| containerId | string | yes | – |
| variableId | string | yes | – |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
variables_list ~105
List all user-defined GTM variables in a workspace. Automatically follows pagination to return all variables.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| containerId | string | yes | – |
| maxPages | integer | – | Maximum number of API pages to fetch (default 50). If more pages remain, the result includes truncated:true and a nextPageToken. |
| pageToken | string | – | Continuation token to resume listing from a previous truncated result. |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
variables_update ~104
[WRITE] Update a GTM variable. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| fingerprint | string | – | – |
| name | string | – | – |
| notes | string | – | – |
| parameter | array | – | – |
| type | string | – | – |
| variableId | string | yes | – |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
versions_create ~106
[WRITE] Create a new GTM container version from a workspace (checkpoint). Requires GTM_MCP_ENABLE_WRITES=true and confirm=true. This takes a snapshot of the workspace into a versioned checkpoint without publishing.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| name | string | – | Version name/label. |
| notes | string | – | Version notes / change description. |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
versions_delete ~74
[DELETE] Delete a GTM container version. Requires GTM_MCP_ENABLE_DELETES=true and confirm=true. Cannot delete a currently published (live) version.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| containerVersionId | string | yes | – |
No output schema declared.
No examples provided.
versions_get ~74
Get the full contents of a specific GTM container version. Pass "live" as containerVersionId to get the currently live version.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| containerId | string | yes | – |
| containerVersionId | string | yes | The container version ID, or "live" for the current live version. |
No output schema declared.
No examples provided.
versions_list ~51
List all container version headers (summary) for a GTM container.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| containerId | string | yes | – |
| includeDeleted | boolean | – | Include deleted versions in results. |
No output schema declared.
No examples provided.
versions_publish ~93
[PUBLISH] Publish a specific GTM container version to live. Requires GTM_MCP_ENABLE_PUBLISH=true and confirm=true. ⚠️ This immediately makes the version live in production.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | Must be true to confirm this publish operation. |
| containerId | string | yes | – |
| containerVersionId | string | yes | The version ID to publish. |
No output schema declared.
No examples provided.
versions_set_latest ~99
[WRITE] Set a specific container version as the "latest" (synchronizes the default workspace with this version). Note: This does NOT publish. Use versions_publish to go live. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| containerVersionId | string | yes | The version ID to set as latest. |
No output schema declared.
No examples provided.
versions_undelete ~69
[WRITE] Undelete a previously deleted GTM container version. Requires GTM_MCP_ENABLE_WRITES=true and confirm=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | – |
| containerId | string | yes | – |
| containerVersionId | string | yes | – |
No output schema declared.
No examples provided.
workspace_create_version_and_publish ~117
[PUBLISH] Create a new container version from a workspace and immediately publish it. Requires GTM_MCP_ENABLE_PUBLISH=true and confirm=true. ⚠️ This is the most powerful write operation — it goes live in production immediately.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| confirm | boolean | yes | Must be true to confirm this publish operation. |
| containerId | string | yes | – |
| name | string | – | Version name. |
| notes | string | – | Version notes. |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
workspace_get_status ~92
Get the status of a GTM workspace: the list of changed entities (workspaceChange) relative to the latest container version, plus any merge conflicts. Use this to review a change diff before creating a version or publishing.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
workspace_quick_preview ~69
Generate a quick-preview (debug) link for a GTM workspace. This does NOT publish — it just enables preview mode. Returns a preview container version with any compilation errors.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | – |
| containerId | string | yes | – |
| workspaceId | string | yes | – |
No output schema declared.
No examples provided.
workspace_resolve_conflict ~154
Resolve a merge conflict for a workspace entity. You must supply the full entity body to write into the workspace (overwriting the conflict). NOTE: This is a complex operation — review the GTM UI conflict resolution first.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| entityJson | string | yes | JSON string of the full entity (tag/trigger/variable/folder) to use as the resolved version. |
| fingerprint | string | yes | The workspace fingerprint at the time of conflict resolution. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
workspace_sync ~87
Syncs a workspace to the latest container version by updating all unmodified workspace entities. Returns a list of merge conflicts if any.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this operation. |
| containerId | string | yes | The GTM container ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
workspaces_create ~86
[WRITE] Create a new workspace. Requires GTM_MCP_ENABLE_WRITES=true.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| confirm | boolean | yes | Must be true to confirm this write operation. |
| containerId | string | yes | The GTM container ID. |
| description | string | – | Workspace description. |
| name | string | yes | Workspace name. |
No output schema declared.
No examples provided.
workspaces_get ~57
Get details of a specific GTM workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The GTM account ID. |
| containerId | string | yes | The GTM container ID. |
| workspaceId | string | yes | The GTM workspace ID. |
No output schema declared.
No examples provided.
What is the io.github.samarthanalytics-sj/samarth-gtm-mcp server?
io.github.samarthanalytics-sj/samarth-gtm-mcp is listed in the public MCP registry as io.github.samarthanalytics-sj/samarth-gtm-mcp. Google Tag Manager + read-only GA4 MCP server. Read-only by default, gated writes, audits. This page covers its npm package (samarth-gtm-mcp).
Is the io.github.samarthanalytics-sj/samarth-gtm-mcp server safe to use?
io.github.samarthanalytics-sj/samarth-gtm-mcp scores 90 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.samarthanalytics-sj/samarth-gtm-mcp server expose?
io.github.samarthanalytics-sj/samarth-gtm-mcp exposes 107 tools: accounts_list, accounts_get, containers_list, containers_get, containers_create, and 102 more. Their descriptions and schemas cost roughly 11,055 tokens of context every time the server is loaded.
Is the io.github.samarthanalytics-sj/samarth-gtm-mcp server still maintained?
io.github.samarthanalytics-sj/samarth-gtm-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.samarthanalytics-sj/samarth-gtm-mcp server under?
io.github.samarthanalytics-sj/samarth-gtm-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.