Skip to content
Get MCP AdsGet MCP Ads, home

MCP server

Google Ads MCP Server

Raw GAQL, search terms, Shopping, Performance Max diagnostics, change history.
https://mcp.getmcpads.com/google-ads/mcp
Start free

This endpoint serves Google Ads on its own. One shared URL reaches every platform you connect.

45
Tools
10
That write
130
Metrics
84
Dimensions

Ask it

What you can ask it.

Real questions, with the tools each one resolves to. Every tool named below is in the catalogue on this page.

6 questions

One exchange

You type the sentence into your assistant. Google Ads answers through the tools named here, and nothing else is called.

Every question, every platform

Claude

“Show me search terms we paid for last month that we would never have bid on.”

Resolves to3 tools
  • google_ads_get_search_terms
  • google_ads_get_keyword_performance
  • google_ads_get_budgets

Pulls the search term report, joins it to keyword performance, and lists spend against terms with no conversion and no match to your keyword set.

5 more

Is any Performance Max campaign spending without the ad strength to justify it?

Reads asset group diagnostics, ad strength, coverage action items and placement types, then ranks campaigns by spend over asset health.

google_ads_get_pmax_asset_diagnosticsgoogle_ads_get_pmax_placementsgoogle_ads_get_pmax_assets

Who changed what in this Google Ads account in the last two weeks?

Reads the change event log inside the 30-day window Google allows, with the actor, the resource and the field that moved.

google_ads_get_change_eventsgoogle_ads_get_campaigns

Spend, CPA and ROAS by campaign across all four platforms, last 7 days against the 7 before.

One request, four APIs. Each platform's insights tool plans its own query, then the assistant lines the rows up in a single table.

meta_get_insightsgoogle_ads_get_insightstiktok_get_insightspinterest_run_report

Which Shopping products take spend and return nothing?

Joins Shopping performance to the Merchant Center catalogue by item ID, brand and custom label, so the answer names products rather than IDs.

google_ads_get_shopping_performancegoogle_ads_get_shopping_products

Cut the daily budget on the three worst Google campaigns by 30 percent.

Resolves the campaign budget IDs, computes the new amounts in the account currency, and shows them to you before writing anything.

google_ads_get_budgetsgoogle_ads_get_campaignsgoogle_ads_update_campaign_budget

The ledger

Every Google Ads tool, as the gateway ships it.

Each description is the one the tool reports to your assistant during discovery, which is what it reads before deciding to call it.

10 write

What it can change: Pause, resume or remove a campaign or ad group. Rename a campaign, change its dates, change a daily budget or an ad group CPC bid. Create a campaign, always paused. Every write previews first.

45 tools

  • google_ads_apply_planwrite

    Preview, validate and atomically apply a Google Ads v25 build/change plan: campaigns, budgets, ad groups, RSA/Display/Demand Gen ads, image/text/YouTube assets, PMax asset groups and links, keywords, geographic/language targeting listing groups and conversion action configuration (no conversion event uploads). Native REST camelCase fields; amounts are integer micros of the explicitly stated currency. Supports temporary negative resource IDs for ordered creation in one transaction. No VIDEO campaign creation (Google API restriction), billing, account access changes, customer lists or conversion uploads. New campaigns/groups/ads are always PAUSED. Call first without confirm to inspect the plan and get planHash; validateOnly asks Google without applying; execution requires confirm and the matching expectedPlanHash. Read back results with google_ads_run_gaql. Never retry a creation after an uncertain network result before checking its name/IDs.

  • google_ads_create_campaignwrite

    Create a Google Ads campaign. It is always created PAUSED and there is no option to create it active: someone has to look at it before it spends. Creates the campaign budget too. Previews by default.

  • google_ads_generate_ad_group_themes

    Organize supplied keywords into existing Google Ads ad groups. Returns suggested ad group/campaign pairings, normalized keyword text, and suggested match type without creating or editing keywords. Read-only Keyword Planner RPC.

  • google_ads_generate_keyword_forecast_metrics

    Forecast impressions, clicks, CTR, CPC, cost, conversions, and CPA for a temporary keyword campaign. Supports targeting, negatives, match type, three bidding strategies, explicit future dates, and an optional independent per-keyword breakdown. This read-only planless RPC does not create a campaign or saved plan.

  • google_ads_generate_keyword_historical_metrics

    Get Keyword Planner search-volume history for supplied keywords. Returns average monthly searches, monthly volumes (up to 48 months), latest volume, computed 3-month and YoY changes, competition, CPC/bid ranges, close variants, and optional device totals. This is a read-only planless RPC.

  • google_ads_generate_keyword_ideas

    Discover Keyword Planner ideas from up to 20 seed keywords, a URL, keywords plus URL, or a whole site. Returns historical volume, monthly trends, computed 3-month/YoY changes, competition, bids, close variants, optional concepts, and pagination. Read-only; no plan is saved.

  • google_ads_get_account_details

    Get detailed information for a specific Google Ads customer account.

  • google_ads_get_account_hierarchy

    List accessible customers and, where possible, manager/client relationships from GAQL customer_client. Falls back to accessible customers if hierarchy queries are unavailable.

  • google_ads_get_adgroups

    List ad groups for a Google Ads account, optionally filtered by campaign.

  • google_ads_get_bidding_strategies

    List portfolio bidding strategies. Includes metrics only when startDate/endDate are provided; otherwise returns structure only.

  • google_ads_get_budgets

    List campaign budgets with amount, status, delivery method, and recommended budget fields when supported.

  • google_ads_get_campaigns

    List campaigns for a Google Ads account with status, budget, channel type, and bidding strategy.

  • google_ads_get_change_events

    Fetch recent change_event rows. Enforces Google Ads constraints: date window within the last 30 days and LIMIT <= 10000.

  • google_ads_get_conversion_actions

    List conversion actions with status, type, category, primary/include-in-conversions flags, owner customer, and last activity dates when supported.

  • google_ads_get_demand_gen_assets

    List Demand Gen ads (video responsive, multi-asset, carousel) with their referenced creatives resolved: stable image URLs and YouTube video IDs with embed and thumbnail URLs. Complements google_ads_get_pmax_assets, which covers Performance Max.

  • google_ads_get_insights

    Query Google Ads performance insights with intelligent query planning. Auto-generates GAQL, handles metric/segment incompatibilities by splitting queries. Use google-ads://metrics for available metrics, google-ads://dimensions for dimensions.

  • google_ads_get_keyword_performance

    Get keyword-level performance data from keyword_view resource. Shows quality score, impressions, clicks, cost.

  • google_ads_get_landing_pages

    Fetch landing_page_view performance with final URL, campaign/ad group context, traffic, conversion, and landing-page quality metrics when supported.

  • google_ads_get_paid_organic_search_terms

    Read-only paid/organic search terms report. Uses paid_organic_search_term_view when available and falls back to paid-only search_term_view if organic fields are unavailable.

  • google_ads_get_pmax_asset_diagnostics

    Read-only Performance Max asset group diagnostics. Returns ad strength, asset coverage action items, primary status reasons, optional performance metrics, and optional top asset combinations.

  • google_ads_get_pmax_assets

    List Performance Max asset group assets from asset_group_asset with asset group/campaign context and optional date-range performance metrics.

  • google_ads_get_pmax_placements

    Read-only Performance Max placement diagnostics from performance_max_placement_view. Returns placement type, display name, target URL, campaign context, and impressions only.

  • google_ads_get_recommendations

    List Google Ads recommendations with type, resource, campaign/ad group links, dismissed state, and impact when supported.

  • google_ads_get_search_terms

    Fetch search term performance from search_term_view or campaign_search_term_insight depending on reportType.

  • google_ads_get_shopping_performance

    Read-only Shopping performance report keyed by Merchant Center product dimensions. Useful for joining spend/conversions to merchant ID, item ID, title, brand, feed label, and custom labels.

  • google_ads_get_shopping_products

    Read-only Merchant Center product catalog/eligibility report via shopping_product. Supports account, campaign, and ad group scopes with performance metrics when the account has Shopping/PMax e-commerce data.

  • google_ads_get_simulations

    Read-only planning/forecast query for campaign, ad group, or portfolio bidding simulations. Returns simulation metadata and projected point lists when available, with a metadata fallback.

  • google_ads_get_video_upload

    Read the processing state and YouTube video ID of one Google Ads upload in the selected customer. Use only the returned videoId after state=PROCESSED. This is a read; it does not upload again.

  • google_ads_health_check

    Read-only connectivity check. Verifies credential presence, Google Ads API access, login customer visibility, API version, and actionable warnings without returning secrets.

  • google_ads_list_accounts

    List Google Ads customer accounts accessible with the current credentials. If an accessible customer is a manager account, also attempts to include enabled child accounts from customer_client.

  • google_ads_list_image_assets

    List the account's image asset library (FROM asset) with stable, publicly served full-size URLs on tpc.googlesyndication.com, dimensions, file size, and mime type. This is the whole stock and carries no notion of delivery: an asset uploaded in 2022 and never served appears exactly like one running today. Newest first, so a limit returns recent assets rather than an arbitrary slice, and the count in the response is the account total. For a visual-only gallery of assets with delivery over dates, use get_creative_gallery (Performance Max coverage). Request get_creative_performance only when KPI cards are wanted. Shopping product imagery lives in Merchant Center, not in this library.

  • google_ads_list_video_assets

    List the account's YouTube video assets (FROM asset) with derived watch, embed, and public thumbnail URLs. This is the whole stock and carries no notion of delivery: an asset uploaded years ago and never served appears exactly like one running today. Newest first, so a limit returns recent assets rather than an arbitrary slice, and the count in the response is the account total. For a visual-only gallery of assets with delivery over dates, use get_creative_gallery (Performance Max coverage). Request get_creative_performance only when KPI cards are wanted. Google Ads exposes no downloadable video file: PMax and Demand Gen videos are hosted on YouTube, so display them via embed or thumbnails.

  • google_ads_remove_video_uploadwrite

    Remove a video upload owned by the selected ad account. Deletes the uploaded YouTube video and can break ads referencing it. Preview and matching expectedPlanHash required. Google v25 marks title/description immutable; this tool does not pretend to edit them.

  • google_ads_rename_campaignwrite

    Rename a Google Ads campaign. The name is the only thing that changes: delivery, budget and targeting are untouched. Previews by default.

  • google_ads_run_gaql

    Execute a raw GAQL (Google Ads Query Language) query. Full flexibility for any reporting need. Example: SELECT campaign.name, metrics.impressions FROM campaign WHERE campaign.status = 'ENABLED' AND segments.date DURING LAST_30_DAYS ORDER BY metrics.impressions DESC LIMIT 100.

  • google_ads_run_readonly_rpc

    Advanced read-only escape hatch for allowlisted Google Ads services outside GAQL: Audience Insights, Reach Planner, benchmarks, creator/trending insights, targeting suggestions, Smart Campaign suggestions, identity verification, invoices, and payments accounts. The operation is an enum; arbitrary paths and all mutations/uploads are impossible.

  • google_ads_search_fields

    Search Google's live GoogleAdsField catalog. Discovers every queryable GAQL resource, attribute, segment, metric, enum value, and selectable-with compatibility relationship. Read-only and useful before a raw GAQL query.

  • google_ads_suggest_geo_targets

    Resolve up to 25 location names or geo target IDs to Google Ads geoTargetConstants. Returns criterion IDs, canonical names, target types, status, parents, locale, and approximate reach. Read-only.

  • google_ads_update_adgroup_bidwrite

    Change the default CPC bid of a Google Ads ad group. The amount is in the account currency (1.20 for 1.20 EUR). Has no effect on a campaign using an automated bidding strategy. Previews by default.

  • google_ads_update_adgroup_statuswrite

    Pause, re-enable or remove a Google Ads ad group. Previews by default.

  • google_ads_update_campaign_budgetwrite

    Change the daily budget of a Google Ads campaign. The amount is in the account currency (12.50 for 12.50 EUR). Previews by default.

  • google_ads_update_campaign_schedulewrite

    Change the start or end date of a Google Ads campaign. Dates are YYYY-MM-DD in the account time zone. Previews by default.

  • google_ads_update_campaign_statuswrite

    Pause, re-enable or remove a Google Ads campaign. Previews by default: without confirm: true, the tool describes the change without applying it.

  • google_ads_upload_videowrite

    Upload MP4/WebM/QuickTime bytes (max 16 MiB) to the Google-managed YouTube channel for the selected ad account. Visibility is UNLISTED: viewable by anyone with the link, not private. Default preview omits bytes and returns planHash; confirm requires expectedPlanHash. This API has no validateOnly. After upload, query you_tube_video_upload.state and video_id with google_ads_run_gaql; only use the video ID after PROCESSED, via google_ads_apply_plan assetOperation.youtubeVideoAsset. No automatic retry after an uncertain upload.

  • google_ads_validate_query

    Validate metric/dimension/resource compatibility BEFORE executing a query. Checks segment restrictions and resource availability.

Catalogues

What you can measure, and how you can cut it.

The full catalogues live in the reference, where every entry carries the API field it maps to and the constraints that come with it. Here is their shape.

Metrics

130

Conversion
28
Video
21
Core
18
Calculated
13
Impression share
13
Shopping
10
Spend
7
Competitive
6
Engagement
6
Quality
5
Invalid traffic
2
Cross device
1

All 130 metrics

Dimensions

84

Shopping
26
Entity
19
Bidding
9
Time
7
Budget
5
Conversion
4
Geographic
3
Interaction
3
Campaign type
2
Demographic
2
Device
2
Ad format
1
Network
1

All 84 dimensions

Open source

Or run Google Ads yourself.

This server is published under Apache 2.0. Read every line, fork it, or run it on your own machine with your own credentials. Nothing is proxied through us.
npx -y @getmcpads/google-ads-mcp-server
MCP Registry
com.getmcpads/google-ads
Licence
Apache 2.0