Guide
How do I set up the Google Ads MCP server with Claude?
Connect Google's own Google Ads MCP server to Claude, Cursor or another AI assistant, step by step, and see what it leaves the model to work out.
Google's server comes first, set up by hand in Google Cloud and your assistant. Then the problems its queries would have to know to look for, as Goldbeater's checks find them every day, without anyone asking.
Goldbeater runs the 4 checks this guide covers on your account every 24 hours, with 111 other checks. A free first look shows how many problems they find on one of your accounts, and what they cost. No card.
- The Google Ads MCP server is Google's own, and open source. It lets an AI assistant such as Claude or Cursor list the Google Ads accounts you can reach, look up a report's fields, and run read-only queries.
- To run it you need a Google Cloud project with the Google Ads API enabled and Explorer access or above, OAuth credentials for a Google login that can open your accounts, and pipx. Google retired developer tokens on September 9, 2026, and the server no longer needs one.
- It answers what you ask. The model writes every query itself, so it has to know which report, which window and which comparison would show a problem, and it starts from nothing in the next conversation.
- Goldbeater runs 115 checks on every connected account every 24 hours and whenever you ask. Its own MCP server hands what they found, with the evidence and the fix, to Claude, ChatGPT or Cursor, with no Cloud project to set up.
What the Google Ads MCP server does
MCP, the Model Context Protocol, is an open standard that lets an AI assistant call tools another program provides. Google publishes an MCP server for the Google Ads API, open source under the Apache 2.0 license, and you run it yourself: on your computer, or as a web service on Google Cloud Run. It gives the assistant three tools:
- list_accessible_customers returns the Google Ads accounts the Google login you set it up with can open directly.
- get_resource_metadata says which fields a resource, such as campaign, has, and which can be filtered and sorted.
- search runs a query: the assistant names a resource, its fields and its conditions, and the server makes them a Google Ads Query Language query and returns the rows.
It also hands the assistant reference material: the API’s discovery document, the metrics and segments it can report, and the latest release notes. Google says the current release is strictly read-only: it can’t change bids, pause campaigns or create assets.
What you need before you start
- A Google Cloud project with the Google Ads API enabled. Enabling it gives the project Test access, which reaches test accounts only. Your real accounts need Explorer access or above, which you apply for on the project’s Google Ads API Overview page, and Google may grant it straight away. Explorer allows 2,880 operations a day against real accounts.
- Credentials for a Google login that can open your accounts. Google’s guide uses Application Default Credentials: an OAuth client you create in the project, signed in through the gcloud command line, or a service account the command line signs in as.
- No developer token. Google retired developer tokens on September 9, 2026. The Cloud project’s access level now decides what it can reach, and the latest version of the server runs without one, so a guide that asks for a token was written before then.
- pipx and the gcloud command line, to run the server and to sign in.
- Your manager account’s customer ID, if you reach your accounts through one. Google calls it the login customer ID, and a call through a manager account without it is refused.
How to set up Google's server, step by step
- In the Google Cloud console, choose or create a project, and enable the Google Ads API in it.
- Open the project’s Google Ads API Overview page, expand Upgrade access level, check that the next level is Explorer, and select Apply for access.
- On the Google Auth Platform Clients page, select Create client, choose a desktop app as its type, and download its JSON file. Google shows the client’s secret only once, when it’s made.
- Sign in with the gcloud command line, naming that file, and copy the path it prints after Credentials saved to file.
gcloud auth application-default login \ --scopes https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=YOUR_CLIENT_JSON_FILE
- Install pipx.
- Add the server to your assistant’s configuration, below, with your project’s ID and the path you copied. If you reach your accounts through a manager account, add GOOGLE_ADS_LOGIN_CUSTOMER_ID to env with its customer ID.
{
"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"
}
}
}
}Where the configuration goes in each assistant
- Claude’s desktop app: choose Settings from the Claude menu in your computer’s menu bar, then Developer, then Edit Config, and paste the block into claude_desktop_config.json. Quit Claude and open it again to load the server.
- Claude Code: pass the entry inside mcpServers to claude mcp add-json google-ads-mcp, or put the whole block in .mcp.json at your project’s root to share it.
- Cursor: put the block in ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one.
Claude on the web reaches a server from Anthropic’s cloud, and ChatGPT a public address or one through its Secure MCP Tunnel, so neither uses a server started on your computer from a configuration file. Google’s README describes running the server as a web service behind its OAuth proxy, on Cloud Run for example, and connecting Antigravity and Codex to it.
Once it’s connected, Google suggests starting with What customers do I have access to? and How is my campaign performance this week?, and naming the customer ID in a question when you move between accounts.
What it leaves the model to work out
Google’s server answers what you ask, and nothing more. The model writes every query: search takes a resource, its fields and its conditions, and Google’s own description of the tool tells the model to look fields up rather than guess them. So to find a problem the model has to know it’s there to ask about, know which report shows it and judge what comes back, and the next conversation starts from nothing.
Four of the problems Goldbeater’s checks look for show what that takes:
- Bidding toward a conversion that stopped recording. Each conversion action’s conversions month by month, beside the account’s clicks over the same months, and a judgement of whether a silence is longer than the action’s own rate explains. A 30-day report reads a broken tag, a new action and one that records a conversion a season the same way.
- Paying for searches that never convert. The search terms report over 30 days, each search’s clicks weighed against the rate the campaign’s other searches convert at, so a search with a few clicks isn’t condemned early, and one that converted in that campaign over the year told apart.
- A campaign meeting its target, held back by its budget. Impression share lost to budget, the campaign’s return against its own target CPA or ROAS, tested against chance over the days since its budget last changed, which only change history says, and Google’s budget simulator for what a raise would bring.
- The same keyword in two places. Every enabled keyword’s words and match type across ad groups and campaigns, with broad keywords that differ only in word order, spacing or a plural counted as copies.
Each takes the right queries and a judgement. Written again in each conversation, the window, the join or the threshold can come out differently, or wrong, and the answer won’t say so.
What it looks like when Goldbeater finds it
Goldbeater runs 115 checks for 187 problems on every connected account, every 24 hours and whenever you ask. Each finding carries its evidence, the figures and tables behind it, what it’s worth and the fix Goldbeater drafted, and a check such as this one judges by a test on the account’s own data rather than a threshold somebody picked. Here is the first of the four, as the check wrote it on a sample account:
Newsletter sign-up hasn't recorded a conversion since July 28, 2026 and bidding is still chasing it
Newsletter sign-up
It's primary for signup, bid on by 5 campaigns, and it recorded 183 conversions from the 16,050 clicks of May to July 2026, then none from the 10,390 since: under a 0.1% chance of so long a silence by luck, allowing for the 1 action tested across the account.
- Recorded before
- 183
- Clicks before
- 16,050
- Clicks since
- 10,390
| May 2026 | 5,210 | 58 |
| June 2026 | 5,380 | 64 |
| July 2026 | 5,460 | 61 |
| August 2026 | 5,520 | 0 |
| September 2026 | 4,870 | 0 |
A conversion action your campaigns count that recorded conversions before and has recorded none for longer than its own rate explains, often a tag removed from the site: Smart Bidding keeps bidding toward it, and where no campaign bids on conversions, their Conversions column reads short. Or imported conversions that stopped arriving or are failing, which Google reports within days.
A silent action is usually a tag removed from the site or an import that stopped. Make a test conversion and check that Newsletter sign-up records it in Google Ads within a day. If it doesn't, the tag or the import has stopped; if the action is retired, stop counting it (below) so bidding stops chasing it.
Stop counting Newsletter sign-up
If the action is retired. If its tag broke, mend the tag instead: this would hide the break.
Goldbeater offers this change without recommending it, so nothing is drafted until you pick it. It reaches your account when you approve it in the change set and press Apply.
This is “Bidding toward a conversion that stopped recording” on a sample account. Goldbeater runs it on yours every 24 hours.
Get a free first lookGoldbeater’s own MCP server hands these findings to Claude, ChatGPT or Cursor. You sign in with your Goldbeater account, so there’s no Cloud project, OAuth client or access level to set up, and a call reads what the checks already found rather than querying Google Ads. It only reads, as Google’s does: a change reaches your account when a person approves it in Goldbeater and presses Apply. How to connect Goldbeater’s MCP server.
The two work side by side: Goldbeater’s server for what the checks found, and Google’s for a question they don’t cover.
Questions
- Is there an official Google Ads MCP server?
- Yes. Google publishes one, open source, in the googleads/google-ads-mcp repository on GitHub, and documents it on the Google Ads API developer site. It’s read-only.
- Does the Google Ads MCP server need a developer token?
- No. Google retired developer tokens on September 9, 2026, and a Google Cloud project’s access level now decides what it can reach. The latest version of the server runs without a token, and Google ignores one sent anyway.
- Can the Google Ads MCP server change my campaigns?
- No. Google says the current release is strictly read-only: it can’t change bids, pause campaigns or create assets.
- Why can’t it read my real accounts?
- The Cloud project has Test access, which reaches test accounts only, and Google Ads refuses the call as one from a project not approved for production accounts. Apply for Explorer access on the project’s Google Ads API Overview page.
- Can I use it in ChatGPT or on claude.ai?
- Once it runs as a web service they can reach, which Google’s README describes, behind its OAuth proxy on Cloud Run for example. Goldbeater’s MCP server runs as one already, at an address you paste into either.
How Goldbeater checks this
These checks run every day, and whenever you ask.
Each finding carries its evidence and, where the problem costs money, an estimate of how much a month. Where a setting can fix it, Goldbeater drafts the change, and it reaches your account when you approve it and press Apply.
Bidding toward a conversion that stopped recording
Paying for searches that never convert
A campaign meeting its target, held back by its budget
The same keyword in two places
No card for the first look: it shows how many problems Goldbeater finds on one account, and what they cost. See every check.
Google's own pages
Where the manual method comes from.
- Google Ads MCP server: Developer integration guide (Google Ads API) (opens in a new tab)
- google-ads-mcp, the server's code and README (Google Ads on GitHub) (opens in a new tab)
- Access levels and permissible use (Google Ads API) (opens in a new tab)
- Developer token (Google Ads API) (opens in a new tab)
- Manage OAuth Clients (Google Cloud Help) (opens in a new tab)
- Set up Application Default Credentials (Google Cloud) (opens in a new tab)
- API call structure (Google Ads API) (opens in a new tab)
Other documentation
Where the assistants' steps come from.
Each is named with what this guide took from it. We name these pages rather than link them.
[1]Model Context Protocol documentation: Connect to local MCP servers
- Claude’s desktop app opens its configuration file from Settings › Developer › Edit Config, claude_desktop_config.json, and loads a server added there after a restart.
[2]Claude Help Center: Get started with custom connectors using remote MCP
- A server configured in claude_desktop_config.json runs on your computer, and isn’t available in Cowork or on claude.ai, which reach a server from Anthropic’s cloud.
[3]Claude Code documentation: Connect Claude Code to tools via MCP
- Claude Code’s mcp add-json command takes the entry inside an mcpServers block written for another client, and .mcp.json at a project’s root holds servers shared with a team.
[4]Cursor documentation: Model Context Protocol (MCP)
- Cursor reads the same mcpServers block from ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one.
[5]OpenAI developer documentation: Connect and test your plugin (ChatGPT)
- ChatGPT connects to an MCP server at a public HTTPS address, or on a private network through its Secure MCP Tunnel.
More guides
Other things worth checking by hand.
- How do I audit a Google Ads account?A Google Ads audit and optimization checklist: 115 things to check, what to look for in each, and where to find it in Google Ads, menu by menu.
- How do I find and remove duplicate keywords in Google Ads?Google serves one copy of a duplicated keyword and picks which. How to find duplicates across ad groups, decide which copy to keep, and remove the rest.
- How do I find the search terms wasting my Google Ads budget?Find the search terms that cost money and never convert, add them as negative keywords without blocking your own keywords, and check what changed.
- How do I check that my Google Ads conversion tracking is right?Test Google Ads conversion tracking and find what's not working: actions that stopped recording, conversions counted twice, and the settings bidding reads.
7-day trial · nothing charged until day 7
Try it for a week. See the money it saves. It pays for itself.
Or connect one account for a free first look, no card needed: how many problems it finds, and what they cost.