
Google Ads MCP server with Reddit Ads, GA4 and Tag Manager. Every change is previewed first.
Public tool metadata for what this MCP can expose to an agent.
health_checkTest OAuth, GA4, and Ads connectivity in one call — actionable error messages if anything is broken.Test OAuth, GA4, and Ads connectivity in one call — actionable error messages if anything is broken.
No parameter schema in public metadata yet.
get_account_summariesList GA4 accounts and propertiesList GA4 accounts and properties
No parameter schema in public metadata yet.
run_ga4_reportCustom reports: sessions, users, key events, page performance. Optional dimension and metric filters, ordering, paging, and a comparison periodCustom reports: sessions, users, key events, page performance. Optional dimension and metric filters, ordering, paging, and a comparison period
No parameter schema in public metadata yet.
run_realtime_reportLive data — verify tracking fires after deploysLive data — verify tracking fires after deploys
No parameter schema in public metadata yet.
get_tracking_eventsAll configured events and their volumeAll configured events and their volume
No parameter schema in public metadata yet.
list_key_eventsThe property's key events (conversions) with counting method, create time and whether they can be deletedThe property's key events (conversions) with counting method, create time and whether they can be deleted
No parameter schema in public metadata yet.
list_ga4_dimensions_and_metricsEvery dimension and metric the property can report on, including custom ones, with searchEvery dimension and metric the property can report on, including custom ones, with search
No parameter schema in public metadata yet.
list_accountsDiscover accessible Ads accountsDiscover accessible Ads accounts
No parameter schema in public metadata yet.
get_campaign_performanceCampaign metrics: impressions, clicks, cost, conversions, CPA, Search impression share and share lost to budget/rankCampaign metrics: impressions, clicks, cost, conversions, CPA, Search impression share and share lost to budget/rank
No parameter schema in public metadata yet.
get_ad_performanceAd copy analysis: headlines, descriptions, CTR, policy approval status and topicsAd copy analysis: headlines, descriptions, CTR, policy approval status and topics
No parameter schema in public metadata yet.
get_keyword_performanceKeywords — quality scores, competitive metricsKeywords — quality scores, competitive metrics
No parameter schema in public metadata yet.
get_search_termsWhat users actually searched before clickingWhat users actually searched before clicking
No parameter schema in public metadata yet.
get_negative_keywordsList direct campaign-level negative keywordsList direct campaign-level negative keywords
No parameter schema in public metadata yet.
get_negative_keyword_listsList all shared negative keyword lists (SharedSets) — names, IDs, status, keyword countList all shared negative keyword lists (SharedSets) — names, IDs, status, keyword count
No parameter schema in public metadata yet.
get_negative_keyword_list_keywordsList the keywords inside a specific shared negative keyword listList the keywords inside a specific shared negative keyword list
No parameter schema in public metadata yet.
get_negative_keyword_list_campaignsList which campaigns a shared negative keyword list is attached toList which campaigns a shared negative keyword list is attached to
No parameter schema in public metadata yet.
get_recommendationsGoogle's auto-generated recommendations with type, estimated impact, and campaign contextGoogle's auto-generated recommendations with type, estimated impact, and campaign context
No parameter schema in public metadata yet.
get_recommendation_subscriptionsWhich recommendation types Google applies automatically (auto-apply), with status and last change; flags any that are onWhich recommendation types Google applies automatically (auto-apply), with status and last change; flags any that are on
No parameter schema in public metadata yet.
get_pmax_performancePerformance Max campaign metrics with network breakdown + asset group ad strengthPerformance Max campaign metrics with network breakdown + asset group ad strength
No parameter schema in public metadata yet.
get_pmax_assetsPer-asset details for PMax — field type, serving status, contentPer-asset details for PMax — field type, serving status, content
No parameter schema in public metadata yet.
get_asset_group_signalsA PMax asset group's search themes and audience signal, plus the audiences available for itA PMax asset group's search themes and audience signal, plus the audiences available for it
No parameter schema in public metadata yet.
get_detailed_asset_performanceTop-performing asset combinations — which headline+description+image combos Google selects mostTop-performing asset combinations — which headline+description+image combos Google selects most
No parameter schema in public metadata yet.
get_audience_performanceAudience segment performance — remarketing, in-market, affinity, demographicsAudience segment performance — remarketing, in-market, affinity, demographics
No parameter schema in public metadata yet.
get_shopping_product_performanceSpend, conversions, CPA and ROAS per product across Shopping and Performance Max, plus products that spent without convertingSpend, conversions, CPA and ROAS per product across Shopping and Performance Max, plus products that spent without converting
No parameter schema in public metadata yet.
get_change_historyWhat changed before the drop: who changed what and when, through which client (UI, API, scripts, auto-applied recommendations), last 30 daysWhat changed before the drop: who changed what and when, through which client (UI, API, scripts, auto-applied recommendations), last 30 days
No parameter schema in public metadata yet.
get_demographic_targetingList demographic criteria (age/gender/parental status/income) on an ad group or campaignList demographic criteria (age/gender/parental status/income) on an ad group or campaign
No parameter schema in public metadata yet.
get_audience_listsThe account's remarketing and customer lists (size, eligibility, open/closed), custom and combined segmentsThe account's remarketing and customer lists (size, eligibility, open/closed), custom and combined segments
No parameter schema in public metadata yet.
search_audience_segmentsFind Google's in-market and affinity segments by nameFind Google's in-market and affinity segments by name
No parameter schema in public metadata yet.
get_audience_targetingAudiences and audience exclusions on a campaign or ad group, plus the audience mode (observation or targeting)Audiences and audience exclusions on a campaign or ad group, plus the audience mode (observation or targeting)
No parameter schema in public metadata yet.
suggest_brandsResolve a brand name to the brands Google recognizes — brand ID, name, state, URLsResolve a brand name to the brands Google recognizes — brand ID, name, state, URLs
No parameter schema in public metadata yet.
check_brand_namesCheck a shortlist of brand names against Google's brand knowledge graph (max 25 per call)Check a shortlist of brand names against Google's brand knowledge graph (max 25 per call)
No parameter schema in public metadata yet.
get_brand_listsList brand lists (SharedSets of type BRANDS) — ID, name, status, member countList brand lists (SharedSets of type BRANDS) — ID, name, status, member count
No parameter schema in public metadata yet.
get_brand_list_brandsList the brands inside a list, with the Commercial KG MID and the criterion ID for removalsList the brands inside a list, with the Commercial KG MID and the criterion ID for removals
No parameter schema in public metadata yet.
get_brand_list_campaignsWhich campaigns a brand list is attached to, and whether each attachment excludes or targetsWhich campaigns a brand list is attached to, and whether each attachment excludes or targets
No parameter schema in public metadata yet.
get_ai_max_settingsAI Max knobs per campaign and ad group — enable_ai_max, bundling_required, the full asset_automation_settings list and each ad group's disable_search_term_matchingAI Max knobs per campaign and ad group — enable_ai_max, bundling_required, the full asset_automation_settings list and each ad group's disable_search_term_matching
No parameter schema in public metadata yet.
get_campaign_settingsOne flat record per Search campaign — networks, location option, campaign-level broad match, bidding, budget, URL options and AI Max — with the settings that widen reach flaggedOne flat record per Search campaign — networks, location option, campaign-level broad match, bidding, budget, URL options and AI Max — with the settings that widen reach flagged
No parameter schema in public metadata yet.
get_custom_conversion_goalsCustom conversion goals with their actions, plus one campaign's goal configCustom conversion goals with their actions, plus one campaign's goal config
No parameter schema in public metadata yet.
run_gaqlArbitrary GAQL queries for anything elseArbitrary GAQL queries for anything else
No parameter schema in public metadata yet.
analyze_campaign_conversionsMaps Ads clicks → GA4 sessions → conversions per campaign. Detects GDPR consent gaps, computes real CPA, compares paid vs organic channels.Maps Ads clicks → GA4 sessions → conversions per campaign. Detects GDPR consent gaps, computes real CPA, compares paid vs organic channels.
No parameter schema in public metadata yet.
landing_page_analysisJoins ad final URLs with GA4 page data. Shows conversion rate, bounce rate, and engagement per landing page. Flags pages with paid traffic but zero conversions.Joins ad final URLs with GA4 page data. Shows conversion rate, bounce rate, and engagement per landing page. Flags pages with paid traffic but zero conversions.
No parameter schema in public metadata yet.
attribution_checkCompares Ads-reported conversions vs GA4 events. Diagnoses whether discrepancies are from GDPR consent, attribution windows, or broken tracking.Compares Ads-reported conversions vs GA4 events. Diagnoses whether discrepancies are from GDPR consent, attribution windows, or broken tracking.
No parameter schema in public metadata yet.
validate_trackingCompare event names found in your codebase against what GA4 actually records. Returns matched, missing, and unexpected events with diagnostics.Compare event names found in your codebase against what GA4 actually records. Returns matched, missing, and unexpected events with diagnostics.
No parameter schema in public metadata yet.
generate_tracking_codeGenerate ready-to-paste GA4 gtag JavaScript for any event, with recommended parameters for well-known events (sign_up, purchase, etc.) and optional trigger wrappers.Generate ready-to-paste GA4 gtag JavaScript for any event, with recommended parameters for well-known events (sign_up, purchase, etc.) and optional trigger wrappers.
No parameter schema in public metadata yet.
audit_event_coverageThree-way join: codebase events ↔ GTM tags ↔ GA4 actual fires. For each event name in expected_events, returns one of 10 statuses plus auto-generated insights for the gaps.Three-way join: codebase events ↔ GTM tags ↔ GA4 actual fires. For each event name in expected_events, returns one of 10 statuses plus auto-generated insights for the gaps.
No parameter schema in public metadata yet.
list_gtm_accountsDiscover accessible GTM accountsDiscover accessible GTM accounts
No parameter schema in public metadata yet.
list_gtm_containersList containers under an account — returns numeric container_id, public GTM-XXXXXXX ID, and usage context (web/iOS/Android/server)List containers under an account — returns numeric container_id, public GTM-XXXXXXX ID, and usage context (web/iOS/Android/server)
No parameter schema in public metadata yet.
list_gtm_tagsEvery tag in the live container with parsed event names and resolved firing/blocking trigger names. Pass workspace_id to read a workspace's unpublished state insteadEvery tag in the live container with parsed event names and resolved firing/blocking trigger names. Pass workspace_id to read a workspace's unpublished state instead
No parameter schema in public metadata yet.
get_gtm_tagFull raw config for a single tag — every parameter, firing/blocking triggers with filter conditions, priority, pause status, samplingFull raw config for a single tag — every parameter, firing/blocking triggers with filter conditions, priority, pause status, sampling
No parameter schema in public metadata yet.
list_gtm_triggersEvery trigger with filter conditions parsed to readable text. Renders the negate flag explicitly.Every trigger with filter conditions parsed to readable text. Renders the negate flag explicitly.
No parameter schema in public metadata yet.
get_gtm_triggerFull trigger config + reverse lookup of every tag that uses it, including parsed element_visibility block for elementVisibility triggersFull trigger config + reverse lookup of every tag that uses it, including parsed element_visibility block for elementVisibility triggers
No parameter schema in public metadata yet.
Sponsors
The Google Ads MCP server for Claude, ChatGPT and Cursor.
Plus Reddit Ads, GA4 and your tracking code, with a preview before every change.
adloop