Full Google Ads, Analytics & Tag Manager lifecycle MCP for AI agents β 57 tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Ainative Gtm MCP.
gtm_list_accountsList all accessible GTM accounts
gtm_list_containersList containers in an account
gtm_get_containerGet container details
gtm_list_tagsList all tags in a workspace
gtm_get_tagGet full tag configuration
gtm_update_tagUpdate a tag (trigger, params, name)
Google Tag Manager and Google Ads MCP server β audit, fix, and manage GTM containers and Google Ads campaigns, budgets, conversions, placements, geo targeting, and auto-apply recommendations from AI agents (Claude, Cursor, and any MCP client).
Part of the AINative open-source tools.
57 tools across 7 categories: accounts, tags, triggers, audit, versions/publishing, and a complete Google Ads lifecycle (39 tools) β build, publish, track, and adjust campaigns end-to-end: create campaigns/ad groups/RSAs/RDAs/HTML5 ads, Performance Max, bidding strategy & bid control, ad extensions (sitelinks/callouts/snippets/call), audiences, offline gclid conversion import, geo/language targeting, budgets, placements, and auto-apply recommendations β fully programmatic, no UI required.
Keywords: google tag manager mcp, google ads mcp, gtm mcp server, google ads api mcp, conversion tracking mcp, campaign budget management, negative placement / click-fraud exclusion, geo targeting, auto-apply recommendations, recommendation subscriptions, conversion goals, Smart Bidding, PPC automation, ad spend control, Claude MCP, model context protocol, AI agent advertising tools.
The server authenticates via a Google Cloud service account with Tag Manager API access. There is no browser OAuth flow β it's designed for headless/agent use.
tagmanager.googleapis.com) and click Enablegtm-mcp-agent)This is the step most people miss. The GCP service account needs to be added as a user inside Google Tag Manager separately:
gtm-mcp-agent@your-project.iam.gserviceaccount.com)Note: If you only need read access (auditing), Read permission is sufficient.
Or add a .mcp.json to your project root:
Security: Add
.mcp.jsonto.gitignoreif it contains key paths. Use.mcp.example.jsonas a template for teammates.
Ask Claude:
Expected: your GTM account name and ID. If you get an empty array [], the service account hasn't been added to GTM yet (Step 3 above).
This MCP server manages Google Tag Manager containers β tags, triggers, variables, and publishing.
If you see events like ads_conversion_PURCHASE_1 in GA4, those may be coming from Google Ads auto-imported conversions (via GA4 β Google Ads account linking), not GTM tags. In that case:
gtm_find_misfiring_conversion_tags to fix itTo tell the difference: if your GTM container has no tags (gtm_list_tags returns []), the conversion event is coming from outside GTM.
The most common GTM billing issue β a Google Ads conversion tag fires on every page view instead of only on purchase confirmation.
| Tool | Description |
|---|---|
gtm_list_accounts | List all accessible GTM accounts |
gtm_list_containers | List containers in an account |
gtm_get_container | Get container details |
| Tool | Description |
|---|---|
gtm_list_tags | List all tags in a workspace |
gtm_get_tag | Get full tag configuration |
gtm_update_tag | Update a tag (trigger, params, name) |
gtm_delete_tag | Delete a tag |
| Tool | Description |
|---|---|
gtm_list_triggers | List all triggers |
gtm_get_trigger | Get trigger configuration |
gtm_create_trigger | Create a new trigger |
gtm_update_trigger | Update an existing trigger |
| Tool | Description |
|---|---|
gtm_audit_container | Full container audit β health score 0β100, issues list |
gtm_find_misfiring_conversion_tags | Find conversion tags firing on All Pages instead of specific events |
gtm_fix_conversion_tag_trigger | Fix a misfiring tag β creates scoped Custom Event trigger, rewires tag |
| Tool | Description |
|---|---|
gtm_list_workspaces | List workspaces |
gtm_get_workspace_status | View pending changes before publishing |
gtm_create_version | Create a named version from workspace changes |
gtm_publish | Publish workspace to live |
Full programmatic campaign lifecycle β an agent can build, launch, measure, and optimize a campaign end-to-end with no UI.
Build (campaigns, ad groups, ads, assets)
| Tool | Description |
|---|---|
gads_create_campaign | Create a Search/Display campaign with a dedicated budget + correct network settings |
gads_create_pmax_campaign | One-call Performance Max builder β campaign + budget + asset group (headlines, descriptions, images, logo) in a single call; Google's AI optimizes across Search/Display/YouTube/Gmail |
gads_create_ad_group | Create an ad group inside a campaign |
gads_create_responsive_search_ad | Create an RSA (3β15 headlines, 2β4 descriptions, length-validated) |
gads_create_responsive_display_ad | Create a responsive display ad |
gads_create_html5_ad | Create an HTML5 upload (animated) display ad from a media bundle |
gads_upload_image_asset | Upload an image asset by URL |
gads_upload_media_bundle | Upload an HTML5 media-bundle (zip) asset |
Bidding & bids
| Tool | Description |
|---|---|
gads_set_bidding_strategy | Swap bidding strategy (Maximize Clicks / Maximize Conversions / Target CPA / Target ROAS / Manual CPC) β reads back the change to confirm it landed (empty-payload swaps silently no-op) |
gads_set_ad_group_bid | Set an ad group's default max CPC bid |
gads_set_keyword_bid | Set a specific keyword's max CPC bid |
Ad control
| Tool | Description |
|---|---|
gads_set_ad_status | Pause / enable / remove an individual ad |
gads_request_ad_review | Request re-review (appeal) of a disapproved/limited ad where API-appealable; honest result for UI-only policy topics |
Ad extensions (assets)
| Tool | Description |
|---|---|
gads_add_sitelink | Create + attach a sitelink |
gads_add_callout | Create + attach a callout (e.g. "7-Day Free Trial") |
gads_add_structured_snippet | Create + attach a structured snippet |
gads_add_call_extension | Create + attach a call (phone) extension |
Audiences & conversions (attribution)
| Tool | Description |
|---|---|
gads_add_audience_to_ad_group | Attach a user-list audience (observation or targeting) |
gads_create_conversion_action | Create an offline (UPLOAD_CLICKS) conversion action for gclid import |
gads_upload_click_conversion | Upload an offline conversion keyed by gclid β ties a real signup back to the ad click that drove it |
Conversions & reporting
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ainative-gtm-mcp)<a href="https://allmcps.com/mcp/ainative-gtm-mcp"><img src="https://allmcps.com/api/badge/ainative-gtm-mcp?style=directory" alt="Ainative Gtm MCP on AllMCPs" /></a>