Sprites MCP · Google Ads MCP server · Cursor

Google Ads MCP for Cursor: setup in two minutes

Add https://mcp.sprites.ai/mcp as a custom MCP connector in Cursor, sign in to Sprites, and Cursor can read your Google Ads account and propose changes to it. Setup takes about two minutes and needs no API key. Every write comes back as an approval before it touches the account.

MCP server URLhttps://mcp.sprites.ai/mcp

5 steps · about 2 minutes

CursorSprites connected

Where is Google Ads wasting money this month?

Spritesoptimizerunning
SpritesGoogle AdsNeeds your approval
  • Generic — Broad$1,240 · 0 convPause−$1,240
  • "free crm software"search termNegate−$380
  • Brand — ExactIS lost to budget 41%Raise+$25/day
3 changes proposed · nothing appliedReview

Add Sprites to Cursor

Available on Any Cursor plan that allows MCP servers, on desktop and on Cursor web agents. You need a Sprites account with Google Ads already connected — the connector acts on that connection, so Cursor never handles a Google Ads credential.

  1. Write the config

    Put the entry in ~/.cursor/mcp.json to have Sprites available in every project, or in .cursor/mcp.json inside one repo to scope it there.

    ~/.cursor/mcp.json
    {
      "mcpServers": {
        "sprites": {
          "url": "https://mcp.sprites.ai/mcp"
        }
      }
    }
  2. Or add it from the UI

    Cursor lists MCP servers under Customize in the sidebar; adding one there writes the same file.

    Cursor
    CustomizeMCPNew MCP server
  3. Sign in

    Cursor finds the Sprites authorization server from the endpoint's protected-resource metadata, registers itself, and opens a browser for the consent screen. Desktop completes on http://localhost:8787/callback and web agents on cursor.com; both are pre-registered, so there is nothing to allowlist.

    Spriteswants access on behalf of Cursor
    • Read your connected ad accounts and site data
    • Draft campaigns, creatives and pages for your approval
    • Apply only the changes you approve
    AllowCancel
  4. Keep it in the repo, not in your dotfiles

    A project-scoped .cursor/mcp.json is worth committing: every teammate who opens the repo gets the same connector and signs in as themselves. The file holds a URL and nothing else — the token is per person and never touches the config.

Official Google Ads MCP vs Sprites MCP

Google runs its own MCP server at github.com/googleads/google-ads-mcp. Here is what each one covers, so you can pick the one that fits in Cursor — or connect both.

Google publishes its own Google Ads MCP server as open source. It has three tools — a GAQL query runner, resource metadata and a list of accessible accounts — and it is read-only by design: in Google’s words it "cannot modify bids, pause campaigns, or create new assets." Google does not host it. You run it locally with pipx or deploy it to your own Cloud Run, with your own OAuth credentials and a developer token.

Google’s official Google Ads MCP server compared with the Sprites MCP server
Google officialgithub.com/googleads/google-ads-mcpSprites MCPapproval-gated
Where it runsYour machine, or your own Cloud Run deploymentHosted: paste mcp.sprites.ai/mcp and sign in
CredentialsYour OAuth client and a developer token with at least Explorer accessNone to manage — Google Ads is connected once through a Google Partner integration
ToolsThree: GAQL search, resource metadata, accessible customersBroad doors: analyze, optimize, launch, change
WritesNone — read-only by designBudgets, bids, keywords, ads and campaigns, each an approval card applied only on approve
AnalysisReturns rows for the model to reason overA Google Ads specialist reads search terms, change history and impression share before answering
ChannelsGoogle AdsGoogle Ads plus Meta, LinkedIn, TikTok, Reddit, GA4 and SEO
Best atPrecise reporting queries, for people comfortable with GAQL and a terminalDeciding what should change, and changing it with your approval

If you want exact answers to reporting questions and are happy to run a Python package with your own credentials, Google’s server is excellent and free. Use Sprites when you want the answer to turn into a change — a budget moved, a keyword paused, a campaign launched — without hosting anything, or when Google Ads is one channel of several.

Run the first prompt

Ask Cursor this. It routes to a Sprites door, which reads your Google Ads account and answers — no account to name, no confirmation to give first.

  • With Sprites, how did Google Ads do last 30 days vs the 30 before?
  • Use Sprites to find search terms that spent over $50 with no conversion last month.
  • Ask Sprites to build a Search campaign for our pricing page at $80/day.
  • Have Sprites raise the Brand — Exact budget to $65/day and tell me why first.
  • With Sprites, which campaigns are losing impression share to budget rather than rank?

Open Cursor Settings → MCP and confirm sprites is listed as connected with its tool count.

What Cursor can do with Google Ads

The same doors, whichever client you are in. The campaign and the page it points at live in the same window: change the pricing copy, then have Sprites update the ads that quote it, without a second tool.

Ask about last week in the thread you are already in

Spend, conversions, CPA, ROAS and the period comparison, read from the live account rather than a stale export.

Find the waste before it compounds

Search terms with cost and no conversion, broad-match drift, and the negatives that would have stopped it.

Launch without the wizard

Campaign, ad group, responsive search ads and keywords arrive as one editable proposal rather than nine screens.

Change one thing precisely

Raise a budget, pause a campaign, add a negative — one approval card, applied on your click.

Ask why, not just what

Impression share lost to rank and to budget, auction pressure, and which of the two actually moved.

Leave a standing order

A Monday morning brief or a nightly waste check that runs on schedule and messages you only when it matters.

How approvals work here

Cursor renders tool results as text, so a Google Ads change comes back written out rather than as a card. The approval waits for you in Sprites — open it there and the same run continues. Nothing is applied until you approve it.

What it reads

  • Campaigns, ad groups, ads, keywords and their status
  • Spend, impressions, clicks, conversions, CPA, ROAS and impression share
  • Search terms, assets and asset performance labels
  • Change history, so a drop can be traced to an edit

What it can change

  • Create campaigns, ad groups, responsive search ads and keywords
  • Budgets, bids, statuses, negatives and targeting
  • Nothing applies without an approval you have seen and clicked

When it does not work in Cursor

Three things go wrong in this client specifically, and each has a one-line fix.

The Connect button does nothing and no request is made.

A known Cursor issue on some builds. Update Cursor, then remove and re-add the server; if it persists, restart Cursor with the config already in place so the connection is made at startup.

Cursor authenticates but every call comes back unauthorized.

The token was issued for a different address. Delete the server entry, restart Cursor, and re-add it with the exact endpoint above — every grant is bound to that one URL, so a variant of it will not be honoured.

The agent invents ad-platform tools instead of calling Sprites.

Name it: "use Sprites to…". Cursor ranks its own tools first, and a generic phrasing loses to the built-in search.

Google Ads and Cursor: questions

Which URL do I paste into Cursor?

https://mcp.sprites.ai/mcp. There is one endpoint and every client uses it — every OAuth grant is bound to exactly that address, so a variant of it will not be honoured.

Can Cursor change my Google Ads account without asking?

Cursor renders tool results as text, so a Google Ads change comes back written out rather than as a card. The approval waits for you in Sprites — open it there and the same run continues. Nothing is applied until you approve it.

Do I need a Google Ads API key or developer token?

No. Google Ads is connected once inside Sprites through Google Ads (official Google Partner OAuth), and the connector acts on that connection. Cursor never sees a credential for it.

Why Cursor for Google Ads specifically?

The campaign and the page it points at live in the same window: change the pricing copy, then have Sprites update the ads that quote it, without a second tool.

Is there an official Google Ads MCP server?

Yes. Google publishes googleads/google-ads-mcp: open source, read-only by design, and not hosted by Google — you run it locally or on your own Cloud Run with your own API credentials. Sprites is a separate, hosted server that reads and changes Google Ads through a Google Partner integration, with every change held for approval.

Is this a Google Ads MCP server I have to host?

No. Sprites is a hosted remote MCP server: you paste one HTTPS URL into your agent and sign in. There is nothing to install, no developer token to obtain, and no API credentials to store on your machine.

Keep going

The same Cursor connector reaches every other channel — nothing else to add.

All Google Ads guides

Google Ads, from Cursor

Paste one URL, sign in once, and the next Google Ads question you ask Cursor gets answered from the live account.