datavessel’s Google Tag Manager tools are read-only. Connect Claude or ChatGPT to your GTM containers and the assistant can trace which GA4 event tags fire on which dataLayer events, see what is live versus unpublished, and audit Consent Mode. It cannot create, edit or publish a tag. The point is the pairing: GA4 sits behind the same connector, so when a checkout step shows zero users, the funnel and the tag meant to send that step are read in one conversation. Tag Manager is one more source behind connect Claude to your store.
What “read-only” means here
Eleven tools, and none of them writes.
- Find the container.
gtm_list_containerslists every container the connected Google account can see, across all its Tag Manager accounts, with the public GTM id, the usage context (web, server, AMP, iOS, Android) and the domains.gtm_list_workspaceslists the drafts;gtm_list_versionslists the version history and says which version is live. - Read the configuration.
gtm_get_container_snapshotreturns the whole container, normalised: every tag with its type, its firing and blocking triggers resolved to names and conditions, its consent settings and its GA4 details (event name, measurement id, parameters); every trigger with what it listens for; every variable with its dataLayer key.gtm_get_tag,gtm_get_triggerandgtm_get_variableread one object in full.gtm_get_versionreads what the site ran before a given publish.gtm_get_workspace_statuslists the unpublished changes in a workspace and any merge conflicts with newer versions. - Diagnose.
gtm_trace_eventsfollows named GA4 events through the container and returns findings.gtm_audit_consentchecks the Consent Mode set-up and returns findings.
Why stop at reading, when every other write in datavessel could simply wait for your sign-off the way a refund or a product change does? Because a tag container is code that runs on every page of the store. A tag published wrong breaks revenue measurement for every channel at once, or fires a marketing pixel before consent, and the Tag Manager interface already has the versioning, the preview mode and the publish step that guard against that. What the interface does not have is the diagnosis next to the numbers. That is the gap these tools fill. Today the tools stop at reading; if that changes, this page will say so.
The pairing: the GA4 funnel next to the tags that feed it
This is the scenario the connector exists for. A store’s checkout funnel for the last 28 days, pulled with ga_get_checkout_funnel (numbers illustrative):
| Step | Users |
|---|---|
| view_item | 12,400 |
| add_to_cart | 1,910 |
| begin_checkout | 1,120 |
| add_shipping_info | 0 |
| add_payment_info | 655 |
| purchase | 418 |
A zero between two populated steps is not a conversion problem. Nobody reaches payment without passing shipping. It is a measurement problem, and until now finding it meant opening Tag Manager, searching for the tag, opening its trigger, opening the variable behind the trigger, and comparing by eye with whatever the theme pushes into the dataLayer.
With both sources behind one connector, the assistant does this instead:
- Trace the events.
gtm_trace_eventswith the six step names returns, for each one, every GA4 event tag that sends it, the trigger each tag fires on with the dataLayer event name it listens for, blocking triggers, consent requirements and the measurement id. Foradd_shipping_infoit returns a finding:trigger_event_mismatch. The tag sendsadd_shipping_info, but its trigger listens forcheckout_shipping, an event the theme stopped pushing after a redesign. The tag is right, the trigger is stale, the step is zero. - Check whether a fix is already waiting.
gtm_get_workspace_statusreports unpublished changes and lists that trigger as updated in the Default Workspace. Someone fixed it two weeks ago and never published. The live site still runs the old trigger. - Confirm against the version list.
gtm_list_versionsshows live is the latest version, so the fix exists only as a draft. Had the step gone quiet after a publish rather than after a theme change,gtm_get_versionon the previous version shows what the container looked like before it. - Tell you what to do. Publish the workspace, from the Tag Manager interface. The assistant cannot do that part, and says so.
The other findings the trace returns, each with the funnel shape it usually explains:
| Finding | What it means | What the funnel looks like |
|---|---|---|
no_sender, tag_paused |
No tag sends the event, or the tag is paused | Step is zero |
trigger_event_mismatch |
Tag sends X, trigger listens for Y | Step far below its neighbours |
page_trigger_on_event_tag |
purchase fires on a thank-you page view |
Purchases over-counted, re-sent on every reload |
multiple_senders |
Two tags send the same event | Step double-counted |
measurement_id_mismatch |
Steps go to different GA4 properties | Funnel never adds up in either property |
consent_asymmetric |
Only some steps require consent | Early steps healthy, consent-gated steps low where consent is denied |
trigger_extra_conditions |
Trigger has conditions beyond the event name | Step low on some pages or devices only |
And the honest limit, which the tool states itself: the Tag Manager API cannot show the dataLayer. If a tag and its trigger are correct and the shop never pushes the event, the configuration looks fine and the step is still missing. When a step has a correct tag and no finding, the assistant says so and points you at Tag Manager’s preview mode, which is the right tool for anything that happens at runtime.
The funnel method itself, which segments to compare and what a leak looks like when it is real, is in where your checkout funnel is leaking. This post is the step before it: making sure the funnel is measuring before anyone optimises it.
Consent Mode: the audit behind numbers that are quietly low
gtm_audit_consent reads the Consent Initialization triggers, finds the tag that looks like the consent-management or consent-defaults tag and checks whether it fires on Consent Initialization, counts how many tags require consent and of which types, and reads the consent requirement of every GA4 tag. Its findings: no_consent_tag, consent_tag_not_on_init (the defaults are set after the Google tags have already fired), consent_tag_paused, ga4_consent_mixed (GA4 tags carry different requirements, so under a denied default the funnel is suppressed unevenly) and ga4_tags_without_consent_settings.
The pairing again. A GA4 report split by country shows the symptom: one market whose add-to-cart rate is half of everyone else’s. The audit shows a cause worth checking: a consent tag that fires after the GA4 configuration tag instead of on Consent Initialization, so the first events of every session are sent under no consent state at all. The tools report configuration, not the law. Whether the banner and the policy meet the rules in each market is a question for your counsel and your consent platform, not for a tag audit.
Live versus draft, in one question
Three of the eleven tools exist for a single recurring question: does the site run what I think it runs? gtm_list_versions says which version is live and whether live is the latest; a live version older than the latest means something was created and never published, and no live version means the container was never published at all. gtm_get_workspace_status lists what sits unpublished and whether it conflicts with a newer version. gtm_get_version reads any past version, so “the funnel broke on the 14th, what changed” is answered by reading the version published that day next to the one before it. Run the trace against a workspace with compare_live and it adds differs_from_live, not_published and deleted_in_workspace findings per event.
Connect Google Tag Manager to Claude: step by step
- Sign in at app.datavessel.io and add Google Tag Manager as a source. It is a standard Google sign-in with the account that can see the containers; if Google Analytics is already connected, it is the same account. No service account, no JSON key. Revoke it from your Google account at any time.
- Add the connector to Claude. In Claude Desktop, Settings, then Connectors, add a custom connector with
https://mcp.datavessel.io/mcpand sign in. In Claude Code, add the same URL as an MCP server. - Ask. “List my Tag Manager containers. For the one on mystore.com, trace the GA4 checkout events in the live version and list every finding.” Claude calls
gtm_list_containers, thengtm_trace_events, and reads the findings back. Nothing in the container changes.
Connect Google Tag Manager to ChatGPT
Same server, different door. In the ChatGPT desktop app enable developer mode under Settings, then Connectors, add a custom connector with the same URL, sign in, and the Tag Manager tools appear next to your other connectors. Steps two and three with screenshots are in connect ChatGPT to Shopify; they are identical for Tag Manager. Read-only applies equally: ChatGPT gets the same eleven tools and no write.
Stape’s Tag Manager MCP server and datavessel: different jobs
If you searched for “google tag manager mcp”, you found Stape’s server first, and rightly so. It is open source under Apache-2.0, written in TypeScript, and you can run it locally with your own Google credentials or use Stape’s hosted endpoint with Google sign-in. It reads, creates, updates and deletes tags, triggers and variables through the Tag Manager API. If you want an assistant that builds or changes a container, that is the server to use. Google itself has not published an official Tag Manager MCP server as of October 2026.
datavessel’s tools do a different job. They are read-only, they are hosted, and they sit next to GA4, Search Console, the store and the ad accounts behind one URL. Build with the Tag Manager interface or with Stape’s server; diagnose next to the numbers with datavessel. Both can be connected to the same Claude without conflict.
| Tag Manager interface and preview | Stape’s GTM MCP server | datavessel | |
|---|---|---|---|
| Reads tags, triggers, variables | Yes | Yes | Yes |
| Creates, edits, publishes | Yes | Yes | No, read-only |
| GA4 event trace with named findings | By eye | Reads the objects; the assistant reasons over them | Yes, gtm_trace_events |
| Consent Mode audit with named findings | By eye | Reads the objects; the assistant reasons over them | Yes, gtm_audit_consent |
| Live vs workspace, unpublished changes | Yes | Through the API | Yes |
| Runtime dataLayer, preview mode | Yes | Not applicable, API server | Not applicable, API server |
| GA4 funnel in the same session | No | No, Tag Manager only | Yes |
| Hosting | Self-hosted or Stape’s endpoint | Hosted | |
| Price | Free | Free, open source | Free for one store |
Stape facts last verified on 11 October 2026 from its public repository and documentation; datavessel is not affiliated with Stape or Google.
A ten-minute Tag Manager audit, in prompts
- “List my Tag Manager containers. For the web container on mystore.com, is the live version the latest one?”
- “Trace view_item, add_to_cart, begin_checkout, add_shipping_info, add_payment_info and purchase through the live version. List every finding with the tag and trigger it concerns.”
- “Compare the Default Workspace to live for those events. Is there an unpublished fix?”
- “Audit Consent Mode. Do all GA4 tags carry the same consent requirements, and does the consent tag fire on Consent Initialization?”
- “Pull the GA4 checkout funnel for the last 28 days and put each step next to its finding.”
What you get is a list to take to the Tag Manager interface, with the tag and trigger names already resolved, and nothing changed behind your back. Inside datavessel the same tools are available to a scheduled agent, so a weekly measurement check that traces the six steps and posts to Slack when a finding appears is a policy rather than a reminder. The loop that runs on top of it, measure, diagnose, propose, approve, is in what an AI CRO agent actually does.
Frequently asked questions
Can Claude or ChatGPT change my Tag Manager container through datavessel?
No. All eleven Tag Manager tools are read-only. The assistant can list containers, read tags, triggers, variables, versions and workspace changes, trace GA4 events and audit Consent Mode. Creating, editing or publishing a tag is done in the Tag Manager interface, or through a write-capable server such as Stape’s.
Is there an official Google Tag Manager MCP server?
Not as of October 2026. The best-known server is Stape’s open-source one, which can also write. datavessel’s is read-only and ships next to GA4, Search Console, the store and the ad accounts.
Why does a funnel step show zero when the tag looks right?
Usually one of three things: the trigger listens for a dataLayer event name the theme no longer pushes (trigger_event_mismatch), the fix exists in a workspace and was never published, or the configuration is correct and the shop never pushes the event at all. The first two the trace finds. The third it cannot see, because the Tag Manager API does not show the dataLayer, and the assistant says so rather than guessing.
Does it work with server-side Tag Manager containers?
It lists and reads every container type the account can see, including server containers. The event trace and the consent audit are written for the web container, where the GA4 event tags and the Consent Mode set-up live.
Do I need a service account or an API key?
No. You sign in with Google once at app.datavessel.io, and the connector carries the access. Revoke it from your Google account whenever you want.
Can it tell me whether my consent banner is legally compliant?
No. The audit reports how the container is configured: whether a consent tag exists, whether it fires on Consent Initialization, which tags require which consent types. Whether that configuration meets the law in a given market is for your counsel and your consent platform.
What does it cost?
Tag Manager is a source like any other: free for one store, with your own AI key (Anthropic, OpenAI or Google), and no markup on tokens.
The bottom line
Tag Manager has never lacked tools for building containers. What it lacked was a way to read a container next to the numbers it produces, without exporting either. A read-only connector that sits beside GA4 gives you that: when a funnel step goes quiet, the assistant reads the step, the tag, the trigger and the dataLayer event it waits for, tells you whether the fix is already sitting unpublished, and stops there. Publishing stays yours.
Tag Manager, Analytics, Search Console and the store in one connector, reads free and every write behind your approval: the datavessel MCP server →

Leave a Reply