Guides11 min read

How to Let Claude (or Any AI Agent) Manage Your Google Ads with MCP

Step-by-step guide to connecting ChatGPT, Claude, Claude Code, Cursor, or any MCP client to your Google Ads account through the VibeAds MCP server. 29 tools, sign in or one API key, and your OK before anything spends money.

CN
Chiran Nawalage · @chiran
··Updated Oct 10, 2026

Updated October 2026: ChatGPT, Claude and Meta AI now connect by signing in, agents can turn a draft into a campaign that publishes, import and pause campaigns, and publish within a daily limit you set once you confirm the budget.

Can Claude actually manage a Google Ads account?

Yes. With the VibeAds MCP server, Claude (or ChatGPT, Meta AI, Cursor, Cline, or any MCP-compatible agent) can read your campaign performance, find wasted spend, draft a campaign (keywords, ad copy, 3+ ad groups), bring in the campaigns you already run, apply the optimizer's recommendations, pause a campaign, and publish one. The one thing it can never do is spend your money without you: publishing waits for you to confirm the daily budget in the chat, within a limit you set, or to approve a link in your browser.

That last sentence is the whole design. Every "AI agent runs my ads" story ends one of two ways: the agent is read-only and useless, or it has full write access and one bad prompt burns a week of budget. The VibeAds MCP server takes a third path: agents draft and optimize freely, humans approve anything that moves money.

What is the VibeAds MCP server?

Model Context Protocol (MCP) is the open standard AI assistants use to call outside tools; Claude, ChatGPT and Meta AI all speak it. VibeAds runs an MCP server at https://getvibeads.com/api/mcp with 31 Google Ads tools, and the same tools come as a small open-source npm package (npx -y @vibeads/mcp) for clients that run tools on your computer. Both forward every call to VibeAds' cloud gateway, where plan checks, credits and every safety gate run.

Three things it deliberately does NOT do:

  1. It never touches Google credentials. You connect Google Ads to VibeAds once, through Google's own sign-in. Tokens stay server-side; the agent and your laptop never see them.
  2. It holds no database keys. An assistant holds a VibeAds sign-in you can disconnect, or a revocable vba_mcp_ API key, SHA-256 hashed at rest on our side.
  3. It cannot approve spend by itself. An approval link only works in your own signed-in browser, and within your limit the publish waits for your OK in the chat. More on that below.

How do I set it up? (2 minutes)

Prerequisites: a VibeAds account (free to create, though drafting and publishing need Pro at $20/mo or Max) and, to publish, a connected Google Ads account. If it isn't connected yet, the assistant gives you a link when it needs one.

ChatGPT, Claude or Meta AI: sign in. Add https://getvibeads.com/api/mcp as a custom connector or app. The assistant opens VibeAds; sign in and press Allow access. Step-by-step instructions for each one are in Connect ChatGPT, Claude or Meta AI.

Claude Code, Cursor, Cline and other clients: an API key. Go to getvibeads.com/app/settings/mcp, click Generate key, and copy it (shown once, prefix vba_mcp_). Then, in Claude Desktop, Cursor, or Cline, add this to the mcpServers block of the client's config:

{
  "mcpServers": {
    "vibeads": {
      "command": "npx",
      "args": ["-y", "@vibeads/mcp"],
      "env": { "VIBEADS_API_KEY": "vba_mcp_YOUR_KEY_HERE" }
    }
  }
}

Claude Code takes one terminal command:

claude mcp add vibeads -e VIBEADS_API_KEY=vba_mcp_YOUR_KEY_HERE -- npx -y @vibeads/mcp

Or point it at the hosted server, with the key in a header and nothing to install:

claude mcp add --transport http vibeads https://getvibeads.com/api/mcp --header "x-vibeads-api-key: vba_mcp_YOUR_KEY_HERE"

Then ask: "Show me my Google Ads campaigns in VibeAds." If you prefer guided npm setup, npx -y @vibeads/mcp --init prints ready-to-paste configs for every client.

What tools does the agent get?

Thirty-one tools. Reading Google Ads works on every plan; keyword research and the rest need Pro or Max.

ToolPlanWhat it does
list_campaignsAnyYour campaigns in VibeAds, with status and daily budget
get_campaign_detailsAny7-day metrics, ad groups, landing pages, issues
get_account_health_scoreAny0–100 score, A–F grade, 6 dimensions
get_search_term_analysisAnyWasted spend vs winning search terms
get_diagnosticsAnyActive issues by severity with recommended fixes
find_campaigns_to_importAnyThe campaigns in your Google Ads account, and which are already in VibeAds
get_performance_reportAnyAny period up to 90 days, live from Google Ads, by day, device, hour, ad group, keyword or location
audit_google_ads_accountAnyAn audit of your whole Google Ads account, imported campaigns or not: a health score, the issues and what fixes each, and the search terms spending without conversions
research_keywordsPro, MaxKeyword ideas with Google's monthly searches, competition and top-of-page bids (2 credits)
list_google_ads_accountsAnyEvery connected Google Ads account, and the manager account each client sits under
list_google_recommendationsAnyGoogle's own recommendations for an account, and the tool that makes each change from the chat
generate_strategyPro, MaxDrafts keywords, ad copy, 3+ ad groups (13 credits; publishes nothing)
get_strategy_statusPro, MaxFollows the draft until it is ready
apply_strategyPro, MaxTurns the draft into a draft campaign
list_recommendationsPro, MaxThe optimizer's pending recommendations, each with the tool that carries it out
preview_ad_groupPro, MaxShows a new ad group before anything is added
add_ad_groupPro, MaxAdds the previewed ad group
request_publishPro, MaxPublishes a draft, with your confirmation or an approval link
check_approvalPro, MaxReports the publish and whether the campaign is live
import_campaignsPro, MaxBrings up to 3 campaigns from Google Ads into VibeAds
pause_campaignPro, MaxPauses a live campaign
resume_campaignPro, MaxStarts a paused campaign again, under the same rules as publishing
list_keywordsAnyOne campaign's ad groups, keywords and negative keywords, live from Google Ads
add_negative_keywordsPro, MaxAdds up to 20 negative keywords to a campaign or one ad group
add_keywordsPro, MaxAdds up to 20 keywords to one ad group
set_keyword_statusPro, MaxPauses keywords, or turns paused ones back on
set_max_cpcPro, MaxSets a max CPC on a Manual CPC campaign; a big raise gets an approval link
set_daily_budgetPro, MaxSets a daily budget; a raise over 20% gets an approval link
dismiss_google_recommendationPro, MaxRemoves one of Google's recommendations from its list

How does publishing stay under your control?

This is the part worth copying if you're building agent tools of your own. There are two paths.

An assistant you signed in to, within your limit. You choose how much a day assistants may publish ($100 unless you change it, or off) in Settings, Connected apps.

  1. The agent calls request_publish with a campaign ID. If you have more than one Google Ads account, it first asks which one the campaign goes to.
  2. VibeAds answers with the campaign's daily budget and publishes nothing.
  3. The agent tells you the daily budget. Only when you confirm it does the publish start, and VibeAds emails you when the campaign is live.

Everything else: an approval link. Every publish requested with an API key, a campaign over your limit, and a third assistant publish within 24 hours go this way:

  1. VibeAds freezes a summary: campaign name, daily budget in dollars, ad group list, target Google Ads account. It then mints a single-use approval link that expires in 24 hours.
  2. The agent shows you the link and waits.
  3. You open it, log in, see exactly what will go live and what it costs per day, and click Approve & publish (or Reject).
  4. The agent's check_approval reports the publish, and the campaign goes live in your own Google Ads account.

Why can't the agent just click the link? Because the link only identifies the pending action. Approving it requires the owning user's logged-in browser session on top of it, and VibeAds refuses an API key or a connected app's token at that endpoint. The agent that requested the publish can display the link, but it physically cannot approve it. Guardrails on everything else: calls are rate-limited to 60 an hour, every call is logged, and a recommendation carried out from the chat, with the edit tool for its kind of change, runs inside the same safety system as the VibeAds dashboard. That means blast-radius caps, per-campaign daily limits, and automatic rollback if results get worse.

What does a real session look like?

A condensed transcript from ChatGPT, signed in to VibeAds:

You: Draft a Google Ads campaign for my HVAC company in Dallas with a $1,500 monthly budget, then publish it.

ChatGPT: calls generate_strategy, then apply_strategy … Your draft "Dallas HVAC" has 3 ad groups and 48 keywords. Nothing is live yet. calls request_publish … It will spend up to $50 a day, billed to your own Google Ads account. Shall I publish it?

You: Yes.

ChatGPT: Publishing. calls check_approval … The campaign is live in Google Ads account 123-456-7890; you can pause it any time.

Total human effort: two sentences.

With an API key, the same request ends with an approval link instead: you click it, log in, tap Approve & publish, and the agent picks up from there.

How does this compare to other Google Ads MCP servers?

VibeAds MCPGoogle Ads official MCPGeneric analytics MCPs
Reads performance✅✅ (raw GAQL)✅
Prebuilt diagnostics (35+ rules)✅❌ write your own queries❌
Drafts full campaigns (keywords + ad copy + ad groups)✅❌❌
Executes optimizations with guardrails + auto-rollback✅❌ read-only❌
Publishes campaigns✅ with your confirmation❌ read-only❌
Credentials on your machinenone (sign in) or 1 revocable API keyGoogle OAuth client or application default credentialsvaries
Setup2 min, no Google Cloud projectGoogle Cloud project with Google Ads API accessvaries

The official server is a power tool for PPC engineers who write GAQL. The VibeAds server is for business owners and their agents: the safety logic, campaign knowledge (32 local-service categories), and approval flow are built in.

What does it cost?

The MCP server itself is free and open source. Read tools work on any VibeAds plan. Write tools require Pro ($20/mo) or Max ($149/mo); strategy generation costs the same 13 credits it costs in the dashboard. There's no separate API pricing. And the campaign itself publishes to your Google Ads account, so ad spend goes straight to Google, never through us.

FAQ

Is it safe to give an AI agent access? A signed-in assistant or an API key can read data, draft campaigns, and apply guardrailed optimizations. Neither can see Google credentials or exceed 60 calls an hour, and an API key can never publish or approve spend. Disconnect an assistant in Settings, Connected apps, or revoke a key in Settings, MCP Server Keys, and it stops within seconds.

Which models/clients work? Anything that speaks MCP. ChatGPT, Claude and Meta AI connect by signing in; Claude Code, Cursor, Cline, Windsurf, and more use an API key. The tools are model-agnostic.

Can I use it for multiple Google Ads accounts? Yes. One connection reaches every Google Ads account connected to your VibeAds account (Max supports up to 10), and the agent asks which one a new campaign goes to. With API keys, create one per client or machine so you can revoke selectively.

Does the agent need my Google login? Never. Google Ads connects to VibeAds once through Google's sign-in; the agent only holds a VibeAds sign-in or key.

Where do I start? Create a free VibeAds account, then connect ChatGPT, Claude or Meta AI, or generate a key at Settings, MCP Server Keys for other clients. Full reference: docs/integrations/mcp-server.

Skip the research

Get your custom Google Ads plan in 5 minutes.

Answer 4 questions about your business and we'll show you exactly what an AI-built campaign looks like for your category, your budget, and your situation, before you spend a dollar on ads.

Build my plan

Free. No credit card. Takes about 5 minutes.

CN

Founder & CEO of VibeAds

Built VibeAds to replace $1,500/mo marketing agencies with a $20/mo AI tool for plumbers, HVAC companies, electricians, dentists, roofers, and 30+ local service categories. Passionate about making Google Ads accessible to every small business owner.

Author page →

Related Articles

#mcp#claude#chatgpt#ai-agents#google-ads-automation#integrations