Windsurf logo Google Ads logo

Run Google Ads from Windsurf

Manage Google Ads campaigns inside Windsurf (IDE) — 39 tools, OAuth setup in about 5 minutes, no dashboard switching.

  • 39 Google Ads tools, all in Windsurf

  • Paused-by-default. Cannot delete campaigns.

  • OAuth setup in ~2 minutes

See it in action

In Windsurf

Pull my Google Ads performance for the last 30 days. Show spend, conversions, CPA, and ROAS by campaign. Highlight any campaigns with ROAS below 2.0 and tell me which to pause first.

Google Ads performance audit — Monthly audit that surfaces underperformers and points you at the quick wins.

Overview

Adspirer is the MCP server that connects Windsurf (IDE) to your Google Ads ad accounts, turning campaign management into a chat conversation. Codeium Windsurf — IDE with native MCP support. On the platform side, 39 tools cover google Search, Performance Max, Display, YouTube, Shopping. Adspirer reads and writes — pull performance reports, audit launch search & pmax campaigns, launch new campaigns, pause underperformers, and reallocate budget — all from chat. New campaigns are always created paused so you can review before they go live, Adspirer cannot delete existing campaigns by design, and the free tier (15 tool calls / month, no credit card) is enough to run a full audit before you pay. Setup takes about 5 minutes via a JSON config entry.

Safety guarantees

  • New campaigns always created paused for review

  • Adspirer cannot delete existing campaigns

  • Budget changes need explicit confirmation

  • OAuth 2.1 + PKCE — passwords never seen

How it works

How it works

Windsurf

You ask in chat

prompt

Adspirer

39 tools, paused-by-default

tool calls

Google Ads

Live data, paused for review

Step 01

Connect

Paste the MCP URL into Windsurf, OAuth into Google Ads.

Step 02

Manage

Ask in chat. Adspirer routes through 39 Google Ads tools.

Step 03

Scale

Switch accounts in chat. Same audits across every client.

What you can do

39 tools across Google Ads. The ones you'll use most:

  • Launch Search & PMax campaigns — Build Google Search and Performance Max campaigns from a brief — Adspirer runs keyword research, drafts copy, validates assets, and creates the campaign **paused** so you review before going live.

  • Research keywords with real CPC — Pull live data from Google Keyword Planner via `research_keywords` — search volume, CPC estimates, and competition level for any seed keyword or business description.

  • Find wasted spend — Run `analyze_wasted_spend` to surface keywords that have spent your threshold (e.g., $50+) with zero conversions, then pause them or push them to negatives in one prompt.

  • Audit search terms — Use `analyze_search_terms` to see the actual queries that triggered your ads. The `raw_report` mode returns the literal search strings — perfect for finding negative-keyword opportunities.

  • Generate ad copy in-spec — `suggest_ad_content` writes headlines (≤30 chars) and descriptions (≤90 chars) that fit Google's exact limits, so RSAs never get rejected for length.

  • Pause & resume campaigns — Pause campaigns, ad groups, or keywords by name from chat — and resume them later. Adspirer **cannot delete** existing campaigns by design (hard-coded safety).

  • Tune PMax targeting — Add or remove search themes (up to 50 per asset group) and audience signals (in-market, affinity, custom, user lists) on existing PMax campaigns — without rebuilding from scratch.

  • Reallocate budget by ROAS — `optimize_budget_allocation` recommends shifts toward your best-ROAS campaigns. Adspirer never raises an existing campaign budget without your explicit confirmation.

Campaign types

Every Google Ads format Adspirer supports — request one in chat.

Search campaigns

Text ads on Google Search results. Highest-intent traffic — people actively searching for your keywords.

Performance Max

AI-driven campaigns running across Search, Display, YouTube, Gmail, Maps, and Discover from one asset group.

Display campaigns

Responsive Display Ads across 2M+ sites and apps. Full control over audiences, topics, placements, and keywords.

YouTube campaigns

Video ads on YouTube In-Feed, In-Stream, and Shorts via the Demand Gen format with YouTube-only channel controls.

Shopping campaigns

Product-feed-driven ads with images, prices, and merchant info — built for e-commerce catalogs.

Demand Gen

Visual, social-style ads across YouTube, Discover, and Gmail — designed to drive demand earlier in the funnel.

More prompts to try

Same as Cursor — useful for engineering teams that ship features and ads from one editor.

Diagnose a CPA spike — Anomaly diagnosis that explains why CPA moved, not just that it did.

Diagnose a CPA spike
My CPA on the "Adspirer-pmax-03" campaign jumped 60% in the last 7 days. Diagnose what changed — search terms, audience signals, asset rotation — and tell me what to fix.

Who this is for

Each Monday, ask Windsurf to pull last week's Google Ads performance, surface campaigns running below your ROAS threshold, and recommend creative refreshes for fatigued ads.

Replaces a 60–90 minute manual review with a 5-minute chat, and surfaces problems before they tank ad-set performance.

Compare & decide

Adspirer vs alternatives

For running Google Ads from Windsurf.

Adspirer DIY MCP server Legacy SaaS dashboard
Setup time ~5 minutes via a JSON config entry 2–4 hours building MCP server 30–60 min onboarding + sales call
Cost — entry tier Free (15 calls / mo) Hosting + maintenance $200–500 / mo minimum
Works inside Windsurf Yes — a JSON config entry Yes (if you build it correctly) No — external dashboard only
Multi-account Yes — switch in chat Manual per-account auth Yes — but each account billed
Read + Write Full read + write (create / pause / update) Whatever you build Mostly read-only or seat-gated writes
Safety: cannot delete Hard-coded — no delete tool Up to you Varies
Pricing transparency Public — $0 / $49 / $99 / $199 Self-hosted Often quote-only

Pricing

Start free. Upgrade if you outgrow it.

Free Forever

$0

15 / mo

All platforms. ChatGPT & Claude access. No credit card.

Start free →
Best for Windsurf

Plus

$49 / mo

150 / mo

Performance analysis + standard campaigns.

Compare Plus →

Pro

$99 / mo

600 / mo

AI optimization, bulk ops, deeper diagnostics.

Compare Pro →

Max

$199 / mo

3,000 / mo

Priority support (24h SLA), custom integrations.

Compare Max →

Configure

Required: Windsurf Pro. Most users finish in about two minutes.

Show setup steps for Windsurf

Add Adspirer to Windsurf MCP config

In Windsurf settings, add an MCP server with URL https://mcp.adspirer.com/mcp and OAuth authentication.

FAQ

Setup

Do I need a developer to set this up?

You'll edit a small JSON config entry to register the Adspirer MCP server (https://mcp.adspirer.com/mcp, transport http, OAuth). If you can edit a settings file in a code editor, you can do this. Total time: about 5 minutes.

Capabilities

Can I switch from Windsurf to a different AI client later?

Yes. Your Adspirer account is independent of the AI client — sign up once, then connect the same MCP URL from ChatGPT, Claude, Cursor, Codex, Windsurf, or any supported client. Tool calls are pooled across clients on the same plan; switching costs you nothing.

What's the minimum budget for Google Ads campaigns?

Search campaigns work from $10/day (Google's practical minimum), but $30+/day is recommended for meaningful data. Performance Max needs at least $20/day because it has to test across multiple channels. Adspirer suggests $40/day split across 3-5 ad groups for new Search campaigns.

How are conversions and search terms surfaced?

Use get_campaign_performance for spend / conversions / CPA / ROAS by campaign, and analyze_search_terms to see the actual queries that triggered your ads. The raw_report mode returns the literal search-term strings — feed those into add_negative_keywords to block wasteful traffic in the next prompt.

Workflows

Does Adspirer generate images or videos for Google Ads?

No. Adspirer generates ad copy (headlines and descriptions) via suggest_ad_content, but it does not create images or videos. For PMax, you provide image and video URLs from Google Drive, Dropbox, S3, or any public link, and validate_and_prepare_assets checks them against Google's spec before launch.

How does the campaign-creation workflow work?

Search campaigns require a 6-step sequence: verify connection → research_keywordsdiscover_existing_assetssuggest_ad_contentvalidate_and_prepare_assetscreate_search_campaign. PMax adds asset upload guidance plus optional add_pmax_search_themes and add_pmax_audience_signal. Skipping steps causes Google's API to reject the campaign — Adspirer enforces the order.

Compare

What's the read vs. write boundary on Google Ads?

Adspirer is full read and write. It can pull reports, audit performance, and analyze data (read), and it can launch new campaigns, pause underperformers, update budgets, and adjust targeting (write). Two safety guardrails are hard-coded: new campaigns are always created paused so you review before they go live, and Adspirer cannot delete existing campaigns. You keep full control.

Safety & control

Can Adspirer delete or modify my existing campaigns?

Adspirer cannot delete campaigns, ad groups, or keywords — hard-coded safety. It can pause and resume them when you ask, and update budgets, bids, or targeting on your instruction. New campaigns are always created paused so you review before they spend a cent.

Power user

Can I manage multiple Google Ads accounts (MCC) from one chat?

Yes. Connect each ad account through OAuth and Adspirer keeps them separate. Use get_connections_status to list connected accounts and reference them by customer ID or name in your prompts. Adspirer's own workspace, for example, has both Adspirer (9120801776) and Sahaayak Inc (1187072345) connected side-by-side.

Related integrations

Same Windsurf, different platform — or same Google Ads, different AI client.

Go deeper

Ready to connect Windsurf to Google Ads?

Start free — 15 tool calls per month, no credit card. Setup takes about 2 minutes.

Try Adspirer free