AdCopilotby Atromx

Cursor + Google Ads: MCP Setup That Works

Add a Google Ads MCP connector to Cursor — the mcp.json shape, where it lives, how tool approvals behave, and how to run ads work beside your code.

Updated 2026-08-11Atromx IntelligenceGoogle Ads · Search, PMax, Display, YouTube, Demand Gen
The short answer

In Cursor, open Settings → MCP and add the server to mcp.json: {"mcpServers":{"adcopilot":{"url":"https://mcp.adcopilot.cloud/c/<your connector key>/mcp"}}}. Use the global ~/.cursor/mcp.json, not a project file that gets committed — the address is a credential. The tools appear in Agent mode, reads run freely, and every write asks before executing. The payoff is ads work running beside your actual codebase.

Cursor takes the Google Ads connector as a four-line entry in mcp.json, reached through Settings → MCP. The setup is two minutes; the reason to do it in Cursor rather than a chat app is what sits next to the tools — your codebase, in the same Agent session as your ad account. Per-client config for every other client lives on the MCP clients pillar; this page is Cursor's specifics.

Add the server

Open Cursor Settings, find the MCP section, and add a new server — Cursor edits mcp.json for you, or you can write it directly:

{
  "mcpServers": {
    "adcopilot": {
      "url": "https://mcp.adcopilot.cloud/c/<your connector key>/mcp"
    }
  }
}

Cursor-specific details that matter:

  • The field is url for a remote server — Cursor detects the transport from the endpoint, so streamable HTTP needs no extra flags.
  • Two possible homes: ~/.cursor/mcp.json (global, every project) or .cursor/mcp.json (this project only). Use the global one. The project file lives in the repo, repos get shared, and the address is a credential — treat it like an API key, because it behaves like one. The security model explains what the key can and cannot reach.

Back in the MCP settings page, the server should show as connected with a tool count in the thirties — reads like search, writes like create_campaign and add_negative_keywords. Toggle it on if it is not already.

First prompts — in Agent mode

MCP tools run in Cursor's Agent mode, not plain autocomplete or a bare chat. Open an Agent chat and start with reads:

List the Google Ads accounts you can see.
In account <account>: last 14 days of spend, conversions and cost per
conversion by campaign. Then the top 10 search terms with cost and no
conversions. Read-only — change nothing.

Reads execute without ceremony. The first write — adding a negative, creating a paused campaign — makes Cursor stop and show the tool call for your approval before running it. Keep that behaviour: auto-run belongs to read-only servers, and the reasoning — which calls to graduate, which to gate forever — is the approval workflow.

The actual point: ads and code in one session

Everything above works in any client. What Cursor adds is that the agent holding your ad account also holds your repository, and real tasks live across both:

Read the hero copy and pricing section of app/landing/page.tsx. Now pull
the responsive search ads in campaign <campaign> from account <account>.
Where do the ads promise something the page no longer says? Propose ad
copy updates — show me before creating anything.
We renamed the /pricing route in this repo. Which enabled ads or
sitelinks in account <account> still point at the old URL? List them,
then create replacement sitelinks on the new route for the ones I
confirm — I'll retire the old links in the Google Ads UI.

Message-match audits, URL drift after refactors, drafting a campaign for the feature you just shipped from the code that implements it — these are one-session jobs in Cursor and multi-tool afternoons anywhere else. Audit output can land in the repo too: ask for findings written to a markdown file and commit it, the same file-based pattern that makes terminal clients good at recurring checks.

Quirks

  • Agent mode only — if the tools seem missing, check which mode the chat is in before debugging config.
  • JSON errors fail silently — a stray comma and Cursor just ignores the file. The MCP settings page showing the server is your parse check.
  • Restart-ish — config changes usually surface on toggling the server or reopening settings; a full restart is the reliable fallback.
  • Same address everywhere — the URL works unchanged in Gemini CLI, Claude and Copilot. One connector, many clients; if it connects nowhere, that is a troubleshooting matter, not a Cursor one.

Five-minute version: paste the JSON into the global mcp.json, open an Agent chat, run the two read prompts, and try the message-match audit on a page you actually ship. No connector yet? Start a free pilot — your own Google sign-in, a private address, and Cursor is one paste from your ad account. Seven days, up to five accounts, no card.

Frequently asked questions

Why don't the ads tools show up in my Cursor chat?

Three usual causes: the chat is not in Agent mode — MCP tools only run there; the server toggle in Settings → MCP is off; or the JSON has a syntax error, in which case Cursor ignores the file quietly. Check the MCP settings page first — a healthy server shows its status and a tool count — then fix mode or JSON accordingly.

Should the connector go in project mcp.json so my team gets it?

No. A project .cursor/mcp.json gets committed, and the connector address is the credential — anyone who reads the repo could act on the ad account as you. Keep it in the global ~/.cursor/mcp.json. Teammates should each connect with their own Google sign-in and get their own address; that keeps access individually revocable and changes correctly attributed.

Is it safe to let Cursor auto-run MCP tools?

Auto-run is fine for a server that can only read; this one can write. Keep the ask-before-run behaviour for the ads server, whatever you allow elsewhere — the confirmation you would be skipping is the only human step between a misunderstood instruction and a changed campaign. Reads never need the ceremony; writes always deserve it.

The offer

Try it on your own account for a week

The full set of tools for the week, so you can see what it actually does — and it still cannot delete anything. No cost, no card, no contract: you connect your own Google account and can withdraw the access whenever you like.

  • Up to 5 accounts
  • One week
  • Full tools
  • No card
Keep reading