ContextBolt SEO Free for 7 days. Keywords, SERPs, backlinks and AI visibility, inside Claude. SEO data inside Claude. Start free trial
Guide · Google Ads MCP

Google Ads MCP: The Official Server and Google's New Rules

Google Ads is Google’s pay-per-click ad platform, and Google publishes a free MCP server for it. MCP is the open standard that lets an AI assistant like Claude or ChatGPT call another product’s tools directly. Once it’s connected, Claude can read last month’s search terms report and point at the queries that burned money.

Guides written as recently as July get step one wrong. They tell you to get a developer token. Google retired developer tokens on September 9, 2026, and tied API access to your Google Cloud project instead.

That move built a new wall. Since October 9, people setting up Google’s server on fresh projects report being refused within a minute. Their agents get the same reply, “The Google Cloud project is only approved for use with test accounts.”

We’d still run Google’s read-only server on your own project, and vet any hosted server before it touches your account. Google’s rewritten developer policy now names MCP servers among the hosted wrappers it prohibits.

Quick answer
  • Google ships an official server. googleads/google-ads-mcp is free, open source and read-only. Its search tool can query 181 resource types, but nothing in it can change a bid or pause a campaign.
  • The developer token is gone. Since September 9, 2026, access belongs to your Google Cloud project. Explorer access reaches live accounts and allows 2,880 operations a day.
  • Some new projects are hitting a wall. Between October 9 and 13, 2026, five users reported Explorer applications refused within a minute. Google’s maintainer says it is being investigated.
  • Hosted servers skip the setup, and some can change budgets. Google’s August 31, 2026 policy prohibits MCP servers that only wrap its API, so ask any vendor whose Cloud project carries your requests.
  • Check the paid terms you may already earn. ContextBolt SEO reads your real position for each paid term from Search Console, or checks the top 10 if you haven’t connected it, with volume, difficulty and cost per click.

What Google’s own server does

Google surveyed developers about an Ads MCP server in July 2025, then released the Google Ads API MCP Server as open source on October 7, 2025. The launch post was blunt. “This initial release is read-only, meaning it can be used for reporting and diagnostics but will not make changes to your account.”

A year on, that still holds. Checked on October 15, 2026, googleads/google-ads-mcp on GitHub is on v0.0.5 from October 9, with 1,043 stars and an Apache 2.0 license. If MCP itself is new to you, our plain explainer covers it without the jargon.

Read from its source, the server offers three tools. By default your client shows each with a category prefix, such as customers_list_accessible_customers.

  • list_accessible_customers: returns the account IDs your Google login can reach.
  • get_resource_metadata: lists the fields you can select, filter and sort for a resource such as campaign.
  • search: runs the report. The agent passes fields, a resource and filters, and the server writes the GAQL query. GAQL is Google Ads Query Language, the SQL-like language the API speaks.

The search tool’s description lists 181 resources it can query, from campaign to search_term_view. Google’s integration guide puts the limit in one line. “It cannot modify bids, pause campaigns, or create new assets.”

Read-only lives in the tool list

Google’s OAuth docs name a single scope for the Ads API, adwords, and it covers changes as well as reports. A comment in the server’s own code says Google publishes no read-only scope. So the server is read-only because it offers no write tools, not because of what you signed in with.

That matters the day you swap servers. Point another server at the same sign-in and it can do whatever your Google Ads user role allows.

Writes are coming here too. On June 4, 2026 a Google maintainer said write access is planned, with each write tool switched on or off in a config file. None had shipped by v0.0.5.

No hosted version yet

You run Google’s server yourself, on your machine or on Google Cloud Run. Google’s guide mentions a hosted endpoint pilot for allowlisted participants, but its setup page isn’t public. On October 15, 2026 it returned a 404.

The developer token is gone, and the gate moved

Until September 9, 2026, every Google Ads API call carried a developer token. It was a 22-character string from the API Center in a Google Ads manager account, and its access level decided what you could touch.

Google sunset it that day. Access now belongs to the Google Cloud project that owns your OAuth client. You can still send a token, but Google calls it “optional and ignored by the API servers.”

You don’t need a manager account either. A new project starts on Test access, which only reaches test accounts that never serve ads. Google’s access levels page sets out the ladder.

LevelReachesDaily operationsHow you get it
TestTest accounts only15,000Automatic when you enable the API
ExplorerLive and test accounts2,880 on live accountsApply in the Cloud Console, reviewed automatically
BasicLive and test accounts15,000Brand verification, then a review in minutes
StandardLive and test accountsUnlimitedManual audit, typically 10 business days

Explorer is enough for an MCP. A report is one operation, so 2,880 a day is one every 30 seconds, around the clock.

The catches are small. Failed requests still count, and Explorer blocks Google’s planning services, Keyword Planner’s ideas included.

The October wall

On paper, Explorer is reviewed automatically. This month, some new projects are being turned away.

Google’s own known issues list says projects on a Google Cloud Free Trial, or with suspended or disabled billing, are being rejected. Google says it has found the root cause and is working on a fix.

Fixing billing doesn’t always help. In issue #133 on Google’s repo, five people describe Explorer refused within a minute between October 9 and 13, 2026, most after moving to paid billing, with no email saying why. On October 13 a Google maintainer replied that the problem “is being investigated.”

If you have a project that made API calls with an approved token in the 90 days before September 9, it inherited that access, so use it. Otherwise contact Google Ads API support and work from a CSV export in the meantime.

Set it up in Claude

To connect Google Ads to Claude with Google’s server, you’ll need Python 3.10 or later, pipx and Google’s gcloud CLI. There are four steps, and the first is the one that can stall.

  1. Get production access: in the Google Cloud Console, enable the Google Ads API, open its Overview page and apply for Explorer.
  2. Create a Desktop OAuth client in that same project: access follows the project that owns the client. If the consent screen is in Testing, add yourself as a test user.
  3. Sign in once with gcloud: this saves credentials where the server looks for them.
  4. Add the server to Claude: one command in Claude Code, or one block in Claude Desktop.

The commands below are for a Mac or Linux terminal, or Git Bash on Windows.

ADS=https://www.googleapis.com/auth/adwords
CLOUD=https://www.googleapis.com/auth/cloud-platform
gcloud auth application-default login \
  --client-id-file=client_secret.json \
  --scopes="$ADS,$CLOUD"

Point it at the JSON file you downloaded for your OAuth client, and copy the credentials path gcloud prints at the end. Google now asks for a passkey at this sign-in, a change that began rolling out on August 5, 2026. It warns a 7-day security delay may apply to a new passkey, so set one up before you start.

In Claude Code, one command adds the server to all your projects. Claude Code keeps MCP servers in ~/.claude.json or a project’s .mcp.json, not the settings.json file Google’s README points to.

claude mcp add google-ads --scope user \
  --env GOOGLE_PROJECT_ID=YOUR_PROJECT_ID \
  --env GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIALS_JSON \
  -- pipx run --spec \
  git+https://github.com/googleads/google-ads-mcp.git \
  google-ads-mcp

In Claude Desktop, open Settings, then Developer, then Edit Config. Paste Google’s block into claude_desktop_config.json and restart Claude.

{
  "mcpServers": {
    "google-ads-mcp": {
      "command": "pipx",
      "args": [
        "run",
        "--spec",
        "git+https://github.com/googleads/google-ads-mcp.git",
        "google-ads-mcp"
      ],
      "env": {
        "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID",
        "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON"
      }
    }
  }
}

If you reach the account through a manager account, add GOOGLE_ADS_LOGIN_CUSTOMER_ID with the manager’s ID. Since v0.0.4 on September 25, 2026, the agent can also pass it per call.

Google’s README now documents Antigravity and Codex too, each with its own setup. Until a June 30, 2026 rewrite it documented Gemini CLI, which reads this same mcpServers block from ~/.gemini/settings.json.

Ask “what customers do I have access to?” first. It’s a single call, and it proves the sign-in works before you ask for anything bigger.

Hosted options, and the question to ask them

Hosted servers skip the Cloud project, the OAuth client and the wait. You sign in to the vendor, connect Google Ads with your Google login, and paste one URL into your assistant. Prices below were read from each vendor’s own page on October 15, 2026.

OptionReads or writesStarts at
Google’s google-ads-mcpReads onlyFree, you host it
AdzviserReads only14-day trial, then $48.99 a month
PipeboardReads and writes, new campaigns pausedFree tier, Pro US$29.90 a month
AdspirerReads and writes, new campaigns pausedFree for 15 tasks a month, Plus $49 a month ($40 billed annually)
MarkifactReads and writes, each write approved200 free credits, Pro from $79 a month
CData Connect AIReads and approved writes14-day trial, then $99 a month

None of the hosted options asks you for a Cloud project, so the October wall doesn’t block you. Several also cover Meta, which our Meta Ads MCP guide walks through.

Two general hubs cover Google Ads too. Composio’s toolkit has 36 tools, budget edits included, on a free Hobby tier. Zapier’s MCP can pause or enable a campaign but lists no budget or bid action, and each successful call uses two Zapier tasks.

If you already pay for Optmyzr, check its MCP first. Asked whether it changes your account directly, Optmyzr’s answer is “No, the changes happen inside Optmyzr after you review them.”

To add a hosted server to Claude Desktop, go to Customize, then Connectors, then +, then Add custom connector, and paste the vendor’s URL. Pipeboard’s is https://google-ads.mcp.pipeboard.co/ and Adspirer’s is https://mcp.adspirer.com/mcp. For Google Ads in ChatGPT, custom MCP connectors depend on your plan, so check yours first.

Ask whose Cloud project it uses

On August 31, 2026, Google rewrote its developer policy. An archived copy from August 21 never mentions MCP. Today’s Google Ads Developer Policies name it directly.

The policy prohibits any “third-party hosted interface, secondary API, wrapper service, or MCP server” that “solely replicates, wraps, or re-exposes Google Ads programmatic capabilities as an intermediate layer.” Agencies and advertisers, it adds, must use “their own Google Cloud Platform account and Google Ads access.”

It also says what’s fine. The rule doesn’t restrict “open-source tools where the end-users download the software and connect it to Google Ads using their own access credentials.” That describes Google’s own server on your own project.

Google hasn’t said how it applies this to any named product, and each vendor above adds features of its own. Its August 31 announcement does say the Ads API compliance team is “actively reviewing existing integrations.” So ask before you connect, and use our guide to vetting an MCP server for the rest of the checklist.

What goes wrong

Each of these comes from Google’s docs or a public issue report.

  • “Only approved for use with test accounts”: your project is still on Test access. From v25 the API calls it CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION. Apply for Explorer, and see the October wall above if you’re refused.
  • “User doesn’t have permission to access customer”: you reach the account through a manager account. Set the manager’s ID as the login customer ID.
  • Sign-ins that expire: an OAuth consent screen left in Testing gets refresh tokens that last 7 days. One user on a Workspace account with session control reports a 503, “Reauthentication is needed”, every 12 to 16 hours.
  • Week filters: filter segments.week on a date that isn’t a Monday and you get MISALIGNED_DATE_FOR_FILTER. Daily and weekly data only go back 37 months.
  • Missing Performance Max terms: search_term_view leaves out Performance Max. Google points you to campaign_search_term_view for those.
  • Money in micros: cost comes back as cost_micros, and one million micros is one unit of your account currency. A value of 12500000 is 12.50, so check the agent divided.
  • Oversized answers: the search tool has no default row limit, and Claude Code caps MCP output at 25,000 tokens unless you raise it. Ask for a top 25 or 50.
  • Failed queries cost quota: a rejected request still counts as an operation. The search tool’s own description tells the agent to look fields up rather than guess.
  • A popular community server is stuck: cohnen/mcp-google-ads has 712 stars but still calls API v19, which Google switched off on February 11, 2026. Seven pull requests to update it sit unmerged. It also still demands a developer token.
  • Same name, different server: several projects share the name. Google’s is published by googleads, and its maintainers have fielded bug reports for tools it doesn’t have.

Three prompts to start with

All three only read. If you have more than one account, the agent will ask which one to use.

Find wasted spend

Use the Google Ads tools. Read only, change nothing.
If I have more than one account, list them and ask
which one to use.
1. Pull search terms from the last 30 days that cost
   money and got zero conversions.
2. Show the top 25 by cost, in my account currency,
   not micros.
3. Group them by theme and suggest negative keywords.
   Do not add any.

Behind the scenes, Google’s server turns that request into a GAQL query like this one, and writes the query it ran to its log.

SELECT search_term_view.search_term,
  campaign.name,
  metrics.clicks,
  metrics.cost_micros,
  metrics.conversions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
  AND metrics.cost_micros > 0
  AND metrics.conversions = 0
ORDER BY metrics.cost_micros DESC
LIMIT 25

Skim it the first time. A missing date filter or the wrong resource is easy to spot, and checking once is a quick way to trust what comes back.

Check target CPA

Use the Google Ads tools. Read only.
For each enabled Search campaign, compare cost per
conversion over the last 14 days with its target CPA,
if it has one. List campaigns more than 20% over
target, with spend, conversions and the gap.

Compare week over week

Use the Google Ads tools. Read only.
Compare last week, Monday to Sunday, with the week
before for every enabled campaign. Show cost, clicks,
conversions and cost per conversion side by side.
Flag any change over 25% and name the search terms
that drove it.

None of these tell you which paid terms your site already ranks for. Google’s paid and organic report gets partway there, and the official server can query it as paid_organic_search_term_view. It needs Search Console linked to Google Ads, holds organic data only from the day you linked, and says nothing about a term’s difficulty or who holds the top spots.

Where ContextBolt fits

ContextBolt is ours, so weigh the bias. ContextBolt SEO is a hosted SEO MCP server that gives your agent keyword volume, difficulty and cost per click, who ranks for a term, the keywords a domain ranks for, and your own Search Console clicks, queries and positions once you connect it.

Its figures are estimates from a large keyword index, decision-useful and directionally right. Next to a Google Ads MCP, the overlap check becomes one prompt.

Reading your Search Console data costs no credits. Volume and difficulty cost 1 credit a term, and a top-10 check 1 more, so 20 terms run about 20 to 40 credits.

Run the overlap check

Read only. Use Google Ads to list my 20 most expensive
search terms from the last 30 days, with conversions.
Then use ContextBolt SEO. If my Search Console is
connected, get my average position for each term from
it. If not, check the top 10 for each term and say if
my site is in it. Add volume, difficulty and cost per
click for each. Ask me for my domain if you need it.
Put it all in one table. Mark terms where I rank in
the top 3, and converting terms where I don't rank.

Then you decide. A term you already rank first for might not need the same bid, or it might, if the ad wins clicks your listing wouldn’t, so test a change before you commit to it. A converting term where you don’t rank, or sit outside the top 10, is a brief for your next article, and our keyword research guide picks up from there.

With ContextBolt SEO, the agent is where you ask, and every lookup saves automatically to your SEO Dashboard. The 7-day free trial includes 100 credits and requires a card. After that it is $35 a month with 1,000 credits.

Worth setting up?

Yes, if you can get Explorer access on your own project. Google’s server is free, it can’t touch your budget, and it’s the setup Google’s new policy says it doesn’t restrict.

If your project is stuck on Test this month, don’t burn a week on it. Export the search terms report as a CSV and paste it in, or pick a hosted server after asking it the Cloud project question.

Either way, start with the wasted spend prompt. Then run the overlap check with ContextBolt SEO and see where your 20 most expensive search terms already rank.

Frequently asked questions

Something else on your mind? Get in touch.

Is there an official Google Ads MCP server?

Yes. Google released googleads/google-ads-mcp as open source on October 7, 2025. It is free, Apache 2.0 licensed and read-only, with three tools that list your accounts, look up fields and run reports. As of October 15, 2026 there is no public hosted version, so you run it yourself or on Cloud Run.

Do I still need a Google Ads developer token?

No. Google sunset developer tokens on September 9, 2026. Access levels now belong to the Google Cloud project that owns your OAuth client, and the API ignores a token if you still send one. Apply for Explorer, Basic or Standard access on the Google Ads API Overview page in the Cloud Console.

Can a Google Ads MCP change my bids or budgets?

Google's official server cannot. Its guide says it cannot modify bids, pause campaigns or create new assets. Hosted servers such as Pipeboard, Adspirer and Markifact can make changes, and Composio exposes budget edits. Start read-only, and add a write-capable server only after checking who holds the access and how changes get approved.

How do I connect Google Ads to ChatGPT?

Use a hosted server that ChatGPT can reach. Adspirer has a ChatGPT app, which it says needs Plus, Pro, Business or Enterprise. Adding your own MCP connector depends on your ChatGPT plan, so check that first. Google also documents a route for its own server, deployed on Cloud Run with your own OAuth client.

Why does my Google Ads MCP say my project is only approved for test accounts?

Your Google Cloud project is still on Test access, which only reaches test accounts. Apply for Explorer on the Google Ads API Overview page. If you are refused within a minute, check your billing is not a Free Trial account. Since October 9, 2026 some users are refused even after upgrading, and Google says it is investigating.