← Blog
Guides & ResearchJuly 28, 20265 min read

Google Ads MCP Limitations: Read-Only and Self-Hosted

Google's official Ads MCP is read-only and self-hosted, with three tools. What that means in practice, every limitation, and how it compares to the API.

By The Ad Spend
A woman crawling across a floor completely covered in scattered papers, reaching for a page

Updated July 2026.

The official Google Ads MCP server is read-only and self-hosted. Google's developer documentation states plainly that the current release "is strictly read-only. It cannot modify bids, pause campaigns, or create new assets" — and it ships just three tools, which you run yourself with your own developer token and Google Cloud credentials. Those two facts define everything about what this server is for.

Google Ads MCP is read-only — the exact wording

Google open-sourced the server in October 2025 (covered by Search Engine Land), and the official integration guide — last updated June 24, 2026 — still lists the mode as "Read-only (current release)." It is positioned for "diagnostics and analytics": reporting, account exploration, and metadata lookup. No mutate operations of any kind are exposed. The "current release" phrasing implies write support may come, but nothing is announced or dated.

Contrast this with Meta, whose official Ads MCP is a hosted endpoint with full write tools. Google took the opposite bet on both axes: no hosting, no writes.

Self-hosted means you bring the credentials

There is no mcp.google.com/ads to paste into Claude. Per the official guide, you run the open-source Python server locally over stdio (or deploy it yourself to Cloud Run), and you supply:

  • A Google Ads developer token — your unique 22-character access string, obtained through a manager account's API Center.
  • A Google Cloud project ID.
  • OAuth 2.0 credentials (a client ID/secret pair or application default credentials); service accounts are also supported.

The documented install path uses pipx pointed at the GitHub repo, configured in your MCP client's settings file. It works, but it's a developer-grade setup — walked through step by step in our guide to connecting Google Ads to Claude.

The three tools

  1. list_accessible_customers — returns the Google Ads customer IDs and account names the authenticated user can access.
  2. search — executes Google Ads Query Language (GAQL) queries for metrics, budgets, statuses, and any other reportable resource. This one tool carries almost all the workload.
  3. get_resource_metadata — returns the structure and queryable fields of an API resource type, which helps the LLM write valid GAQL.

A bundled tools_config.yaml lets you disable tools or rename namespaces, but there is nothing hidden to enable — three tools is the whole surface.

Google Ads MCP limitations: the full list

  1. No writes, period. It cannot change bids or budgets, pause or enable anything, edit targeting, or create campaigns, ads, or assets.
  2. Self-hosting overhead. You manage the install, the credentials, the updates, and — if you deploy to Cloud Run — the infrastructure.
  3. Developer token gating. Your token's access level applies: a test-level token can't query production accounts, and getting basic access involves Google's application process.
  4. The LLM must write valid GAQL. It's good at it, and get_resource_metadata helps, but field-compatibility errors and retries are part of the experience on complex questions.
  5. No memory between sessions. MCP is stateless — every conversation re-reads the account from zero, and last week's analysis is gone.
  6. No monitoring or alerts. It answers when asked and does nothing in between. A budget spike on Saturday night waits until someone opens a chat.
  7. Shallow change visibility. GAQL can query Google's change_event resource, but the API only exposes a limited recent window of changes — it is not a permanent audit trail. More on that gap in Google Ads change history alerts.
  8. Single platform. Google Ads only — no blended view with Meta, LinkedIn, or TikTok.

Google Ads MCP vs the Google Ads API

Google Ads MCP serverGoogle Ads API (direct)
InterfaceNatural language via an AI assistantCode (client libraries, REST)
Read accessYes — GAQL via the search toolYes — full reporting surface
Write accessNo (current release)Yes — full mutate operations
SetupDeveloper token + GCP project + OAuth, self-hostedSame credentials, plus your own application code
Best forAd-hoc questions, diagnostics, explorationProduction integrations and automation you build

The MCP server is, in effect, a natural-language skin over the API's read side. Anything the API can mutate, the MCP deliberately cannot.

When read-only answers aren't enough

Read-only is the right default for an AI assistant — but it also draws the boundary of what this tool can be. It can tell you what the account looks like right now; it can't remember what it looked like yesterday, notice a change while you're asleep, or prove which change moved performance. Those jobs need state, and MCP by design has none. Our causal inference in advertising piece explains why "what caused this?" specifically requires a permanent change record.

The Ad Spend is that stateful layer for Google Ads (plus Meta, LinkedIn, TikTok, and Reddit): checks roughly every 6 hours with 1,900+ detection algorithms, a permanent version-controlled record of every account change, causal inference that ties a performance move to the exact change behind it, and Slack alerts and Q&A on top. It connects via OAuth — no developer token application, no self-hosting — and it's built to sit underneath an MCP setup, not replace it. See how The Ad Spend compares to MCP assistants.

FAQ

Is the Google Ads MCP server read-only?

Yes. Google's documentation states the current release is strictly read-only and cannot modify bids, pause campaigns, or create assets. It is designed for reporting and diagnostics only.

How many tools does the Google Ads MCP have?

Three: list_accessible_customers, search (which runs GAQL queries), and get_resource_metadata. A bundled tools_config.yaml can disable tools but there are no additional ones to unlock.

Is there a hosted Google Ads MCP like Meta's?

Not from Google. The official server is open-source and self-hosted — you run it locally or deploy it to your own Cloud Run instance with your own credentials. Hosted third-party options exist but sit outside Google's official offering.

Do I need a developer token to use the Google Ads MCP?

Yes. The official server requires your Google Ads developer token, a Google Cloud project ID, and OAuth credentials. Token access levels apply exactly as they do for direct API use.

Will Google add write support to the MCP server?

Google labels read-only as the "current release," which leaves the door open, but as of July 2026 no write capability or timeline has been announced.