Claude and AI
Google Ads MCP server: Google's official one, setup and limits
What Google's official Google Ads MCP server does, how to set it up in Claude and Claude Code, why it is read-only, and when a hosted connector fits better.
Also available in: Português · Español
A Google Ads MCP server is the piece that lets Claude, or any other MCP client, query your Google Ads account through the API, so you ask questions instead of exporting reports. Google ships an official one: google-ads-mcp, open source under Apache 2.0. It exposes three tools, it is strictly read-only, and you host it yourself with a Google Cloud project and OAuth credentials. If you want to paste a URL into Claude and go, or you want the AI to pause a campaign or add a negative keyword, you need a hosted connector with write access. Here is what the official server does, how to install it, and where each option fits.
For the wider picture across Meta, TikTok, Amazon and Microsoft, see ads MCP servers: which platforms have an official one. This article stays on Google Ads and on what I checked in Google's own documentation on October 28, 2026.
What Google's official server can do
Three tools, plus a few reference resources. The list looks short, but search carries the weight: it runs GAQL, the Google Ads Query Language, so anything the API can read, the model can ask for.
| Tool or resource | What it does |
|---|---|
list_accessible_customers | Lists the accounts the signed-in user can access directly |
search | Runs a GAQL query: metrics, budgets, status, anything readable through the API |
get_resource_metadata | Describes the fields of a resource type such as "campaign", so the model knows what it can query |
| Resources | The API discovery document, metrics and segments references, and release notes |
In practice the model turns your question into GAQL, runs it and writes the answer. That gives broad read coverage: search terms, keywords, assets, bidding settings, whatever the API exposes.
What it will not do is stated plainly in Google's docs: the current release is strictly read-only and cannot modify bids, pause campaigns or create new assets. For mutate operations, Google points you to a different tool, the Google Ads API Developer Assistant, which generates client library code. The official path to changing something runs through code, not through the chat.
The September 2026 change: no developer token
Older guides say you need an approved developer token before anything works. That is out of date. Google's MCP page says developer tokens were sunset on September 9, 2026 and are no longer required by the latest version of the server; API access levels now follow the Google Cloud project behind your OAuth credentials.
That removes the slowest step, the approval wait. It does not remove the technical ones.
How to install the official server
You need a Google Cloud project, a terminal, and a Google login that can see the ad accounts.
- Install pipx. The server is Python and runs with
pipx run, with nothing installed permanently. - Enable the Google Ads API in your Google Cloud project.
- Create credentials. The shortest path is Application Default Credentials: create an OAuth client in the project, download its JSON file, then run
gcloud auth application-default loginwith thehttps://www.googleapis.com/auth/adwordsscope and that client file. The command prints the path of the credentials file it saved. Keep it. - Configure your MCP client with the pipx command pointing at the repository,
GOOGLE_APPLICATION_CREDENTIALSset to that path andGOOGLE_PROJECT_IDset to your project. If you reach client accounts through a manager account, addGOOGLE_ADS_LOGIN_CUSTOMER_ID. - Test with a read-only question, such as "list the Google Ads accounts you can see".
Claude Desktop and Claude Code
In Claude Desktop, the server goes into the MCP config file under Settings → Developer. In Claude Code it is one command, in this shape: claude mcp add --transport stdio --env GOOGLE_PROJECT_ID=your-project --env GOOGLE_APPLICATION_CREDENTIALS=path-to-json google-ads -- pipx run --spec git+https://github.com/googleads/google-ads-mcp.git google-ads-mcp. Claude Code is the easiest place to run the official server, because the people who live in a terminal are the ones it was built for.
Claude on the web
The Claude web app cannot launch a local process, so you have to publish the server. The repository documents a Google Cloud Run deployment with OAuth handled by the server, and Google's guide says to add a custom connector in Claude pointing at your Cloud Run URL with /mcp at the end. That is your infrastructure to secure, monitor and pay for. Google also runs a hosted endpoint pilot, open only to allowlisted participants.
Your options side by side
| Google's official server | Hosted connector (Vazante) | Data-pipeline MCPs and third-party servers | |
|---|---|---|---|
| Who runs it | You, locally or on your cloud | Vazante | The vendor, or you for open-source projects |
| Setup | pipx, Google Cloud project, OAuth credentials | Paste https://vazante.app/api/mcp and authorize | Varies |
| Reads | Anything GAQL reaches | Spend, impressions, clicks, CTR, CPC, conversions, conversion value and CPA by campaign, account or day; search terms | Varies by vendor |
| Writes | No | Yes, with confirmation and a cap per action | Varies; read each vendor's docs |
| Other platforms in the same answer | No | Meta Ads, TikTok Ads, GA4, Search Console | Depends on the catalog |
| Cost | Free software, plus your cloud bill if you deploy it | Vazante plan, from US$ 31.20 a month on the annual plan | Each vendor's plan |
Data pipelines such as Windsor.ai and Supermetrics ship their own MCPs, and GitHub has several community servers. Their read and write scope differs a lot; Windsor.ai MCP server is one worked example.
When the official server is the right call
Pick it when three things are true: someone on the team is comfortable with a terminal and Google Cloud, the job is reading (audits, reporting, account forensics), and Google Ads is the only platform in the question. There it is hard to beat. It is Google's own, it tracks the API, there is no middleman, and GAQL reaches fields no packaged connector exposes.
It stops being enough in three cases:
- The answer needs an action. "Pause that campaign" or "add that search term as a negative" cannot go through it.
- The decision spans platforms. "Where did leads come in cheapest this week, across Google, Meta and TikTok?" needs one connector that sees all three.
- The team is not technical. Asking a media buyer to create an OAuth client and run
gcloudis asking them not to use it.
Setting up Vazante as your Google Ads MCP
In Vazante you sign in with Google, tick the Google Ads accounts you want (manager accounts included), then add the connector in Claude under Settings → Connectors → Add custom connector with https://vazante.app/api/mcp. No API key, no Google Cloud project. In Claude Code: claude mcp add --transport http vazante https://vazante.app/api/mcp, then /mcp to authorize. The full walkthrough, with questions to paste, is in connect Google Ads to Claude, and the connector page is Claude connector.
Limits no Google Ads MCP removes
- Bad conversion tracking stays bad. The model reads what the account records. If a tag counts a phone click as a purchase, the answer is wrong and confident.
- Generated queries can pick the wrong field. With the official server the model writes GAQL, and sometimes asks for a metric that does not fit the resource. That is what the metadata tool is for. Check the first answers against the Google Ads interface.
- Your data goes to the model. Google's own README warns that the server exposes your data to the agent or LLM you connect. That holds for every MCP; AI data security for marketers has the questions to ask.
- Google Ad Manager is a different product. If you searched for "Ad Manager" meaning Google Ads, note that Ad Manager is the publisher-side platform with its own API. Neither the official Google Ads server nor Vazante covers it.
Next step
If you are technical and only need reads, install the official server today with the steps above and run a week of audit questions in Claude Code. If you want to ask and act, or see Google next to Meta and TikTok in one answer, try a hosted connector, start read-only in practice, and compare against the Google Ads interface for a few days. New to the protocol? Start with what is MCP for marketers.
Frequently asked questions
Is there an official Google Ads MCP server?
Yes. Google publishes googleads/google-ads-mcp, an open-source server documented on the Google Ads developer site. You run it yourself, locally or on your own cloud; a Google-hosted endpoint exists only as a pilot for allowlisted participants.
Can the Google Ads MCP server pause campaigns or change budgets?
Google's official server cannot. Its documentation calls the current release strictly read-only: it cannot modify bids, pause campaigns or create new assets. To act from the chat, you need a connector with write tools, such as Vazante.
Do I still need a developer token for the Google Ads MCP server?
Not with the latest version. Google says developer tokens were sunset on September 9, 2026, and API access levels now follow your Google Cloud project. You still need that project, with the Google Ads API enabled, and OAuth credentials.
How do I connect Google Ads to Claude Code?
For Google's server, add it as a local stdio server with claude mcp add, pointing to the pipx command and your credentials. For a hosted connector, use claude mcp add --transport http with its URL, then run /mcp inside Claude Code to sign in.
Does a Google Ads MCP server work with Google Ad Manager?
No. Google Ad Manager is the publisher-side platform for selling ad inventory, with its own API. Google's Google Ads MCP server and Vazante both talk to the Google Ads API, which is the advertiser side.