The Google Ads MCP server is Google's official, open-source connector between AI assistants and the Google Ads API, and it works in Claude: Claude can query your campaigns, ads, budgets, and metrics through it in plain language, but cannot change anything. The catch is setup. Meta's connector takes a sign-in; Google's runs on your own machine or cloud, with a Google Cloud project and OAuth credentials, and since September 2026 no developer token. Below: setup in Claude Desktop and Claude Code, the three tools, a five-step weekly workflow, and what changes when the analysis is done before the chat starts.
Facts about Google's server were checked against its GitHub repository, Google's developer documentation (last updated October 30, 2026), and the Google Ads Developer Blog on November 1, 2026.
What is the Google Ads MCP server?
It is a Model Context Protocol server that Google's Ads API team publishes, turning the Google Ads API into tools an AI assistant can call. Google open-sourced it on October 7, 2025 as a read-only release, and its developer guide still calls it strictly read-only: it cannot change bids, pause campaigns, or create assets. The code is on GitHub under Apache 2.0, at version 0.0.5 since October 9, 2026.
It is not a hosted service: you run it locally or deploy it to Google Cloud Run (Google mentions a hosted pilot for allowlisted participants). So there are three common ways to put Google Ads in Claude:
| Google Ads MCP server | Hosted connector (Pipeboard) | Peachblue | |
|---|---|---|---|
| Where it runs | Your machine or your Cloud Run | Pipeboard's servers | Peachblue's servers |
| What it covers | Anything the Google Ads API reports, Performance Max included | Google Ads, Meta, TikTok, Snap, Reddit | Google Ads Search, Display, and Video, plus Meta, TikTok, and Amazon DSP |
| What comes back | Query rows for Claude to read | API results | Rankings, RSA asset winners, and creative analysis, computed |
| Can change your account | No | Yes, with permissions; read-only tokens from Pro | No, read-only |
| What you need first | A Cloud project with Explorer access, OAuth credentials, Python | A Pipeboard account | A Peachblue plan and a Google sign-in |
| Cost | Free, open source | Free plan; Pro $29.90/mo | From $199/mo (Pro) |
Pipeboard's prices were verified October 24, 2026.
How do you connect the Google Ads MCP server to Claude?
Set up a Google Cloud project with Explorer access to the Google Ads API, create OAuth credentials, then add the server to Claude Desktop's config file or to Claude Code with one command. No developer token: Google sunset them in September 2026, and access levels now belong to the Cloud project behind your credentials.
- Get API access. In a Google Cloud project, enable the Google Ads API, which grants Test access (test accounts only), then apply for Explorer access on the Google Ads API Overview page in Cloud Console. Google says Explorer is approved by automated review in most cases and allows 2,880 operations a day against live accounts (access levels).
- Create credentials. Create an OAuth client, download its JSON, and sign in with the Google account that can see your ad accounts. Note the credentials path it prints.
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, which runs the server straight from GitHub.
- Add it to Claude Desktop. From the Claude menu, open Settings, then Developer, then Edit Config, and add the server to
claude_desktop_config.json. Quit Claude completely and reopen it; the server shows under the plus menu, in Connectors (MCP docs).
{
"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"
}
}
}
}
- Ask "What customers do I have access to?" to confirm it works.
In Claude Code it is one command. Keep --transport between the --env pairs and the server name, or Claude Code reads the name as another variable (Claude Code docs):
claude mcp add --env GOOGLE_PROJECT_ID=YOUR_PROJECT_ID \
--env GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json \
--transport stdio --scope user google-ads \
-- pipx run --spec git+https://github.com/googleads/google-ads-mcp.git google-ads-mcp
If you reach client accounts through a manager account, add GOOGLE_ADS_LOGIN_CUSTOMER_ID with the manager's ID, or name it per request.
For Claude on the web, or a whole team, deploy it to Cloud Run with your OAuth client ID and secret, add https://claude.ai/api/mcp/auth_callback to that client's redirect URIs, and add a custom connector at your Cloud Run URL ending in /mcp, using your own OAuth client. Google warns that deploying it open without those OAuth settings exposes the container's own credentials. Custom connectors work on every Claude plan; the free plan allows one, and on Team and Enterprise an owner adds it first (Anthropic's help center).
Two cautions. First, the server is read-only by design, not by permission: a comment in its source notes that Google Ads has no read-only OAuth scope, so your credential carries full account access and only the tool list keeps it to reads. Guard the credentials file like a password. Second, Google's companion Developer Assistant plugin for Claude Code can generate client library code, mutate scripts included, that does change accounts. That happens outside the MCP server, so review it like any script.
Peachblue's connector goes in with no Cloud project: copy the URL from Settings, MCP tab, add it as a custom connector, and approve the sign-in (setup docs). Connecting Google Ads is a Google sign-in: you pick the accounts to sync, and nothing in them is ever changed (Google Ads setup).
What do the Google Ads MCP tools give Claude?
Three tools and four reference resources: enough to query anything the Google Ads API reports, with the analysis left to Claude.
list_accessible_customers returns the account IDs your sign-in can reach. Claude needs a customer ID for most questions, so Google suggests putting it in the prompt when you switch accounts. Peachblue scopes answers to the accounts you synced.
search runs a Google Ads Query Language (GAQL) query that Claude assembles from fields, a resource, conditions, an order, and a limit. That reaches campaigns, ads, assets, keywords, search terms, and Performance Max asset groups. The rows land in the conversation and cost context on every question. Peachblue syncs daily, so the answer is a lookup, not a query Claude writes.
get_resource_metadata describes a resource's fields so Claude can write a valid query. The server also exposes the API's discovery document, metric and segment lists, and release notes.
Creative. No tool tags or scores an ad, ranks the headline and description variants inside a responsive search ad, or recognizes the same video in several ad groups, let alone on Meta. Peachblue's get_google_ads_rsa_performance returns per-variant winners and losers inside each RSA, and every Google creative is tagged on 31 dimensions and scored against your whole account and within Google.
How do you analyze Google Ads in Claude, step by step?
Five weekly steps: pin the account, pull performance, read the RSA assets, judge the creative, explain the change. Each works through Google's server; a layer that has already done the math changes how much lands on the chat.
1. Pin the account
List the accounts I can access. Use customer ID [ID] for everything in this chat, and tell me before you switch.
In Peachblue the scope is the accounts you synced, matching what your team sees in the app.
2. Pull performance for the period
Search the campaign resource for the last 14 days: name, type, status, cost, impressions, clicks, conversions, and conversion value. Cost comes back in micros, so divide by 1,000,000. Rank by cost, with CPA and ROAS beside each.
Google returns money in micros, millionths of the account currency (field reference). Check one campaign against the Google Ads interface before trusting the rest.
In Peachblue this is get_campaigns and get_performance_summary, from data synced daily and split by network: Search, Display, and YouTube.
3. Read the responsive search ad assets
Use get_resource_metadata to find where responsive search ad asset performance is reported. Then, for each enabled RSA in [campaign], list every headline and description with impressions and clicks for the last 30 days, and mark the two weakest.
In Peachblue this is get_google_ads_rsa_performance: per-variant winners and losers inside each RSA, already computed, plus suggested headlines and descriptions grounded in which of your variants actually won.
4. Judge video and display ads as creative
List every video and responsive display ad with spend in the last 30 days. Combine rows where the same asset runs in more than one ad group, then rank by cost per conversion with spend beside each.
Claude matches assets only by Google's IDs and never sees your Meta or TikTok cut.
In Peachblue this happened at sync: every creative is fingerprinted, grouped across ad groups, and matched to the same creative on other platforms. get_creatives ranks them by composite score, and get_creative_detail hands Claude the tags and a written read of each one.
5. Explain the change and write the update
Compare the last 7 days with the 7 before. Which campaigns and ads moved cost per conversion most, and by how much? Then write a five-line update using only numbers from this chat.
Ask Claude to show the GAQL behind any number you plan to send to a client.
In Peachblue this is compare_periods, which names the creatives that moved the result, and Reports, with date-range PDF and CSV export.
What makes Peachblue better than Google's MCP server for creative work?
The analysis is finished before the conversation starts, there is nothing to deploy, and Google Ads sits beside Meta, TikTok, and Amazon DSP in one connection. Google's server gives Claude the API; Peachblue gives it answers about your creative:
| You ask Claude | With Google's server | With Peachblue |
|---|---|---|
| "Which RSA headlines are losing?" | Claude finds the asset report, writes the query, and ranks rows | Per-variant winners and losers in each RSA, computed |
| "Which Google creative is winning, and why?" | Rows by ad; no tool tags or scores creative | Ranked by one composite score, tagged on 31 dimensions, with a written read |
| "Is our best YouTube video also our best Meta video?" | Google only | The same creative matched across platforms |
| "What changed this week?" | Two queries and the math in chat | compare_periods names the creatives behind the change |
| "What should we write next?" | A draft from whatever is in the chat | Headlines and descriptions grounded in your winning variants |
Performance. Claude reasons over results instead of adding up micros. get_daily_spend gives day-by-day totals for any window, and get_risk_summary flags spend concentration, fatigue candidates, and zero-result spend.
Creative. Peachblue analyzes text-only RSAs on their own path and gives Display and Video ads the same 31-dimension analysis as your social ads, so a Google winner and a Meta winner meet in one chat. It is the only creative analytics MCP that serves your own cross-platform performance data, Amazon DSP included.
The loop. The Next Creative Brief turns your winners' patterns into concepts and proven hooks, with a prompt block for an image or video generator, and once the new ads run, Peachblue scores them on the same scale.
Google's server keeps what is its alone: free query access to the whole reporting surface, including keywords, search terms, and the Performance Max, Shopping, and App campaigns Peachblue does not cover. Connect both, one for creative answers and one for raw queries.
Which route should you take?
- You know Google Cloud and want free, raw query access to everything, Performance Max included: Google's server.
- You want Claude to change bids, budgets, or campaigns: not Google's server. A hosted connector such as Pipeboard can, with permissions, or Google's Developer Assistant can write a script you run. Decide your approvals first.
- You want creative answers across Google Ads, Meta, TikTok, and Amazon DSP with nothing to deploy: Peachblue. Google Ads and the MCP server start on Pro, Amazon DSP on Scale, and the same tools run in the product as Agent Peach.
One boundary, stated plainly: Peachblue reads. It does not create, edit, or pause anything in Google Ads, and it covers Search, Display, and Video, not Performance Max. Every server is compared in the best MCP servers for ad data; the Meta and Amazon versions of this guide are Claude for Meta ads creative analysis and Amazon Ads MCP in Claude; the four-platform workflow is Claude for media buyers.