MCP server
Google Ads MCP Server
https://mcp.getmcpads.com/google-ads/mcpThis 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.
6 questions
One exchange
You type the sentence into your assistant. Google Ads answers through the tools named here, and nothing else is called.
“Show me search terms we paid for last month that we would never have bid on.”
- 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_assetsWho 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_campaignsSpend, 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_reportWhich 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_productsCut 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_budgetPlaybooks
The work it does every week.
- Find wasted search spendSearch terms nobody would have bid on, with the spend beside them.
- Audit an ad accountSpend, delivery and recent changes, read in one turn instead of four exports.
- One table, every platformFour ad platforms and two analytics sources, lined up in one answer.
- Move budget safelyBudget changes that preview first and need a second, explicit call.
- Let an assistant make changesPreview, confirm, always paused on creation, and no deletion at all.
The ledger
Every Google Ads tool, as the gateway ships 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_planwritePreview, 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_campaignwriteCreate 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_themesOrganize 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_metricsForecast 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_metricsGet 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_ideasDiscover 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_detailsGet detailed information for a specific Google Ads customer account.
google_ads_get_account_hierarchyList 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_adgroupsList ad groups for a Google Ads account, optionally filtered by campaign.
google_ads_get_bidding_strategiesList portfolio bidding strategies. Includes metrics only when startDate/endDate are provided; otherwise returns structure only.
google_ads_get_budgetsList campaign budgets with amount, status, delivery method, and recommended budget fields when supported.
google_ads_get_campaignsList campaigns for a Google Ads account with status, budget, channel type, and bidding strategy.
google_ads_get_change_eventsFetch recent change_event rows. Enforces Google Ads constraints: date window within the last 30 days and LIMIT <= 10000.
google_ads_get_conversion_actionsList conversion actions with status, type, category, primary/include-in-conversions flags, owner customer, and last activity dates when supported.
google_ads_get_demand_gen_assetsList 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_insightsQuery 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_performanceGet keyword-level performance data from keyword_view resource. Shows quality score, impressions, clicks, cost.
google_ads_get_landing_pagesFetch 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_termsRead-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_diagnosticsRead-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_assetsList Performance Max asset group assets from asset_group_asset with asset group/campaign context and optional date-range performance metrics.
google_ads_get_pmax_placementsRead-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_recommendationsList Google Ads recommendations with type, resource, campaign/ad group links, dismissed state, and impact when supported.
google_ads_get_search_termsFetch search term performance from search_term_view or campaign_search_term_insight depending on reportType.
google_ads_get_shopping_performanceRead-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_productsRead-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_simulationsRead-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_uploadRead 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_checkRead-only connectivity check. Verifies credential presence, Google Ads API access, login customer visibility, API version, and actionable warnings without returning secrets.
google_ads_list_accountsList 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_assetsList 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_assetsList 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_uploadwriteRemove 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_campaignwriteRename a Google Ads campaign. The name is the only thing that changes: delivery, budget and targeting are untouched. Previews by default.
google_ads_run_gaqlExecute 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_rpcAdvanced 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_fieldsSearch 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_targetsResolve 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_bidwriteChange 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_statuswritePause, re-enable or remove a Google Ads ad group. Previews by default.
google_ads_update_campaign_budgetwriteChange 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_schedulewriteChange 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_statuswritePause, 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_videowriteUpload 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_queryValidate 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.
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
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
Open source
Or run Google Ads yourself.
npx -y @getmcpads/google-ads-mcp-server- Smithery
- Google Ads on Smithery
- MCP Registry
- com.getmcpads/google-ads
- Licence
- Apache 2.0
Reference