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

  1. A VibeAds account (free to create). Read tools work on every plan; write tools require Pro or Max.
  2. A connected Google Ads account (Settings → Connect Google Ads — one-time OAuth; required for publishing and live metrics).
  3. Node.js 18+ on the machine running your MCP client (npx handles install).
  4. 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_HERE

Claude 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/mcp

Final 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):

ToolTypeWhat it does
list_campaignsReadAll campaigns with status and budget
get_campaign_detailsRead7-day metrics, ad groups, landing pages, diagnostics for one campaign
get_account_health_scoreRead0–100 score + A–F grade across 6 dimensions from 35+ diagnostic rules
get_search_term_analysisReadWasted spend vs winning search terms
get_diagnosticsReadActive issues by severity with recommended fixes
generate_strategyWriteAI drafts a preview: keywords, ad copy, 3+ ad groups (13 credits; see the note below)
get_strategy_statusWritePoll a strategy job until the preview is ready
list_recommendationsWritePending optimization recommendations awaiting approval
approve_recommendationWriteExecute ONE recommendation inside VibeAds' guardrails (blast-radius caps, rate limits, auto-rollback)
request_publishWriteRequest a publish for an existing campaign — returns a human approval link
check_approvalWritePoll the approval; reports approved / rejected / publish progress

How publishing approval works

Where drafting stops today: 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:

  1. Your agent calls request_publish with a campaign ID.
  2. 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.
  3. The agent shows you the link and waits.
  4. You open it, log in to your VibeAds account, review the budget, and click Approve & publish (or Reject).
  5. The agent's check_approval poll 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.
The approval endpoint does not accept API keys at all — approving requires the owning user's logged-in browser session. An agent holding your key can request, draft, and optimize, but it can never move money by itself.

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.