Google Ads in Cursor

Connect Google Ads to Cursor and run your campaigns from the editor

Opus Growth is a hosted MCP connector. Paste one mcpServers block into ~/.cursor/mcp.json, sign in with Google, and Cursor's agent gains Google Ads tools right next to your code, reports, campaign builds, budgets, keywords and creatives. Reads answer immediately; anything that changes the account comes back as a preview you approve. The same connector also drops into VS Code, Codex and Gemini CLI.

  • Official Google sign-in, no developer token
  • Every change previewed first
  • Agency and multi-account ready
CursorOpus Growth connected
Build a landing page for the cold brew subscription and a Google Ads search campaign that points to it.

Figures in these pictures belong to a sample business, Kettle & Co. The steps, previews and approvals are how Opus Growth really works.

TrustpilotTrustScore 4.2 · 13 reviews
4.7 / 5Panel rating
Google AdsGoogle Ads APIOfficial platform APIs
PaddleSecure payments

Do I need a developer token or a local MCP server?

No. Opus Growth is a hosted MCP server: Cursor reads one URL from mcp.json and the first tool call opens a Google sign-in. There is no developer token to apply for, no package to install and no process to keep running on your machine.

Google Ads, Meta Ads, Microsoft Advertising, TikTok Ads, LinkedIn Ads and ChatGPT Ads are live in Cursor today.

Your own Google Ads API script
  • Full control over every request
  • Developer token, OAuth client and refresh token to manage
  • One platform, written and maintained by you
Opus Growth
  • One mcpServers block, a URL and nothing else
  • Google Ads, Meta, Microsoft, TikTok and LinkedIn
  • Every account change previewed before it applies

What Cursor's agent can do with your Google Ads account

Each picture is a real agent session: the request, the files and the account it reads, and the change it proposes.

The page and the ad get written in the same session

The agent already has your pricing page, feature components and landing copy open. Ask for responsive search ad headlines and they come from the copy that actually ships, real plan names, real prices, real feature wording, instead of a summary you pasted into a chat window an hour ago. It works in reverse too: have it compare the headlines on your live ads with the hero copy of the page they point to, and rewrite whichever one drifted.

CursorOpus Growth connected
Write the ad copy from the headline and price on this page.

Ship the route and the campaign together

The commit that adds /pricing/enterprise is also the right moment to build the Search campaign pointing at it. Create the campaign, the ad group and the ads, and attach sitelinks aimed at routes you wrote four minutes ago rather than routes you half-remember. No tab switch, no copying URLs by hand, and the whole thing waits as a staged preview until you approve it.

CursorOpus Growth connected
The /cold-brew route is merged. Turn the campaign on.

Guardrails sized for an agent that keeps going on its own

Cursor's agent chains tool calls, and plenty of people leave auto-run enabled, which is exactly why the write path is gated on the server side. Every account-changing action comes back first as a dry run, account, entity, current value, proposed value, and is applied only after an explicit confirmation. A budget increase of more than 50% in one step or 100% within 24 hours, like a cut deeper than 80%, is refused outright. Everything applied is written to an audit log you can read back later. That is the entire safety model; the rest of this page assumes it.

CursorOpus Growth connected
Clean up the repo, then pause the ad groups that point to pages we just deleted.

Tag Manager and GA4 wiring without a browser detour

Google Tag Manager tools plus 10 GA4, 6 Search Console and YouTube tools mean the developer wiring a conversion can create the tag and the trigger, publish the container version, and then confirm the event is arriving, in the same window as the button component that fires it.

CursorOpus Growth connected
Add a GA4 event for subscription_start in Tag Manager, using the dataLayer push this repo already has.

One JSON block, and the same connector in every editor

~/.cursor/mcp.json takes a single mcpServers entry pointing at https://mcp.opus-growth.com/mcp. VS Code uses the same address in.vscode/mcp.json under a servers key with "type": "http", Codex takes the TOML equivalent in ~/.codex/config.toml, and Gemini CLI adds it with one command. No npm package, no local process to keep alive, and no credential in any of these files: they hold a URL and nothing else.

One block in ~/.cursor/mcp.json
The whole installation
mcpServersopus-growth
urlmcp.opus-growth.com/mcp
Credentials in the fileNone
VS Code uses the same URL in .vscode/mcp.json, under servers with type http.

The answer lands in your repo, not just the chat pane

Because Cursor writes files, reporting does not have to stop at a message. Ask for last week's spend, conversions and CPA across Google Ads, Meta Ads, Microsoft Advertising, TikTok, LinkedIn and ChatGPT Ads, have it written into docs/marketing/weekly.md, and commit the report next to the code it is reporting on. Next week's run then diffs against a file instead of a screenshot.

docs/marketing/weekly.md
Committed next to the code
Google Ads$1,400
Meta Ads$700
Microsoft Advertising$200
Cost per subscriptionAll platforms, last 7 days$12
The report is a file in the repository, so its history is in git.

How to connect Google Ads to Cursor

One file, one reload, one Google sign-in. The fourth step covers the other editors.

  1. 1

    Create ~/.cursor/mcp.json

    Open (or create) ~/.cursor/mcp.json and paste: { "mcpServers": { "opus-growth": { "url": "https://mcp.opus-growth.com/mcp" } } }, that is the whole installation. Nothing to npm install, no local server to run, and no API key or developer token anywhere in the file.

  2. 2

    Reload Cursor and sign in with Google

    Restart Cursor or reload the window so the file is read; opus-growth then appears in Cursor's MCP settings with its tool list. The first tool call opens hosted OAuth in your browser: sign in with Google, approve access, and choose exactly which ad accounts the connector may work with. About 60 seconds end to end.

  3. 3

    Ask in agent mode, then approve

    MCP tools are invoked by Cursor's agent, so use agent mode rather than a plain editor question. Read requests answer immediately. Anything that would change the account stops at the preview until you confirm it.

  4. 4

    Same connector, other editors and CLIs

    VS Code reads.vscode/mcp.json with { "servers": { "opus-growth": { "type": "http", "url": "https://mcp.opus-growth.com/mcp" } } }. Codex uses ~/.codex/config.toml with an [mcp_servers.opus-growth] section and the line url = "https://mcp.opus-growth.com/mcp". Gemini CLI is one command: gemini mcp add -t http opus-growth https://mcp.opus-growth.com/mcp. Your Opus Growth account and your ad account authorization carry across all of them, so you set up the connection once and use whichever client you are in.

Cursor prompts for Google Ads

Paste any of these into Cursor's agent inside your project.

Read src/app/pricing/page.tsx, then write 15 responsive search ad headlines and 4 descriptions using the real plan names and prices, and stage the ad in my Brand campaign for approval.

Compare the headlines on my live search ads with the hero copy in app/(marketing)/page.tsx and rewrite the ones that no longer match the page.

The /integrations route ships today, create a paused Search campaign with a $60 daily budget, one ad group of exact-match keywords for our integration names, and sitelinks pointing at the routes in this repo.

Create a GTM tag and trigger for the signup button in components/signup-modal.tsx, then publish the container version.

Which pages in this repo get Search Console impressions but almost no clicks? Cross-check with GA4 and tell me which two to rewrite first.

Pull the last 30 days of spend, conversions and CPA across Google Ads, Microsoft Advertising, TikTok, LinkedIn and ChatGPT Ads and write the summary to docs/marketing/weekly.md.

Run a search-terms audit on my Search campaigns and add the obvious waste as phrase-match negatives, show me the list before anything is applied.

Nothing reaches Google Ads without your yes.

Every change comes back as a preview first. If a request breaks a safety limit, the assistant says so and offers what is allowed.

  • Preview before every write

    You see the item, the current value and the new value before anything is applied.

  • Budget limits

    A budget can rise by at most 50% in one step and 100% within 24 hours, and a single cut cannot go deeper than 80%.

  • New campaigns start paused

    Anything the agent creates in an ad account stays paused until you turn it on.

  • Every action is logged

    Applied changes are recorded with the account and the time.

CursorOpus Growth connected
Delete the old campaigns while you are cleaning up.

Cursor with Opus Growth, or your own API script

Time to first working call

Opus GrowthPaste one JSON block, reload Cursor, sign in with Google. Roughly a minute, and the first report runs in the same session.

Writing your own Google Ads API script: Apply for a developer token, register an OAuth client, mint a refresh token, install a client library, then debug your first GAQL query. Days of elapsed time, not minutes.

Credentials

Opus GrowthHosted OAuth. The config file holds a public URL and nothing else, so there is no secret in your dotfiles or your repository.

Writing your own Google Ads API script: You hold the client ID, client secret, refresh token and developer token, and you own keeping them out of git, out of logs and rotated.

Coverage you get on day one

Opus GrowthGoogle Ads, Meta Ads, Microsoft Advertising, TikTok, LinkedIn and ChatGPT Ads on day one, with Tag Manager, GA4, Search Console and YouTube behind the same connection.

Writing your own Google Ads API script: Exactly what you build. Every extra report type, mutate operation or additional platform is another chunk of work you own permanently.

Safety on writes

Opus GrowthPreview and confirmation enforced on the server, plus the budget caps (50% per step, 100% within 24 hours, 80% per cut), so the guardrail holds even when the agent is running unattended.

Writing your own Google Ads API script: Whatever guardrails you remember to write. A mutate call with a wrong micros value applies the moment it is sent.

Maintenance

Opus GrowthAPI version upgrades, deprecated fields and token refresh are handled by the hosted service. Nothing on your side breaks quietly.

Writing your own Google Ads API script: Google Ads API versions retire on a schedule, so keeping the client, the queries and the mutate payloads current is permanent background work.

Who on the team can use it

Opus GrowthAnyone who can open Cursor, VS Code, ChatGPT or Claude, the marketer does not need to run your script or read your code.

Writing your own Google Ads API script: Whoever can execute the code and holds the credentials, which in practice is usually one engineer.

Where it runs

Opus GrowthRemote and hosted. No process on your laptop, no cron box, nothing to pay for or babysit.

Writing your own Google Ads API script: Somewhere you host it: a laptop, a scheduled job, a serverless function, each with the credentials it needs to run unattended.

Cost

Opus GrowthFree trial with 75 credits that never expire and full write access, then $49/month Pro with one ad account per platform or $99/month Agency for multiple accounts.

Writing your own Google Ads API script: No licence fee, then your engineering hours to build it and more hours every time the API or the requirement moves.

When it is the right choice

Opus GrowthYou want ad operations available conversationally, in the editor, today, and you would rather spend the week on product.

Writing your own Google Ads API script: You need a bespoke pipeline, unusual bulk logic or something no tool exposes. In that case building it really is the right call.

What users say about running Google Ads this way

Real reviews, shown as written.

5/5
“Using it for g-ads and microsoft ads including meyword planner. Not building campaigns from the ads editor anymore :) just review and take them live.”
irfan eltem · DE · July 23, 2026 · Trustpilot
Trustpilot
4.2/ 5
4.2 / 5

Based on 13 reviews · All Trustpilot reviews

In-panel rating
4.7/ 5

22 ratings, 19 of them 5 stars

All in-panel ratings come from people who use the product themselves. We check this against purchase records.

Start free trial, upgrade as you grow.

Free

$0

per month

no card needed

Start free trial

Try it on your own ad account before you buy.

What's included

  • 75 credits that never expire*
  • Google, Meta, TikTok, LinkedIn, Microsoft and ChatGPT Ads
  • Use from ChatGPT, Claude and other assistants
  • Every tool, live changes included
  • Preview and approval on every change
  • Budget safety limit and audit log
  • When credits run out, usage pauses; no charge
  • *For example about 37 reports or 25 account audits.

Pro

Most popular

$49

per month

billed monthly

Choose Pro

For a business running its own ads.

What's included

  • 5,000 credits renewed every month*
  • 1 ad account per platform
  • Google, Meta, TikTok, LinkedIn, Microsoft and ChatGPT Ads
  • Use from ChatGPT, Claude and other assistants
  • Data Studio (Looker Studio) reports under your brand**
  • Preview and approval on every change
  • Budget safety limit and audit log
  • Priority support from a person
  • *Every job your AI does uses credits: a report is 2, an account audit 3, building a campaign 8.
  • **Give your client a live report dashboard with your own logo.

Agency

$99

per month

billed monthly

Choose Agency

For anyone managing ads for several clients.

What's included

  • Unlimited credits*
  • Every client account through your manager account (MCC)**
  • Switch clients without reconnecting
  • 1,000 SEO/GEO credits every month***
  • Google, Meta, TikTok, LinkedIn, Microsoft and ChatGPT Ads
  • Use from ChatGPT, Claude and other assistants
  • Data Studio reports, preview and approval
  • Budget safety limit and audit log
  • A dedicated account manager and priority SLA
  • *Ask for reports, audits and changes without counting.
  • **As an agency you don't connect clients one by one.
  • ***Run keyword, competitor, backlink and AI-visibility research from the chat.

All-in-One

$149

per month

billed monthly

Choose All-in-One

For ads, websites and SEO on one subscription.

What's included

  • Everything in Agency: unlimited credits, MCC, client switching
  • AI Server: 30 GB for your websites, up to 15 sites*
  • 15,000 SEO/GEO credits every month**
  • WordPress plugin for one site***
  • Google, Meta, TikTok, LinkedIn, Microsoft and ChatGPT Ads
  • Use from ChatGPT, Claude and other assistants
  • Data Studio reports, preview and approval
  • Budget safety limit and audit log
  • A dedicated account manager and priority SLA
  • *Build, edit and publish your website by telling ChatGPT or Claude what you want.
  • **Run keyword, competitor, backlink and AI-visibility research from the chat.
  • ***Manage posts, pages and plugins on your existing WordPress site from the chat.

Enterprise

Custom

Let's talk

For teams and organizations arriving with their own domain. We listen to what you need and put together an offer for your team.

Contact us

Everything in Agency, plus:

  • Unlimited members; add or remove teammates yourself
  • A role per person: admin, member or read-only
  • Credits per seat; any seat can be made unlimited
  • See each member's credits and connected platforms
  • One central subscription and invoice
  • Your own domain and a dedicated contact

Prices in USD · Secure payment via Paddle · Cancel in one click

Google Ads in Cursor: frequently asked questions

Open ~/.cursor/mcp.json and add the connector: { "mcpServers": { "opus-growth": { "url": "https://mcp.opus-growth.com/mcp" } } }. Reload the Cursor window so the server is picked up, then trigger a tool from agent mode. Cursor opens hosted OAuth in your browser, you sign in with Google and choose the Google Ads accounts the connector may touch. From empty file to first report is about a minute, and there is nothing to install locally.

No. Opus Growth is a remote MCP server over HTTP, so there is no npm package, no Docker container and no stdio process on your machine that has to be running when you ask a question. It also means there is no Google Ads developer token to apply for, no OAuth client to register and no refresh token to keep out of git: you sign in with Google once through hosted OAuth and pick the accounts the connector may use. The practical difference on a laptop is that there is nothing to restart and nothing to update, and a second machine works the moment you paste the same block.

~/.cursor/mcp.json is the user-level file, so the connector is available in every project you open. A.cursor/mcp.json in a repository root scopes it to that one codebase instead, and VS Code's.vscode/mcp.json works per workspace in the same way. Both are safe to commit: the file contains a public URL and no credentials at all, no API key, no client secret, no refresh token, so putting it in git leaks nothing. Each teammate still signs in with their own Google account and selects their own ad accounts on first use, so access is granted, and revoked, per person.

Three things, in order. Reload the window first: Cursor reads MCP configuration at startup, so a file edited while the window is open has not been seen yet, and this is the most common cause by a distance. Then check that the JSON is valid, one trailing comma or a missing brace makes the whole file unreadable and the server simply does not appear. Finally, make sure you are in agent mode, because MCP tools are called by the agent and a plain editor question will never trigger one. If the server is listed but every call fails, the OAuth step has not been finished: trigger any tool and complete the browser sign-in.

No. It is a remote MCP server and it only ever receives the arguments of the tool calls the agent makes: a customer ID, a date range, the headline text to create, a budget value. It has no filesystem access and does not index your repository. When you ask for headlines based on your pricing page, Cursor is the side that reads the file locally; what reaches us is the copy the agent composed as a tool argument. You decide what leaves the editor.

No, because the gate is not in Cursor. Even with auto-run fully enabled, a write tool returns a dry-run preview instead of performing the change, and applying it needs a separate explicit confirmation; a budget increase of more than 50% in one step or 100% within 24 hours, like a cut deeper than 80%, is refused whatever the client is set to. Client-side approval settings can only make the agent faster at proposing things, they cannot hand it spend authority. Worth knowing before you switch auto-run on with an ad account connected.

Yes, same connector, different file. VS Code:.vscode/mcp.json with a servers entry of type http and the same URL. Codex: ~/.codex/config.toml with an [mcp_servers.opus-growth] section and url = "https://mcp.opus-growth.com/mcp". Gemini CLI: gemini mcp add -t http opus-growth https://mcp.opus-growth.com/mcp. It also works in Claude, Claude Code and ChatGPT, and because the authorization lives with your Opus Growth account rather than with the editor, connecting once covers every one of them. In ChatGPT, open the published Opus Growth plugin at opus-growth.com/chatgpt, install it, approve the Opus Growth sign-in, then start a chat with @Opus Growth.

That depends on the plan, and it is worth being blunt about. The free trial and Pro connect one ad account per platform: you choose which one, you can change it, but the agent works one account at a time. Agency removes the lock, several connected accounts plus manager (MCC) hierarchies through login-customer-id, so one request can span client accounts. If you run ads for one brand, Pro is the right plan. If you run them for clients, only Agency does what you are picturing.

It is not read-only. The trial needs no card, its 75 credits never expire, and write actions such as creating campaigns and adding negatives are included. Each action costs credits by weight: creating a Search campaign is 8, adding a batch of keywords 5, an account audit or keyword research 3, and a performance or search-terms report 2, while connecting an account and checking your usage are free. So 75 credits cover, for example, 25 account audits, 37 reports, or 5 Search campaigns with their keywords. After it, Pro is $49/month for 5,000 credits with one ad account per platform and Agency is $99/month for unlimited credits and multiple accounts; yearly is $490 and $990, billed in USD through Paddle as merchant of record, cancel anytime. There is also All-in-One at $149 a month, which adds an AI Server and 15,000 SEO credits every month, and Enterprise for teams, priced on request.

Connect your Google Ads account in a minute.

Paste one block into ~/.cursor/mcp.json, sign in with Google, and make your first approved campaign change without leaving the editor. Free trial, 75 credits that never expire, full write access, no card required.