
Google Ads MCP server: Google's read-only connector for Claude, Cursor and Codex
Lets Claude, Cursor or Codex read your Google Ads accounts and answer questions about campaigns, spend and results. Built by Google; it cannot change anything.
This is Google's own connection between your AI assistant and the Google Ads API, listed in Google's Ads API developer docs. You can ask about accounts, campaigns, budgets, spend and performance, and your assistant pulls the live numbers. It only reads data, so it cannot change bids, budgets, ads or campaigns. Before you start, you need a Google Cloud project with Google Ads API access and Google credentials on your computer, which takes some developer setup.
Good for
- Advertisers and PPC managers who want answers about their campaigns without building reports
- Agencies auditing client accounts through a manager account
- Analysts who want spend and conversion numbers pulled into their AI chat
- Developers comfortable setting up a Google Cloud project and Google credentials
Works in
6 supported · 1 with issues · 6 should work
Tap an app to see how to set it up and any known problems.
Google's README says to paste the same server entry into your Claude Code settings. GitHub
Google's README says to add the server entry to .cursor/mcp.json. GitHub
Google's README says to add the server entry to .vscode/mcp.json for Copilot. GitHub
Google's README shows adding a locally running copy's address to Codex, then signing in with Google. GitHub
Google's guide shows a Gemini CLI settings entry for a copy you host on Cloud Run. developers.google.com
Needs your own copy on Cloud Run. Add its address as a custom connector using your own Google sign-in app. developers.google.com
Needs your own copy on Cloud Run. Add its address as a custom connector, then sign in with Google.
Known problems
- Open
Sign-in finishes, then every request is refused on a Cloud Run copy
Since Aug 2026 · GitHub
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Install Google Ads MCP
Claude Code
- 1
Copy this prompt.
Add the Google Ads MCP server to Claude Code. Open .mcp.json (create it if it does not exist) and merge in this entry, keeping any servers already there: { "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 me for GOOGLE_PROJECT_ID and only put the values in that config, nowhere else. Then tell me how to load it and whether I need to sign in. - 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires pipx, Python 3.10+, Google Cloud project with Google Ads API access, gcloud application-default login.
Read-only mode: Always read-only. It has no tools that change campaigns, ads, budgets or bids, so there is nothing to switch on.
Before you add it, check that your Google Cloud project has Explorer access or higher to the Google Ads API (Cloud console, Google Ads API overview). Then sign in once with gcloud auth application-default login including the https://www.googleapis.com/auth/adwords scope, and put the printed credentials path in GOOGLE_APPLICATION_CREDENTIALS. If you reach accounts through a manager account, also set GOOGLE_ADS_LOGIN_CUSTOMER_ID to the manager's ID. No developer token is needed. Google's README shows the pipx block and says it works unchanged in Claude Code, Cursor and VS Code; the uvx option installs the same server from PyPI.
From the project README. Source.
Tools
Pulls campaign, ad group, keyword and spend data from an account
Runs a Google Ads report query on one account and returns the rows, such as campaigns with their status, budgets, clicks, cost and conversions for a date range.
Try: “How is my campaign performance this week?”
Network ·
search_searchLists the Google Ads accounts your login can reach
Returns the IDs of the Google Ads accounts your Google login has direct access to, so the assistant knows which account to ask about.
Try: “What Google Ads accounts do I have access to?”
Network ·
customers_list_accessible_customersUsed by the assistant behind the scenes
Looks up which fields and metrics a report can include
Lists the fields, metrics and segments available for one kind of Google Ads data, such as campaigns or ad groups. The assistant uses it to build a valid report query before running it.
Try: “Which metrics can I report on for ad groups?”
Network ·
metadata_get_resource_metadata
Read from the source code
Pros and cons
Good
- Built by Google and named in the Google Ads API developer docs.
- Read-only, so your assistant cannot change bids, budgets or campaigns by mistake.
- Free and open source under Apache-2.0.
- Your assistant can run any Google Ads report query, not just a fixed set of reports.
- It checks which fields and metrics exist before building a query.
- Works with manager accounts, including a different manager account per request.
- No developer token needed any more; access comes from your Google Cloud project.
Watch out
- Setup needs a Google Cloud project, Google Ads API access and Google credentials on your computer.
- New Cloud projects start with test-account access only, and one user's access request was rejected within seconds.
- claude.ai and ChatGPT need you to host your own copy on Cloud Run with your own sign-in app.
- In Workspace orgs that limit session length, the saved login expires and calls fail until you sign in again.
- Only three tools, so every question goes through the general report query.
Permissions
low risk · 4 things to watch
Low risk
The worst it can do is show your ad spend and performance data to the AI app you connect, because it cannot change anything.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
A Cloud Run copy is reachable from the internet
Google's Cloud Run steps turn off Cloud Run's own access check and rely on Google sign-in inside the server. Always set the sign-in client ID and secret so strangers are refused. developers.google.com
Older versions could log sign-in tokens
A September 2026 update fixed sign-in tokens being written to logs. Run the latest version. github.com
Your ad account data goes to the AI you connect
Google warns the server passes your account data to the connected assistant. Connect only assistants you trust with spend and performance data. github.com
It adds a usage header to every API call
Google says each Google Ads API call carries an extra header it uses to collect usage data. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | Always read-only: the current release has no tools that create, change or delete anything. tools_config.yaml (or GOOGLE_ADS_MCP_TOOLS_CONFIG) can also switch tool groups off. |
|---|---|
| Talks to | googleads.googleapis.com (Google Ads API) |
| Sign-in and keys | Local: Application Default Credentials JSON on disk, path in GOOGLE_APPLICATION_CREDENTIALS. Hosted: OAuth state in filetree, Redis, Firestore or memory storage, encrypted by default. |
| Scopes |
|
Alternatives
Use Google's server if you want read-only reports and can set up a Google Cloud project. Pick a hosted community service if you want your assistant to change campaigns or want to skip the setup, and accept that a third party then handles your account access.
| Server | Official | Runs | Sign-in | Can change things | Tools |
|---|---|---|---|---|---|
| Google Ads MCPThis page | Official | Local | Google account | No | 3 |
| mcp-google-ads (cohnen) | Community | Local | Google account | No | 5 |
| Markifact | Community | Hosted | – | Yes | – |
| adplane | Community | Hosted | – | Yes | – |
| Pipeboard | Community | Hosted | – | Yes | – |
What people say
People like getting a full account audit from live data and dislike how much setup it takes first.
What people like
- Once connected, Claude can run a full account audit from live data
- Read-only and maintained by Google, so it is safe to point at client accounts
Common complaints
- The one-time setup is developer work with several places to get stuck
- New Cloud projects can be stuck on test-account access, which blocks real accounts
- Some report queries with several values fail, so one user keeps a community server as backup
Questions
Do I still need a Google Ads developer token?
No. Google retired developer tokens on September 9, 2026. Access now comes from the API access level of the Google Cloud project that owns your credentials, and the latest server works without a token.
Can it change my campaigns, bids or budgets?
No. The current release only reads data. To have an assistant make changes, you need a community service such as Markifact or adplane, which handle your account access themselves.
Why do I get "only approved for use with test accounts"?
Your Google Cloud project only has test access. Apply for Explorer access on the Google Ads API overview page in the Cloud console, then try again.
Can I use it in claude.ai or ChatGPT?
Only if you host your own copy on Google Cloud Run with your own Google sign-in app, then add its address as a custom connector. The local version works only in apps on your computer, such as Claude Code, Cursor or VS Code.
Is it free?
Yes. It is open source and free. If you host it on Cloud Run, Google Cloud bills you for that.
Is it safe to connect to client accounts?
It cannot change anything, so the main risk is that the assistant sees the account's spend and performance data. Use a Google login that only reaches the accounts you want it to read.
How do I use it with a manager (MCC) account?
Set your manager account ID as the login customer ID in the setup, or name it in your request. Client accounts reached through a manager may not show up when you ask for your account list, so give the client's 10-digit ID.
Why does it keep asking me to sign in again?
If your company's Google Workspace limits how long a login lasts, the saved login expires (often every 16 hours) and every request fails until you sign in again. Google has not fixed this yet.
Google Ads MCP vs cohnen/mcp-google-ads?
Both run on your computer and only read data. Google's is maintained by Google; cohnen's has more ready-made report tools, and one user keeps it as a backup for queries that fail on Google's.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
google-ads-mcp- Registry
- PyPI
- Transport
- stdio, Streamable HTTP
- Auth
- OAuth
- Version
- 0.0.5
- License
- Apache-2.0
- Last commit
- Oct 26, 2026
Other Google Ads MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 14Hide
- Google Ads MCP server: Developer integration guide · developers.google.com
- googleads/google-ads-mcp README · github.com
- googleads/google-ads-mcp README · github.com
- golden_tools_list.json · github.com
- Upgrade FastMCP for upstream fix of Oauth access tokens being logged · github.com
- Developer token · developers.google.com
- stdio: no non-interactive credential option survives Workspace session-control reauth · github.com
- How I Used Claude and MCP to Run a Live Google Ads Audit · hackernoon.com
- Cloud Run deployment: invalid_token (401) on /mcp after successful OAuth · github.com
- Explorer access application rejected within seconds · github.com
- cohnen/mcp-google-ads · github.com
- Markifact Google Ads MCP · markifact.com
- adplane · adplane.ai
- Pipeboard Google Ads MCP · google-ads.mcp.pipeboard.co