by sprawz
An MCP server for Google Tag Manager. Connect it to your LLM, authenticate once, and start managing GTM through natural language.
# Add to your Claude Code skills
git clone https://github.com/sprawz/gtm-mcp-serverGuides for using mcp servers skills like gtm-mcp-server.
Last scanned: 7/12/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-07-12T06:31:49.134Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how gtm-mcp-server compares with popular alternatives.
gtm-mcp-server is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by sprawz. An MCP server for Google Tag Manager. Connect it to your LLM, authenticate once, and start managing GTM through natural language. It has 162 GitHub stars.
Yes. gtm-mcp-server passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/sprawz/gtm-mcp-server" and add it to your Claude Code skills directory (see the Installation section above).
gtm-mcp-server is primarily written in Go. It is open-source under sprawz on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh gtm-mcp-server against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
GTM MCP Server connects MCP clients to the Google Tag Manager API. It can inspect containers, create and update workspace entities, create versions, and publish a selected version after explicit confirmation.
Use the hosted server at:
https://mcp.gtmeditor.com
The server supports browser-based Google OAuth for individual users and service-account authentication for self-hosted automation.
| Item | Current state |
|---|---|
Version in server.json |
1.10.1 |
| Transport | MCP Streamable HTTP |
| Runtime tools | 64 GTM tools by default; 94 with GTM_TOOL_GROUPS=all, plus 2 utility tools |
| MCP resources | 8 resource definitions |
| MCP prompts | 6 prompts |
| Official GTM API coverage | 101 of 106 methods |
| Product parity target | 101 of 106 methods, reached |
| Hosted endpoint | https://mcp.gtmeditor.com |
The agreed API parity scope is complete. The project implements 101 methods
from Google's 106-method GTM v2 discovery surface. The five
accounts.user_permissions methods are intentionally excluded because granting
and revoking GTM access needs a separate privilege-management design.
Tool count and API-method count are different. Some tools provide local guidance, while some helpers cover more than one Google API call.
Add the hosted URL as a remote HTTP MCP server. The client should discover the OAuth metadata, open Google sign-in, and reconnect with the issued bearer token.
claude mcp add --transport http gtm https://mcp.gtmeditor.com
gemini mcp add --transport http gtm https://mcp.gtmeditor.com
Gemini CLI can also use this settings.json entry:
{
"mcpServers": {
"gtm": {
"httpUrl": "https://mcp.gtmeditor.com"
}
}
}
Add the following to .cursor/mcp.json:
{
"mcpServers": {
"gtm": {
"url": "https://mcp.gtmeditor.com"
}
}
}
Add a custom or remote MCP connection in the client and use
https://mcp.gtmeditor.com as the server URL. Product menus change more often
than this server, so refer to the client's current MCP connection instructions
if the label differs.
After connecting, try:
List my GTM accounts, containers, and workspaces. Do not make changes.
The Google account used during OAuth determines which GTM accounts the server can access.
list_accounts, list_containers, and list_workspaces to discover
IDs. Do not guess IDs.audit_container prompt.get_workspace_status and resolve conflicts before versioning.create_version to snapshot the workspace.get_version.publish_version with confirm: true only when the selected version
is ready to go live.get_live_version.Example requests:
All GTM tools use the authenticated Google identity from the current MCP request. Inputs and outputs are structured JSON.
| Tool | Purpose |
|---|---|
ping |
Test MCP connectivity |
auth_status |
Check whether the current request is authenticated |
| Tool | Purpose |
|---|---|
list_accounts |
List accessible GTM accounts |
update_account |
Rename an account |
list_containers |
List containers and their public IDs and settings |
lookup_container |
Find a container by destination ID or GTM public tag ID |
get_container_snippet |
Get a web install snippet or server-container configuration |
create_container |
Create a web, app, AMP, or server container |
update_container |
Rename a container while preserving its other settings |
delete_container |
Permanently delete a container; requires confirm: true |
combine_containers |
Merge a source container into a target; requires confirm: true |
move_tag_id |
Move a tag ID into a new container; requires confirmation and terms acceptance |
| Tool | Purpose |
|---|---|
list_workspaces |
List workspaces in a container |
create_workspace |
Create a workspace |
get_workspace |
Get workspace metadata and its current fingerprint |
update_workspace |
Update selected workspace fields |
delete_workspace |
Delete a workspace; requires confirm: true |
quick_preview_workspace |
Compile an ephemeral preview without saving or publishing |
get_workspace_status |
Show pending changes and merge conflicts |
bulk_update_workspace |
Apply multiple entity changes; requires confirm: true |
resolve_workspace_conflict |
Replace a conflict with a resolved entity; requires confirm: true |
sync_workspace |
Synchronize with the latest container version; requires confirm: true |
Bulk update and conflict resolution accept raw GTM Entity JSON so every entity type supported by the official API remains available.
| Tool | Purpose |
|---|---|
list_tags |
List workspace tags |
get_tag |
Get complete tag details |
create_tag |
Create a tag |
update_tag |
Update a tag with fingerprint-based concurrency control |
delete_tag |
Delete a tag; requires confirm: true |
| Tool | Purpose |
|---|---|
list_triggers |
List workspace triggers |
get_trigger |
Get complete trigger details |
create_trigger |
Create a trigger |
update_trigger |
Update a trigger with fingerprint-based concurrency control |
delete_trigger |
Delete a trigger; requires confirm: true |
For update_trigger, omit filterJson, customEventFilterJson,
autoEventFilterJson, or parameterJson to preserve the current field. Pass
the JSON string "[]" to clear a field, or a non-empty JSON array to replace
it. For click, link-click, and form-submission triggers, use filterJson because
GTM drops autoEventFilter for those trigger types.
| Tool | Purpose |
|---|---|
list_variables |
List workspace variables |
get_variable |
Get complete variable details |
create_variable |
Create a variable |
update_variable |
Update a variable with fingerprint-based concurrency control |
delete_variable |
Delete a variable; requires confirm: true |
| Tool | Purpose |
|---|---|
list_folders |
List workspace folders |
get_folder |
Get complete folder metadata |
create_folder |
Create a folder |
update_folder |
Update a folder with fingerprint protection |
delete_folder |
Delete a folder; requires confirm: true |
get_folder_entities |
List tags, triggers, and variables assigned to a folder |
move_entities_to_folder |
Move tags, triggers, and variables; requires confirm: true |
revert_folder |
Discard workspace folder changes; requires confirm: true |
list_built_in_variables |
List enabled built-in variables |
enable_built_in_variables |
Enable built-in variable types |
disable_built_in_variables |
Disable built-in variable types; requires confirm: true |
Use revert_workspace_entity to discard changes to a built-in variable.
| Tool | Purpose |
|---|---|
list_zones |
List all zones across every result page |
get_zone |
Get boundary, child-container, and type-restriction configuration |
create_zone |
Create a workspace zone |
update_zone |
Update selected fields with fingerprint concurrency control |
delete_zone |
Delete a zone; requires confirm: true |
Use revert_workspace_entity to discard changes to a zone.
The environments tool group is optional. Enable it with
GTM_TOOL_GROUPS=all or add environments to an explicit group list.
| Tool | Purpose |
|---|---|
list_environments |
List all container environments across every result page |
get_environment |
Get environment configuration and authorization metadata |
create_environment |
Create a user environment |
update_environment |
Update selected fields with fingerprint concurrency control |
reauthorize_environment |
Rotate the authorization code; requires confirm: true |
delete_environment |
Delete a user environment; requires confirm: true |
The Live and Latest environments are managed by GTM. Creation and deletion apply to user environments; GTM permits URL and debug updates on other types.
These tools are in the optional destinations and gtag groups.
| Tool | Purpose |
|---|---|
list_destinations |
List Google tag destinations linked to a container |
get_destination |
Get a destination by its link ID |
link_destination |
Move a destination to a container; requires confirm: true |
list_google_tag_configs |
List Google tag configurations in a workspace |
get_google_tag_config |
Get a Google tag configuration |