Google Ads: 31 read tools with full Keyword Planner, 7 write tools that preview first.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An open-source Model Context Protocol server for the Google Ads API. It lets Claude, ChatGPT, Cursor or any MCP client read and analyse your Google Ads data, plan keywords, and change campaigns if you choose to.
You run it. Your credentials stay on your machine. Nothing is proxied through a third party.
Also listed in the MCP Registry as com.getmcpads/google-ads, so clients that read the registry can install it by name.
Prefer not to run it yourself? getmcpads.com is the hosted version of this server, with Google Ads alongside Meta Ads, TikTok Ads, Pinterest Ads, GA4 and Search Console behind a single endpoint, hosted OAuth, and cross-platform reporting. Same tools, same safety model, no setup.
| 31 read tools | Campaigns, ad groups, budgets, bidding strategies, search terms, landing pages, Performance Max assets and placements, Shopping, recommendations, change history |
| 7 write tools | Off by default. Status, budgets, bids, schedules, renames, campaign creation. Each one previews before it applies |
| Full Keyword Planner | Keyword ideas, historical metrics, forecasts, ad group themes, geo target suggestions |
| 130 metrics, 84 dimensions | With a compatibility matrix that catches invalid combinations before they hit the API |
| 5 resources | Live catalogues the model can read: metrics, dimensions, compatibility rules, 11 workflow recipes |
| GAQL and beyond | google_ads_run_gaql for raw queries, and google_ads_run_readonly_rpc for the services GAQL cannot reach |
The Google Ads API is queried with GAQL, its own query language, and most of its surface is
only reachable that way. This server carries the metric and dimension catalogues, so the model
asks for cost and conversions by name and the server writes the query.
google_ads_validate_query lets it check a combination before spending a call on it, and
google_ads_run_gaql is still there when you want to write GAQL yourself.
Keyword ideas, historical volumes and forecasts live in a separate RPC service that GAQL
cannot reach at all. Same for Reach Planner, audience insights and benchmarks. This server
covers them through google_ads_run_readonly_rpc and dedicated tools.
Google shipped an official Google Ads MCP server in April 2026. It takes the opposite design approach, and the comparison is more nuanced than for other platforms.
| This server | Google's official server | getmcpads.com | |
|---|---|---|---|
| Tools | 38 (31 read + 7 write) | 3: list accounts, GAQL search, resource metadata | 38, plus 5 other platforms |
| Hosting | Self-hosted. stdio, local process | Self-hosted (pipx) or Cloud Run | Hosted for you |
| Requires knowing GAQL | No, catalogues drive the query | Yes, for anything beyond listing accounts | No |
| Keyword Planner | Yes. Ideas, history, forecasts, ad group themes | Not available | Yes |
| Reach Planner, audience insights | Yes, through the read-only RPC | Not available | Yes |
| Performance Max diagnostics | Yes, dedicated tools | Through hand-written GAQL | Yes |
| Writes | Yes, preview first. Applied only on confirm: true | None, read-only by design | Yes, preview first |
| Metric compatibility | Query planner splits incompatible requests | None | Same planner |
| Auditable | Yes. Apache-2.0 | Yes, it is open too | This server, audited |
Be fair about it. Google's server is self-hostable too, so "your data stays on your machine" is not a difference here. Its 3 tools are a deliberate minimalist design: one GAQL tool can express most of the reporting surface, and a model fluent in GAQL will do a lot with very little.
The difference is where the knowledge lives. There, it lives in the model, which has to write correct GAQL against a schema of thousands of fields. Here, it lives in the server, in catalogues and a compatibility matrix. Add to that the planning services GAQL cannot reach at all, and writes that cannot fire on the first call.
Choose Google's if your model writes good GAQL and you only need reporting. Choose this one if you want named metrics instead of query language, Keyword Planner and Reach Planner access, or guarded writes. Choose getmcpads.com if you want this server's capabilities without running it, or you need more than one ad platform in the same conversation.
This is the heaviest setup of any advertising platform. Four values are needed, and one of them requires a review by Google. Budget an hour the first time.
From a manager (MCC) account, open Tools β API Center and apply for a token. It starts at Test Account level, which only reaches test accounts. Apply for Basic Access to reach live accounts. Google reviews the application, which can take a few days.
π Developer token documentation
In a Google Cloud project, enable the Google Ads API, then create an OAuth client under APIs & Services β Credentials. Choose Desktop app for local use. Note the client ID and client secret.
Run the OAuth consent flow once, signed in as the Google account that can see your ad accounts, and keep the refresh token it returns. Google's own helper script does this in one command.
π OAuth desktop flow
The refresh token does not expire. It is the sensitive value here: anyone holding it can mint access tokens indefinitely. Treat it like a password, and use an OAuth client dedicated to this server so you can revoke it on its own.
If the accounts you query sit under an MCC, set GOOGLE_ADS_LOGIN_CUSTOMER_ID to the manager
account ID. Dashes are accepted and stripped. Skip it for a standalone account.
You can also leave it unset. Google refuses any request against a managed account unless the
call names its manager, with a USER_PERMISSION_DENIED that mentions neither the account nor
the manager, so it reads as missing access rather than as a missing header. When the variable
is unset and the account you query is not directly accessible, the server asks the managers it
can reach which accounts they hold, and announces the one that holds yours. The answer is
resolved once and kept for the life of the process.
Setting the variable is still faster: it skips that discovery entirely, and it is the right choice when every account you query sits under the same MCC.
Run google_ads_health_check as your first call. It verifies all four credentials, lists
the accounts you can actually reach, and reports what is missing, without printing any secret.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Restart Claude Desktop. Ask it: "list my Google Ads accounts".
.cursor/mcp.json in your project, same shape as the Claude Desktop config above.
| Variable | Default | Meaning |
|---|---|---|
GOOGLE_ADS_DEVELOPER_TOKEN | none | Required. From the API Center, Basic Access or above |
GOOGLE_ADS_CLIENT_ID | none | Required. OAuth client ID |
GOOGLE_ADS_CLIENT_SECRET | none | Required. OAuth client secret |
GOOGLE_ADS_REFRESH_TOKEN | none | Required. From the consent flow |
GOOGLE_ADS_LOGIN_CUSTOMER_ID | none | Optional. Manager (MCC) account ID. Resolved automatically when unset |
GOOGLE_ADS_ENABLE_WRITES | unset | Set to 1 to register the 7 write tools |
LOG_LEVEL | info | debug, info, warn, error |
Check your setup at any time:
Write tools are disabled by default. Enable them with GOOGLE_ADS_ENABLE_WRITES=1.
Google's own server has none at all, so this is the part to read carefully.
When enabled, every write tool returns a preview and changes nothing:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/google-ads-6)<a href="https://allmcps.com/mcp/google-ads-6"><img src="https://allmcps.com/api/badge/google-ads-6?style=directory" alt="Google Ads on AllMCPs" /></a>