VibeAds MCP server: let your AI agent manage Google Ads
The VibeAds MCP server connects Claude Desktop, Claude Code, Cursor, Cline, or any Model Context Protocol client to your Google Ads account through VibeAds. Your agent can read performance, generate a full campaign strategy, approve safe optimizations, and request a publish — which only goes live after you approve it in a browser. One API key, no Google credentials on your machine, 2-minute setup.
Last updated: July 16, 2026 · requires @vibeads/mcp v0.2+
What is the VibeAds MCP server
Model Context Protocol (MCP) is Anthropic's open standard for connecting AI models to tools. The VibeAds MCP server is a small Node.js process that runs locally via npx, exposes 11 typed Google Ads management tools to your AI client, and forwards every call to VibeAds' cloud gateway authenticated by your API key. All Google Ads access, credit checks, and safety gates run server-side.
Prerequisites
- A VibeAds account (free to create). Read tools work on every plan; write tools require Pro or Max.
- A connected Google Ads account (Settings → Connect Google Ads — one-time OAuth; required for publishing and live metrics).
- Node.js 18+ on the machine running your MCP client (
npxhandles install). - An MCP API key from Settings → MCP API Keys (prefix
vba_mcp_, shown once).
Setup (2 minutes)
Step 1 (both options). Generate a key at getvibeads.com/app/settings/mcp and copy it.
Option A — Remote connector (no install, hosted by VibeAds)
No Node, no config file. Add this URL as a remote / custom connector (Claude Desktop & claude.ai: Settings → Connectors → Add custom connector):
https://getvibeads.com/api/mcp?key=vba_mcp_YOUR_KEY_HEREClaude Code equivalent (header auth, no key in the URL):
claude mcp add --transport http vibeads https://getvibeads.com/api/mcp --header "x-vibeads-api-key: vba_mcp_YOUR_KEY_HERE"The URL contains your key — treat it like a password and revoke it in Settings if it ever leaks. Same 11 tools, same safety gates as the npm server (both call the same VibeAds gateway).
Option B — Local via npm
Claude Desktop / Cursor / Cline — add to the mcpServers block of the client's config file:
{
"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/mcpFinal step (both options). Restart the client and ask: "List my VibeAds campaigns." For guided npm setup, run npx -y @vibeads/mcp --init — it prints ready-to-paste configs for every client.
All 11 tools
Five read tools (any plan) and six write/workflow tools (Pro/Max):
| Tool | Type | What it does |
|---|---|---|
list_campaigns | Read | All campaigns with status and budget |
get_campaign_details | Read | 7-day metrics, ad groups, landing pages, diagnostics for one campaign |
get_account_health_score | Read | 0–100 score + A–F grade across 6 dimensions from 35+ diagnostic rules |
get_search_term_analysis | Read | Wasted spend vs winning search terms |
get_diagnostics | Read | Active issues by severity with recommended fixes |
generate_strategy | Write | AI drafts a preview: keywords, ad copy, 3+ ad groups (13 credits; see the note below) |
get_strategy_status | Write | Poll a strategy job until the preview is ready |
list_recommendations | Write | Pending optimization recommendations awaiting approval |
approve_recommendation | Write | Execute ONE recommendation inside VibeAds' guardrails (blast-radius caps, rate limits, auto-rollback) |
request_publish | Write | Request a publish for an existing campaign — returns a human approval link |
check_approval | Write | Poll the approval; reports approved / rejected / publish progress |
How publishing approval works
generate_strategy returns a preview your agent can show you — it does not yet create a publishable campaign. You apply a preview into a real campaign in the dashboard; request_publish then works on that campaign. Fully agent-drafted-to-published is on the roadmap.Publishing spends real money, so it never executes on API-key authority. The flow:
- Your agent calls
request_publishwith a campaign ID. - VibeAds freezes a summary (campaign name, daily budget, ad groups, Google Ads account) and returns a single-use approval link that expires in 24 hours.
- The agent shows you the link and waits.
- You open it, log in to your VibeAds account, review the budget, and click Approve & publish (or Reject).
- The agent's
check_approvalpoll unblocks and the campaign publishes to your Google Ads account — it goes live immediately and can start spending up to its daily budget, so approve when you mean it. Pause any time from the dashboard.
Example prompts
- "What should I fix first across all my campaigns?"
- "Which search terms wasted the most spend in the last 30 days?"
- "Draft a plumber campaign for Austin at $1,500/month and show me the keywords."
- "Show my pending optimization recommendations and apply the safe ones."
- "Publish the draft campaign — send me the approval link."
- "Score my account health and explain the weakest dimension."
Security model
- One secret, minimal blast radius: the server holds only your
vba_mcp_key — never Google credentials or database keys. Keys are SHA-256 hashed at rest. - Server-side everything: every call goes through the VibeAds gateway, which validates the key, enforces the Pro/Max gate on writes, rate-limits (60 calls/hour/key), and audit-logs every action.
- Human-gated money: publishing requires a logged-in browser approval (above). Optimization approvals run inside the same guardrails as the dashboard: blast-radius caps, per-campaign rate limits, and 48-hour auto-rollback.
- Instant revocation: revoke any key at
/app/settings/mcp; clients using it fail within seconds. Create one key per client so you can revoke selectively. - Open source: audit the server at packages/vibeads-mcp.
FAQ
Can an AI agent publish a Google Ads campaign through this?
Yes — with a human in the loop. The agent requests, you approve in a browser, then it publishes. The API key alone can never approve, so an agent cannot spend money autonomously.
Which AI clients are supported?
Any MCP-compatible client: Claude Desktop, Claude Code, Cursor, Cline, Windsurf, and others. One env var (VIBEADS_API_KEY), run via npx -y @vibeads/mcp.
Do write tools cost extra?
They require Pro ($20/mo) or Max ($149/mo). Strategy generation costs the same 13 credits as the dashboard. No separate API fee. Read tools work on any plan.
Does it need my Google Ads credentials?
No. Google Ads connects to VibeAds once via OAuth in the dashboard; tokens stay server-side and are never exposed to the agent.
What if a key leaks?
Revoke it in Settings — dead in seconds. Until then it's limited to 60 calls/hour, fully audit-logged, and physically cannot approve spend.