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.
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.
Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.
Browse all toolsBuilt for
PPC Agencies, Performance Marketing Teams, In-House Paid Search, Growth Teams, Multi-Client Account Managers
Find a client by name
Agency-first flow: name the client, confirm the account, then read performance.
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.
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.
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.
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.
What is Google Ads MCP?
Google Ads MCP connects your Google Ads accounts to AI assistants so you can research keywords, clean search terms, triage client accounts, and manage campaigns from chat — including agency logins where one sign-in reaches many client accounts under a manager account.
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.
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.
Domain knowledge for Google Ads — workflow patterns, data models, and gotchas for your AI agent.
Hierarchy: Account → Campaign (+Budget) → Ad Group → Keywords/Ads. Resolve account_id before any account-scoped call.
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.
Two MCP App surfaces mount alongside chat:
Studio open: use the open-app action that mounts Browse — not paginated account discovery. 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 (account summary for pulse, search-term report for search terms, etc.); the widget routes on panel_view. Account selection uses the chat-visible select-account action.
Start here after account resolve: account summary for the date range · then drill with campaigns, keywords, search terms, pacing, or geo as needed.
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) · billing posture (setup + account budget + campaign daily guardrails) · account budget (credits, served, caps). Write: create campaign (default PAUSED) → ad group → keywords → upsert RSA ad (omit ad_id = create; ad_id + status = pause/unpause without recreate) → enable campaign; pause/enable one ad group; update budget/bids; add negatives (campaign, ad group, or shared negative lists); create/link shared sets; sitelinks/callouts/snippets at account or campaign level; upload image assets for Search image extensions; propose account spending cap (monthly-invoicing accounts only). Keyword status/bid changes: read keywords for the ad group first; update one criterion at a time; on concurrent_modification, re-read once — never bulk-retry the same update. Delete: campaign (cascades ad groups/ads, not budget) · ad group · keywords · orphaned budgets (reference_count=0 via GAQL).
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, social proof). Minimize pinning — each pin reduces combinations Google can test.
Upsert (create + edit): one RSA upsert tool — omit ad_id to create; pass ad_id to update. Set status=ENABLED or PAUSED to unpause/pause without removing the ad (keeps policy approval). Change headlines/descriptions/final_url on update only when creative must change (may re-review). Do not remove+recreate just to enable a paused approved ad.
Remove is permanent — use upsert status=PAUSED for temporary stops. After remove, create again via upsert without ad_id (or stale DESTINATION_NOT_WORKING: remove, then upsert create with ignore_destination_check=true).
Three independent signals — do not conflate:
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:
ignore_destination_check applies at create only; cannot patch or API-appeal existing ads (Policy Manager appeals are UI-only).
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...
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...
Add negative keywords to a shared negative keyword list. Keywords apply to every campaign linked to that shared set.
Apply Google Ads optimization recommendations by resource_name. List candidates from the recommendations read first. For budget recommendations, pass ...
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...
Create an ad extension asset (sitelink, callout, or structured snippet) and link it at account level (CUSTOMER) or one campaign (CAMPAIGN). Sitelinks ...
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...
Create a conversion action in Google Ads. Conversion actions define what counts as a conversion (signup, purchase, lead, etc.). After creation, use Af...
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 ...
Create a Responsive Search Ad (RSA). Prefer the upsert RSA ad tool for new work — it also updates existing ads (pause/unpause without losing approval)...
Create a shared negative keyword list (SharedSet type NEGATIVE_KEYWORDS). Add keywords with add-shared-set-keywords, then link to campaigns.
Dismiss Google Ads optimization recommendations so they no longer appear in the account. Use the recommendations list to obtain resource_name values. ...
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...
Read Google Ads account-level budgets (formerly budget orders). Returns spending limit type (INFINITE or a fixed cap), credit adjustments, amount alre...
Get an account-level performance summary for a Google Ads account. Returns total clicks, impressions, cost, CTR, average CPC, conversions, and a break...
Return the active Google Ads client account, if any.
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...
Get ad policy compliance status for a Google Ads account — approval_status, review_status, policy topic violations, ad_strength, final URLs, and RSA h...
Get ads from a Google Ads account with creative details and performance metrics. Returns ad type, headlines, descriptions, final URLs, display URL, an...
Read billing setup, account-level budget (credits, served spend, caps), and configured campaign daily budgets in one call. Returns whether API account...
Get budget utilization and pacing for Google Ads campaigns. Shows each campaign's daily budget, amount spent this month, delivery method, and whether ...
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...
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...
Get advertising performance broken down by device type — desktop, mobile, and tablet. Shows clicks, impressions, cost, CTR, CPC, and conversions for e...
Get advertising performance broken down by geographic location. Shows which countries, regions, and cities drive the most clicks, spend, and conversio...
Discover keyword ideas with search volume, competition level, and CPC bid estimates. The Google Ads Keyword Planner — seed with keywords, a page URL, ...
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...
Get search volume, competition, and CPC bid estimates for specific keywords. Returns avg monthly searches, monthly search volume trend (last 12 months...
Get the search terms report — actual user queries that triggered your ads. Essential for discovering new keyword opportunities and negative keyword ca...
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...
Link a shared negative keyword list to a campaign. All keywords in the shared set block queries for that campaign.
List all Google Ads accounts accessible to the authenticated user. Supports filtering by status, currency, name, account ID, manager ID, and usable-on...
List campaigns in a Google Ads account with filtering, pagination, and sorting. Returns campaign IDs, names, status, types, budgets, and other campaig...
List all conversion actions in a Google Ads account. Returns conversion IDs, names, categories, and the parsed conversionId + conversionLabel values n...
List image assets in a Google Ads account with download URLs and dimensions. Use before upload to avoid duplicates, and after uploading an image to co...
List active Google Ads optimization recommendations (budget, keywords, bidding, extensions, match types, and more). Returns parsed rows with human lab...
List shared sets in a Google Ads account — typically negative keyword lists reused across campaigns. Use before creating duplicates.
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 ...
Propose a finite account-level spending cap via AccountBudgetProposal (UPDATE). Google must approve the proposal; ads stop when the approved cap is re...
Permanently remove one or more ads from a Google Ads ad group. Removed ads cannot be re-enabled. To pause or resume serving, upsert the RSA ad with ad...
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...
Remove a campaign budget. Only use on budgets not linked to any campaign (orphaned budgets). To find orphan budgets, run a custom GAQL query: SELECT c...
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 ...
Remove one or more keywords from an ad group. Provide the ad group ID and a list of criterion IDs to remove. Use the keyword list to find criterion ID...
Execute Google Ads Query Language (GAQL) queries to retrieve custom data from Google Ads accounts. Supports all GAQL features including SELECT, FROM, ...
Search Google Ads resources using natural language queries or GAQL statements. Automatically routes to appropriate resource types (accounts, campaigns...
Set the active Google Ads client account for follow-up read tools. Use after the user picks an account from accessible account discovery.
Unlink a shared negative keyword list from a campaign. Does not delete the shared set or its keywords.
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...
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...
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...
Update a conversion action — demote or promote primary-for-goal status. Use primary=false to make a conversion secondary (observation only). Signup sh...
Update a positive ad-group keyword's status or CPC bid. Use PAUSED to stop a keyword from matching without deleting it. Use REMOVED to permanently del...
Create or update a Responsive Search Ad (RSA) in a Google Ads ad group. Omit ad_id to create (requires headlines, descriptions, final_url). Pass ad_id...
Google Ads MCP connects your Google Ads accounts to AI assistants so you can research keywords, clean search terms, triage client accounts, and manage campaigns from chat — including agency logins where one sign-in reaches many client accounts under a manager account.
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.
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.
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.
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.
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.
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.
Google Ads provides 54 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.
Google Ads uses One-click sign in. Google Ads requires credentials. Connect via MCPBundles and authentication is handled automatically.
Connect Google Ads to any MCP client in minutes
https://mcp.mcpbundles.com/bundle/google-adsThe link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.
Google Ads and paste the MCP URL into Remote MCP server URL.Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).
Same data, different audiences.
More marketing integrations you might like
Klaviyo is a marketing automation platform that enables businesses to send personalized email and SM...
Encharge is a marketing automation platform that facilitates the creation and management of complex ...
Taboola is a content discovery and native advertising platform that helps publishers and advertisers...
Google Analytics is a web analytics service that tracks and reports website traffic, user behavior, ...
Yelp Places API — business search, matching, details, reviews, categories, events, transactions, and...
Partnerize is a marketing platform that enables brands to manage and optimize partnership marketing ...