Guides7 min read

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

Step-by-step guide to connecting Claude Desktop, Claude Code, Cursor, or any MCP client to your Google Ads account through the VibeAds MCP server. 11 tools, one API key, 2-minute setup — and a human-approval gate so your agent can never spend money without you.

CN
Chiran Nawalage · @chiran
·

Can Claude actually manage a Google Ads account?

Yes. With the VibeAds MCP server, Claude (or Cursor, Cline, or any MCP-compatible agent) can read your campaign performance, find wasted spend, draft a complete campaign — keywords, ad copy, 3+ ad groups — apply safe optimizations, and request a publish. The one thing it can never do is spend your money without you: publishing always requires a human clicking Approve in a 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 Anthropic's open standard for connecting AI models to tools — the same protocol Claude Desktop and Claude Code use for every integration. The VibeAds MCP server is a small open-source Node.js process (npx -y @vibeads/mcp) that exposes 11 Google Ads management tools to your AI client and forwards every call to VibeAds' cloud gateway, authenticated by a single API key.

Three things it deliberately does NOT do:

  1. It never touches Google credentials. You connect Google Ads to VibeAds once via OAuth in the dashboard. Tokens stay server-side; the agent and your laptop never see them.
  2. It holds no database keys. The only secret on your machine is a revocable vba_mcp_ API key, SHA-256 hashed at rest on our side.
  3. It cannot approve spend. The approval endpoint doesn't accept API keys at all — more on that below.

How do I set it up? (2 minutes)

Prerequisites: a VibeAds account (free to create — write tools need Pro at $20/mo or Max), a connected Google Ads account, and Node.js 18+ where your MCP client runs.

Step 1 — Get an API key. Go to getvibeads.com/app/settings/mcp, click Generate key, copy it (shown once, prefix vba_mcp_).

Step 2 — Add the server to your client.

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 — one terminal command:

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

Step 3 — Restart the client and ask: "List my VibeAds campaigns." If you prefer guided setup, npx -p @vibeads/mcp vibeads-mcp-init writes the config for you.

What tools does the agent get?

Eleven tools — five read (any plan), six write/workflow (Pro/Max):

ToolTypeWhat it does
list_campaignsReadAll campaigns with status + budget
get_campaign_detailsRead7-day metrics, ad groups, landing pages, diagnostics
get_account_health_scoreRead0–100 score, A–F grade, 6 dimensions, 35+ rules
get_search_term_analysisReadWasted spend vs winning search terms
get_diagnosticsReadActive issues by severity with recommended fixes
generate_strategyWriteDrafts keywords, ad copy, 3+ ad groups (13 credits; publishes nothing)
get_strategy_statusWritePolls the draft until ready
list_recommendationsWritePending optimization recommendations
approve_recommendationWriteExecutes ONE recommendation inside guardrails
request_publishWriteReturns a human approval link
check_approvalWritePolls the approval + publish progress

How does the human-approval publish flow work?

This is the part worth copying if you're building agent tools of your own:

  1. The agent calls request_publish with a campaign ID.
  2. VibeAds freezes a summary — campaign name, daily budget in dollars, ad group list, target Google Ads account — and mints a single-use approval link that expires in 30 minutes.
  3. The agent shows you the link and waits.
  4. You open it, log in, see exactly what will go live and what it costs per day, and click Approve & publish (or Reject).
  5. The agent's check_approval poll unblocks, and the campaign publishes to your own Google Ads account.

Why can't the agent just click the link itself? Because the link only identifies the pending action — approving requires the owning user's logged-in browser session on top of it. An API key is useless at that endpoint. The agent that requested the publish can display the link, but it physically cannot approve it. Guardrails on everything else: writes are rate-limited to 60 calls/hour per key, every call is audit-logged, and approve_recommendation executes inside the same safety system as the VibeAds dashboard — blast-radius caps, per-campaign daily limits, and 48-hour auto-rollback if metrics worsen.

What does a real session look like?

A condensed transcript from Claude Code with the server installed:

You: Draft a plumber campaign for Austin at $1,500/month, then get it live.

Claude: calls generate_strategy … Draft ready: 3 ad groups (Emergency Plumbing, Drain Cleaning, Water Heater Installation), 28 keywords, 15 headlines per ad group. calls request_publish … Publishing needs your approval — open this link to review the $50/day budget and approve: getvibeads.com/app/approve/…

You: click, log in, tap Approve & publish

Claude: Approved — publish job running. Campaign is live on Google Ads account 951-452-2152 (paused until you enable it).

Total human effort: one sentence and one click.

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❌ raw mutations, no safety layer
Publishes campaigns✅ human-approved⚠️ raw API mutations, no approval gate
Credentials on your machine1 revocable API keyGoogle OAuth + developer tokenvaries
Setup2 min, no Google Cloud projectGoogle Cloud project + dev token applicationvaries

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 (37 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 my API key? The key can read data, draft campaigns, and apply guardrailed optimizations — it cannot approve spend, see Google credentials, or exceed 60 calls/hour. If it leaks, revoke it in Settings and it's dead within seconds.

Which models/clients work? Anything that speaks MCP: Claude Desktop, Claude Code, Cursor, Cline, Windsurf, and more. The tools are model-agnostic — GPT- or Gemini-based agents work through any MCP-compatible client too.

Can I use it for multiple Google Ads accounts? Yes — the key is scoped to your VibeAds user, and Max supports up to 10 connected ad accounts. Create one key per client/machine so you can revoke selectively.

Does the agent need my Google login? Never. Google Ads connects to VibeAds once via OAuth in your dashboard; the agent only holds the VibeAds key.

Where do I start? Create a free VibeAds account, connect Google Ads, generate a key at Settings → MCP API Keys, and paste the config above. 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

Written by Chiran Nawalage

@chiran

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.

Related Articles

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