Marketing

Google Ads MCP Server

Connect your account, then chat with AI to run tools.

Research keywords, audit client accounts, clean search terms, and manage campaigns from chat — including agency logins where one Google sign-in reaches dozens of client accounts under a manager account.

Best forPPC AgenciesPerformance MarketingIn-House Paid SearchGrowth

Try this workflow

Find a client by name

Find the Google Ads account for Bright Smile Co in my connected accounts, then show last 30 days spend summary and top campaigns.

Managed
Interactive app
46 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

What you can do with Google Ads

Built for

PPC Agencies, Performance Marketing Teams, In-House Paid Search, Growth Teams, Multi-Client Account Managers

Example workflows

Find a client by name

Agency-first flow: name the client, confirm the account, then read performance.

Try this

Find the Google Ads account for Bright Smile Co in my connected accounts, then show last 30 days spend summary and top campaigns.

Monday client triage

Typical agency standup: pick the client, diagnose spend and edits in one thread.

Try this

For Riverside Dental, review budget pacing and flag campaigns overspending in the last 7 days. Summarize what changed recently.

Find keyword opportunities

Turns keyword research into a structured campaign planning brief.

Try this

Use Google Ads keyword ideas and keyword volume to find search terms for a B2B SaaS campaign, then group them by intent, CPC range, and competition level.

Clean search terms

Maps search-term waste into concrete optimization actions per client.

Try this

Analyze recent search terms for this client account, identify irrelevant queries that should be negative keywords, and explain whether each should be campaign-level or ad-group-level.

Context to know first

What Google Ads work can MCPBundles do?

It can inspect accounts, campaigns, ad groups, keywords, ads, search terms, budgets, geo/device/schedule performance, change history, and custom queries when you need fields the standard reports omit. Supported write workflows include campaign, ad group, keyword, ad, negative-keyword, budget, and bid changes.

How do agency logins pick the right client account?

Name the client in chat. When the match is clear, the AI works on that account. When two names are close, it asks you to choose. For browsing many clients, ask for a filtered account list. Manager-account routing is handled after you connect Google — you do not configure it per client.

Can agents create campaigns safely?

Campaign creation defaults to a safe planning flow: create budgets, campaigns, ad groups, keywords, and responsive search ads with explicit inputs, then keep campaigns paused until the user chooses to enable them.

Related editorial

Google Ads for Agencies with AI

Name the client in chat, confirm the account, and run spend and search-term reports without clicking through the manager account tree.

Read article

AI Skill
SKILL.md

Domain knowledge for Google Ads — workflow patterns, data models, and gotchas for your AI agent.

Google Ads

Hierarchy: Account → Campaign (+Budget) → Ad Group → Keywords/Ads. Resolve account_id before any account-scoped call.

Multi-account (MCC)

One OAuth login can reach many client accounts under manager accounts.

Resolve first: (1) User names a client → search by name or ID fragment. (2) Single match → use that account_id; do not re-list. (3) Multiple matches → show list, user picks — never guess. (4) User gives an ID → use it unless account-not-found. (5) Do not auto-pick when default scope is unset.

Browse vs resolve: name search when one client was named; paginated account list only for exploration. Refresh discovery after linked/removed clients or MCC routing changes. Missing-ID errors include suggested_accounts — narrow by name before browsing all.

Interactive browse + detail panels

Two MCP App surfaces mount alongside chat:

  • Browse (ui://google-ads/browse) — Studio home (google_ads_open_app), account pick, pulse, campaigns, search terms. Campaign cards open detail in a local overlay via callTool(get_campaign_performance).
  • Detail (ui://google-ads/detail) — agent mount for one campaign's trend + device breakdown.

Studio open: google_ads_open_app — not google_ads_list_accounts. Home offers tool chips (load pulse, campaigns, browse accounts) and chat prompts.

When the panel is open, read tools with ui.resourceUri forward results to the iframe — do not re-call the same read only to refresh the UI. Call the read that owns the data (google_ads_get_account_summary for pulse, google_ads_get_search_terms for search terms, etc.); the widget routes on panel_view. Account selection uses google_ads_select_account (chat-visible).

Start here after account resolve: google_ads_get_account_summary · then drill with campaigns, keywords, search terms, pacing, or geo as needed.

Workflows

Research: keyword ideas from seed keywords, a page URL, or an entire domain (site — competitor Keyword Planner mode) · volume, CPC, competition for exact terms (up to 10k keywords per volume call). Read: account summary · budget pacing · keywords · ads · ad policy/disapprovals · search terms · geo/device/schedule · change history · custom GAQL · web UI deep links (open overview, keywords, search terms in ads.google.com). Write: create campaign (default PAUSED) → ad group → keywords → RSA → enable campaign; pause/enable one ad group; update budget/bids; add negatives; upload image assets (Search image extensions via google_ads_create_image_asset). Delete: campaign (cascades ad groups/ads, not budget) · ad group · keywords · orphaned budgets (reference_count=0 via GAQL).

RSAs

3–15 headlines (≤30 chars), 2–4 descriptions (≤90). Good+ strength: 11+ headlines, 4 descriptions, zero pins, ad-group keywords in 2–3 headlines, diverse lines (features/benefits/CTAs — not synonyms). Replace by remove + create new RSA.

Strength drivers: unpinned assets; keywords in headlines; headline diversity (15 similar lines → Poor); sitelinks help. Pinning can help real CTR despite lower score.

Policy & disapprovals

Three independent signals — do not conflate:

  • approval_status — APPROVED/DISAPPROVED; compliance gate; blocks serving.
  • ad_strength — Poor→Excellent; recommendation only; weak CTR/CPC correlation; often PENDING for a few minutes after create before scoring.
  • UI "Not eligible" — usually PAUSED campaign/ad group, not a disapproval.

For disapprovals use ad policy status (approval, review, policy topics, strength, final URLs, RSA text). The performance-oriented ads report omits policy fields. GAQL nested fields need format="json"; format="table" may break on policy_summary.

DESTINATION_NOT_WORKING when the URL is live = stale crawl timestamp:

  1. List disapproved ads (filter DISAPPROVED).
  2. Confirm each final URL returns 2xx (AdsBot user-agent or browser).
  3. Remove ad → recreate RSA (same copy/URL) with ignore_destination_check=true.
  4. Poll policy status — REVIEW_IN_PROGRESS / UNKNOWNAPPROVED typically within ~15 minutes; multi-hour stalls usually mean destination crawl issues, not normal queue time.

ignore_destination_check applies at create only; cannot patch or API-appeal existing ads (Policy Manager appeals are UI-only).

Reference

  • Micros: 1,000,000 = $1. Reads auto-convert; bid writes use micros, budgets use currency.
  • Match types: BROAD/PHRASE/EXACT for positives and negatives. Campaign-level negatives block all ad groups; ad-group negatives scope one slice.
  • Dates: search terms and change history do not support TODAY — use YESTERDAY+.
  • MCC: query child accounts (manager: true), not the manager account; login_customer_id for sub-accounts under MCC.
  • developer_token: platform-level, not per-user credential.
  • Remove is permanent — PAUSE for temporary stops. Removing a campaign does not remove its budget.

Tools in this Server (46)

Google Ads Add Keywords

Add keywords to a Google Ads ad group. Provide an array of keywords with text and match type (BROAD, PHRASE, EXACT). Optionally set a CPC bid per keyw...

Google Ads Add Negative Keywords

Add negative keywords to block unwanted search queries from triggering ads. Add at campaign level (blocks across all ad groups) or ad group level (blo...

Google Ads Apply Recommendation

Apply Google Ads optimization recommendations by resource_name. List candidates first with google_ads_list_recommendations. For budget recommendations...

Google Ads Create Ad Group

Create a new ad group under a Google Ads campaign. Set a default CPC bid that applies to all keywords in the group (keywords can override individually...

Google Ads Create Asset

Create an ad extension asset (sitelink, callout, or structured snippet) and link it at account level. Sitelinks add clickable links below ads. Callout...

Google Ads Create Campaign

Create a new Google Ads campaign with budget and bidding strategy. Creates the budget and campaign in one call. Defaults to PAUSED status so you can r...

Google Ads Create Conversion

Create a conversion action in Google Ads. Conversion actions define what counts as a conversion (signup, purchase, lead, etc.). After creation, use go...

Google Ads Create Image Asset

Upload an image to Google Ads and link it as an image extension. Accepts a public https image_url or image_base64 (max 5 MB). Defaults to AD_IMAGE at ...

Google Ads Create Rsa Ad

Create a Responsive Search Ad (RSA) in a Google Ads ad group. RSAs are the standard Search ad format — provide 3-15 headlines (max 30 chars each) and ...

Google Ads Dismiss Recommendation

Dismiss Google Ads optimization recommendations so they no longer appear in the account. Use google_ads_list_recommendations to obtain resource_name v...

Google Ads Find Accounts

Resolve a Google Ads client account from a name fragment or account ID. Returns ranked matches and, when unambiguous, a resolved account_id to use wit...

Google Ads Get Account Summary

Get an account-level performance summary for a Google Ads account. Returns total clicks, impressions, cost, CTR, average CPC, conversions, and a break...

Google Ads Get Active Account

Return the active Google Ads client account, if any.

Google Ads Get Ad Groups

Get ad groups from a Google Ads account with performance metrics. Pass ad_group_id to get a single ad group with full details, or omit to list ad grou...

Google Ads Get Ad Policy Status

Get ad policy compliance status for a Google Ads account — approval_status, review_status, policy topic violations, ad_strength, final URLs, and RSA h...

Google Ads Get Ads

Get ads from a Google Ads account with creative details and performance metrics. Returns ad type, headlines, descriptions, final URLs, display URL, an...

Google Ads Get Budget Pacing

Get budget utilization and pacing for Google Ads campaigns. Shows each campaign's daily budget, amount spent this month, delivery method, and whether ...

Google Ads Get Campaign Performance

Get one campaign's performance detail — spend, trend, and device breakdown. Opens the detail panel; browse overlay uses the same tool on card tap. Whe...

Google Ads Get Change History

Get recent changes made to a Google Ads account — who changed what and when. Shows change type (CREATE, UPDATE, REMOVE), affected resource, who made i...

Google Ads Get Device Performance

Get advertising performance broken down by device type — desktop, mobile, and tablet. Shows clicks, impressions, cost, CTR, CPC, and conversions for e...

Google Ads Get Geo Performance

Get advertising performance broken down by geographic location. Shows which countries, regions, and cities drive the most clicks, spend, and conversio...

Google Ads Get Keyword Ideas

Discover keyword ideas with search volume, competition level, and CPC bid estimates. The Google Ads Keyword Planner — seed with keywords, a page URL, ...

Google Ads Get Keywords

Get keywords from a Google Ads account with quality score, match type, and performance metrics. Filter by campaign, ad group, status, or match type. R...

Google Ads Get Keyword Volume

Get search volume, competition, and CPC bid estimates for specific keywords. Returns avg monthly searches, monthly search volume trend (last 12 months...

Google Ads Get Schedule Perf

Get advertising performance by day of week or hour of day. Essential for ad scheduling optimization — find which days and hours deliver the best ROI. ...

Google Ads Get Search Terms

Get the search terms report — actual user queries that triggered your ads. Essential for discovering new keyword opportunities and negative keyword ca...

Google Ads Get UI Link

Build a deep link into the Google Ads web UI for the signed-in user. Returns a stable URL with account, campaign, and ad group context — use after lis...

Google Ads List Accounts

List all Google Ads accounts accessible to the authenticated user. Supports filtering by status, currency, name, account ID, manager ID, and usable-on...

Google Ads List Campaigns

List campaigns in a Google Ads account with filtering, pagination, and sorting. Returns campaign IDs, names, status, types, budgets, and other campaig...

Google Ads List Conversions

List all conversion actions in a Google Ads account. Returns conversion IDs, names, categories, and the parsed conversionId + conversionLabel values n...

Google Ads List Image Assets

List image assets in a Google Ads account with download URLs and dimensions. Use before upload to avoid duplicates, and after google_ads_create_image_...

Google Ads List Recommendations

List active Google Ads optimization recommendations (budget, keywords, bidding, extensions, match types, and more). Returns parsed rows with human lab...

Google Ads Open App

Open the Google Ads panel. Use when the user asks to view or explore Google Ads performance before running a specific account read. Use only when the ...

Google Ads Remove Ad

Remove one or more ads from a Google Ads ad group. This is permanent — removed ads cannot be re-enabled. Use to replace ads: remove the old ad, then c...

Google Ads Remove Ad Group

Remove an ad group from a Google Ads campaign. This permanently removes the ad group and all keywords and ads within it. The parent campaign is not af...

Google Ads Remove Budget

Remove a campaign budget. Only use on budgets not linked to any campaign (orphaned budgets). To find orphan budgets, use google_ads_run_gaql with: SEL...

Google Ads Remove Campaign

Remove a Google Ads campaign. This is a permanent action — the campaign, its ad groups, keywords, ads, and extensions are all removed. The campaign's ...

Google Ads Remove Keywords

Remove one or more keywords from an ad group. Provide the ad group ID and a list of criterion IDs to remove. Use google_ads_get_keywords to find crite...

Google Ads Run GAQL

Execute Google Ads Query Language (GAQL) queries to retrieve custom data from Google Ads accounts. Supports all GAQL features including SELECT, FROM, ...

Google Ads Search

Search Google Ads resources using natural language queries or GAQL statements. Automatically routes to appropriate resource types (accounts, campaigns...

Google Ads Select Account

Set the active Google Ads client account for follow-up read tools. Use after the user picks an account from google_ads_list_accounts.

Google Ads Update Ad Group

Update a Google Ads ad group — pause, enable, rename, or change the default CPC bid. Use PAUSED to stop one ad group while keeping sibling ad groups i...

Google Ads Update Budget

Update the daily budget for a Google Ads campaign. Provide the amount in account currency (e.g. 50.00 for $50/day). The tool looks up the campaign's b...

Google Ads Update Campaign

Update a Google Ads campaign — pause, enable, or rename it. Use PAUSED to stop a campaign from serving ads (preserves data). Use ENABLED to resume a p...

Google Ads Update Conversion

Update a conversion action — demote or promote primary-for-goal status. Use primary=false to make a conversion secondary (observation only). Signup sh...

Google Ads Update Keyword

Update a keyword's status or CPC bid. Use PAUSED to stop a keyword from matching without deleting it. Use REMOVED to permanently delete a keyword. Set...

Frequently Asked Questions

What is the Google Ads MCP server?

Google Ads is Google's online advertising platform that enables businesses to create and manage advertising campaigns across Google's network. Access campaign performance metrics, keyword analytics, ad management, budget tracking, and detailed advertising insights through the Google Ads API. It provides 46 tools that AI agents can use through the Model Context Protocol (MCP).

How do I connect Google Ads to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/google-ads. Authentication is handled automatically.

How many tools does Google Ads provide?

Google Ads provides 46 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Google Ads require?

Google Ads uses One-click sign in. Google Ads requires credentials. Connect via MCPBundles and authentication is handled automatically.

What Google Ads work can MCPBundles do?

It can inspect accounts, campaigns, ad groups, keywords, ads, search terms, budgets, geo/device/schedule performance, change history, and custom queries when you need fields the standard reports omit. Supported write workflows include campaign, ad group, keyword, ad, negative-keyword, budget, and bid changes.

How do agency logins pick the right client account?

Name the client in chat. When the match is clear, the AI works on that account. When two names are close, it asks you to choose. For browsing many clients, ask for a filtered account list. Manager-account routing is handled after you connect Google — you do not configure it per client.

Can agents create campaigns safely?

Campaign creation defaults to a safe planning flow: create budgets, campaigns, ad groups, keywords, and responsive search ads with explicit inputs, then keep campaigns paused until the user chooses to enable them.

How should manager accounts be handled?

Manager accounts are the umbrella; spend and conversions live on client accounts underneath. Name the client first, then run reports on that account. Refresh the account list if Google recently linked or removed a client.

When do I need a custom query instead of a standard report?

Use a custom query when a standard report does not show the exact fields you need — for example ad strength, policy status, or a specific metric combination. Most weekly PPC work uses the built-in reports.

Setup Instructions

Connect Google Ads to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/google-ads

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Google Ads and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Google Ads will appear under Not connected — select it and click Connect to complete OAuth.
Name: Google Ads
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/google-ads
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Google Ads?

Sign in to connect your credentials and start running tools from the chat.

Google Ads MCP Server & Skill — 46 Tools