100+ integrations are ready to connect to your AI.Connect your first MCP

Google Ads MCP server for your AI

Pull spend and conversion data with a GAQL query, pause the campaigns burning budget, add negative keywords, or apply the recommendations worth applying — across every account one login reaches.

PopMCPGoogle Ads

Show me last week's spend, clicks and conversions by campaign for every account

Supported Google Ads tools

Every reporting query, mutate and account call the connection exposes, plus the change and threshold triggers PopMCP can watch for you.

google_ads_create_customer_client

Create a new client account under the connected account (the connected account must be a manager/MCC).

google_ads_list_accessible_customers

List the customer IDs (resource names) the authenticated user can access.

google_ads_mutate_customer

Update settings on the connected Google Ads account itself (CustomerService.MutateCustomer).

google_ads_apply_recommendation

Apply one or more Google Ads recommendations.

google_ads_dismiss_recommendation

Dismiss one or more Google Ads recommendations.

google_ads_generate_keyword_historical_metrics

Get historical search-volume metrics for a specific list of keywords (KeywordPlanIdeaService).

google_ads_generate_keyword_ideas

Generate keyword ideas with search-volume and competition data (KeywordPlanIdeaService).

google_ads_get_field

Get metadata for a single Google Ads field by name (e.g.

google_ads_mutate_ad_group_ads

Create, update, or remove ads within ad groups (AdGroupAdService).

google_ads_mutate_ad_group_criteria

Create, update, or remove ad-group-level criteria — keywords, audiences, and negative keywords.

google_ads_mutate_ads

Update the creative content of existing ads (AdService.MutateAds — update only).

google_ads_mutate_campaign_budgets

Create, update, or remove campaign budgets.

google_ads_mutate_campaign_criteria

Create, update, or remove campaign-level criteria — negative keywords, locations, languages, ad schedules, and audiences.

google_ads_mutate_campaigns

Create, update, or remove campaigns.

google_ads_search

Run a GAQL query against the account (paged).

google_ads_search_fields

Discover queryable fields, resources, metrics, and segments via a GAQL query over field metadata.

google_ads_search_stream

Run a GAQL query and stream the entire result set in one response (no paging).

google_ads_mutate

Universal batch mutate — create/update/remove across ANY services in one atomic call.

google_ads_mutate_ad_groups

Create, update, or remove ad groups.

google_ads_mutate_assets

Create or update assets (sitelinks, callouts, images, structured snippets, etc.).

google_ads_mutate_conversion_actions

Create, update, or remove conversion actions (conversion tracking definitions).

Connect Google Ads to your AI

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Google Ads side.

Supply your own OAuth Client ID, OAuth Client Secret and Developer Token, then authorize once with Google. Pick which accounts to connect and the workspace each belongs in — manager (MCC) trees resolve for you.

OAuth Client ID1234567890-abc.apps.googleusercontent.com
OAuth Client Secret••••••••••••3f7a
Developer Token••••••••••••3f7a
Authorize PopMCP on Google AdsAuthorize

Then just ask for the work

  • Show me last week's spend, clicks and conversions by campaign for every account

    • list_accessible_customers
    • search_stream
  • Pause every campaign with CPA over $80 and halve its daily budget

    • search
    • mutate_campaigns
    • mutate_campaign_budgets
  • Build a search campaign for our spring sale with a $200 daily budget

    • mutate_campaign_budgets
    • mutate_campaigns
    • mutate_ad_groups
    • mutate_ad_group_ads
  • Tell me which converting keywords sit in campaigns capped by daily budget

    • search_fields
    • search_stream

Use Google Ads from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Google Ads MCP server questions

What teams ask before putting Google Ads behind an AI client.

What do I need before I can connect Google Ads?

Your own Google OAuth client and a developer token. The connect form asks for an OAuth Client ID, an OAuth Client Secret and a Developer Token, then hands you to Google to authorize once. After the authorization you choose which accounts to connect and which workspace each one belongs in.

Do I have to look up my Customer ID or add each MCC sub-account by hand?

No. Manager (MCC) hierarchies are resolved during the connect flow, so there is no Customer ID to go and find. You pick the accounts you want from what the authorized login can reach, and list_accessible_customers shows your agent that same set later.

Can the agent actually change campaigns, or only report on them?

Both, and you choose which. With full access it can pause or edit campaigns through mutate_campaigns, move money with mutate_campaign_budgets, manage keywords and negatives with mutate_ad_group_criteria, and act on Google's suggestions with apply_recommendation or dismiss_recommendation. Set the connection to read-only and all of that goes away, leaving reporting; keep writes on with approval required and each change waits for your sign-off.

How does it answer a question no dedicated tool covers?

With GAQL. search runs a query against the account and pages through the results, while search_stream returns the entire result set in one response. When the agent does not know the field names, search_fields discovers queryable fields, resources, metrics and segments, and get_field returns metadata for a single field by name. Search-volume work takes a different route, through generate_keyword_ideas and generate_keyword_historical_metrics.

Why can't it create a new ad with mutate_ads?

mutate_ads maps to AdService.MutateAds, which is update-only — it changes the creative content of ads that already exist. New ads are created at the ad group level through mutate_ad_group_ads. When several changes need to land together, mutate is the universal batch call: create, update and remove across any services in one atomic call.

How much of the Google Ads API does this cover?

21 operations across 12 API modules, 7 read and 14 write, and all 21 load by default rather than hiding behind a search. The largest groups are Account, Recommendations, Planning, Metadata, Ads, Keywords, Campaigns and Reporting. There are also 14 triggers, split between change detection (campaign created, campaign status changed, ad disapproved, new search term) and thresholds (daily spend spiked, cost per conversion spiked, campaign stopped serving, impression share lost to budget).

Do I have to run or host the Google Ads MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 21 of the 21 tools load by default?

Loading 21 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 21-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 21 here. A trigger is something PopMCP watches for you: 14 Google Ads events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Google Ads.

Connect Google Ads to your AI in minutes

Launch a hosted MCP endpoint for Google Ads, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP