gtm-ga4-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GTM_GA4_MCP_DENY | No | Comma-separated list of tool names to disable, e.g., 'gtm_get,ga4_run_report'. Equivalent to passing --deny for each listed tool. | |
| GTM_GA4_MCP_ALLOW_WRITE | No | Set to '1' to enable the write tier tools (gtm_create, gtm_update, ga4_admin_create, ga4_admin_update). Equivalent to passing --allow-write. | 0 |
| GTM_GA4_MCP_ALLOW_DESTRUCTIVE | No | Set to '1' to enable the destructive tier tools (gtm_delete, gtm_publish, gtm_permissions, ga4_admin_delete). Equivalent to passing --allow-destructive. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ga4_account_summariesA | List every GA4 account and property the authenticated user can access. This is the entry point for all GA4 work — it returns the property IDs the other ga4_* tools need. |
| ga4_admin_listA | List a GA4 property's sub-entities. Covers data streams, key events, custom dimensions/metrics, Google Ads links, and Firebase links. |
| ga4_metadataA | List the dimension/metric API names available on a property (standard + custom). Use this before ga4_run_report to find exact API names. |
| ga4_property_getA | Fetch one GA4 property's full configuration (timezone, currency, industry, service level). |
| ga4_run_realtime_reportA | Run a GA4 realtime report (last 30 minutes) — e.g. to verify events are firing now. |
| ga4_run_reportA | Run a GA4 report over a date range and return one dict per row. Rows are keyed by the requested dimension/metric API names. |
| gtm_getA | Fetch one GTM entity's complete JSON by its path (tag, trigger, variable, version, ...). Note: fetching a version returns the entire published container (large). |
| gtm_listA | List Google Tag Manager entities one hierarchy level at a time. Returns trimmed summaries (path, name, type, IDs) to keep context small;
each item's |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
The GA4 and GTM tools are clearly separated by prefix and purpose. Within GA4, account discovery, property config, metadata, admin listing, and reporting are mostly distinct; the only slight overlap is between ga4_metadata and ga4_admin_list for custom dimensions/metrics.
All names use snake_case and share the ga4_/gtm_ prefixes, but the verb-noun pattern is inconsistent: some are noun phrases like ga4_account_summaries and ga4_metadata, while others are verb-led like ga4_run_report and gtm_get. This is readable but not a single predictable convention.
Eight tools is a reasonable size for a combined GA4+GTM server, and each tool covers a distinct read/query operation. The GTM side is slightly thin at only two tools, but the overall count is not excessive.
The GA4 surface covers discovery, property configuration, admin entity listing, metadata, standard reporting, and realtime reporting, which supports common analytics workflows. GTM is limited to get/list operations, so deeper management features are missing, but the server appears intentionally read-query oriented.