
Google Ads MCP
io.scalablyPublished by scalably.iov1.0.1Updated Oct 24, 2026
Google Ads MCP: GAQL queries, resources, recommendations, keyword ideas, change history. 11 tools.
Overview
Read-only local MCP server for the Google Ads API, letting an assistant query ad accounts, inspect resources, read recommendations and plan keywords.
- What you can do
- List accessible customer accounts and walk the manager account hierarchy to find child accounts. Run GAQL queries against a specific account, with micros-to-units conversion. Browse the GAQL resource catalog and describe a resource's fields, metrics and segments. Read Google's optimization recommendations for an account. Generate keyword ideas, historical monthly metrics and forecasts for a keyword plan. Review change history and last-modified status per resource.
- When to use it
- Use it when an assistant should answer questions about Google Ads performance, pull campaign or cost reports with GAQL, review optimization recommendations, or research keywords, across accounts linked under one manager account. It suits read-only analysis and reporting, not campaign edits.
- Requirements
- Local process run with uvx from the PyPI package (or the Claude Desktop .mcpb bundle), so Python tooling is needed. Requires a Google Ads developer token (approval can take days), a Google Cloud OAuth Desktop-app client ID and secret, a refresh token for the adwords scope, and the 10-digit manager account customer ID in GOOGLE_ADS_LOGIN_CUSTOMER_ID. Optional: GOOGLE_ADS_API_VERSION, GOOGLE_ADS_USE_PROTO_PLUS, GOOGLE_ADS_LOG_LEVEL.
Installation
In SourceWeft
- Open Google Ads MCP in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Google Ads MCP
Read-only MCP server for the Google Ads API. Eleven tools cover discovery, GAQL reporting, resource schema, recommendations, keyword planning and forecasts, and change history for any account reachable under a manager account (MCC). We run this server in production for every ads client. Read-only is enforced at three layers: no mutate or apply service imports, an SDK method allowlist, and a GAQL-starts-with-SELECT guard.
Install
Claude Code:
Codex:
Claude Desktop: download google-ads-mcp.mcpb from the latest GitHub release and open it.
Setup
This is the heaviest setup in the gallery: expect up to two days waiting on developer token approval. One set of credentials, rooted at a manager account (MCC), can read any customer account linked under it, so there is no per-client configuration beyond linking an account to the MCC.
- Google Ads developer token. Sign in at ads.google.com under your manager account, go to Tools and Settings, API Center, and apply for a developer token. A new token starts on the Explorer access level, which Google grants after a review that can take a few days; discovery, query and recommendation tools work there. Basic access (a separate application) is needed for higher quotas and may be needed for the keyword-planning tools.
- Google Cloud OAuth client. In a Google Cloud project, enable the Google Ads API, then create an OAuth client ID of type Desktop app under APIs and Services, Credentials. Note the client ID and client secret, and add the
https://www.googleapis.com/auth/adwordsscope to the OAuth consent screen. - Refresh token. Generate a refresh token once, as an admin user of the manager account, using Google's
oauth2ltool or thegenerate_user_credentials.pyexample shipped with thegoogle-adsPython library. Save the refresh token; it does not expire from normal use. - Login customer ID. Use the 10-digit customer ID of the manager account itself (no hyphens) as
GOOGLE_ADS_LOGIN_CUSTOMER_ID. Any client account accepts an invite to link under this manager account in its own Google Ads UI, after whichgoogle_ads_list_customer_clientssees it.
Tools (11)
Configuration
Reply shape
Every tool returns JSON with status (succeeded, partial, no_op), operation, summary, target, result, proof, warnings, recovery. Failures surface as a tool error whose text is google_ads_request_failed: <message> <hint>. proof.apiVersion names the Google Ads API version used. proof.microsConverted is set on google_ads_query. A partial status means the result hit its configured bound (max_rows, page_size or limit); recovery.nextAction says how to continue.
Limits
google_ads_query responses are capped at 64 MB per call by the Google Ads API; split large date ranges across calls. KeywordPlanIdeaService (keyword ideas, historical metrics, forecasts) is rate-limited to 1 query per second and may require Basic Access if you get a permission error on the Explorer tier. google_ads_change_events covers up to 30 days back; google_ads_change_status covers up to 14 days back. metrics.cost_micros and other *_micros fields are 1 unit = $0.000001; google_ads_query emits a matching *_units field alongside when convert_micros is true (the default).
Verify
Each release lists the package version, the .mcpb sha256 and the production commit it was derived from in CHANGELOG.md. CI runs the tests and a clean install of the built wheel on every push.
Privacy Policy
This server runs locally, on your machine, under your own credentials. It collects no personal data, contains no telemetry, stores nothing persistently, and talks only to the vendor API it wraps. No third party, including Scalably, receives your data. Contact: [email protected]. Canonical copy: https://scalably.io/connector-privacy.html
License
MIT. Copyright Scalably.
Source: README.md at commit 2c40bbb
Tools
0Version history
1- v1.0.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts