Google Ads MCP: connect Google Ads to Claude in 2026

Last verified: July 22, 2026

Google ships an official Google Ads MCP server, and most of what ranks for it is either the raw repo or a vendor pitching write access. Here is the honest version: what the official server does, the exact setup for Claude Code and Claude Desktop, the read-only wall you will hit, and how to cover the one thing no Google Ads MCP can do.

Quick Answer: Google runs an official Google Ads MCP server (reported launch April 28, 2026), maintained by the Google Ads API team at googleads/google-ads-mcp. It is read-only reporting over GAQL, self-hosted via pipx, and needs a developer token plus a Google Cloud project. It cannot create or pause anything, and it cannot make creative. Setup below covers Claude Code, Claude Desktop, Cloud Run, and the ChatGPT caveat.

What the official Google Ads MCP server is

The server is a Python project from the googleads GitHub org, built by the Google Ads API team (768 stars as of July 22, 2026). The launch date is worth a caveat: April 28, 2026 comes from third-party coverage only. Google's docs page does not state a launch date and the repo has no releases. The supporting signal is real, though: the predecessor repo under google-marketing-solutions was archived on December 13, 2025 and now redirects to this one.

Unlike Meta, Google hosts nothing. There is no Google equivalent of mcp.facebook.com/ads; you run the server yourself, locally over stdio via pipx or deployed to Cloud Run. And the whole surface is three tools plus four MCP resources:

ToolWhat it does
list_accessible_customersLists the Google Ads accounts your login can reach
searchRuns GAQL queries: campaigns, budgets, metrics, segments, anything the reporting API exposes
get_resource_metadataLooks up fields and resources so the model can write valid GAQL instead of guessing
MCP resourcesdiscovery-document, metrics, segments, release-notes
Creative / image generationNone. There are no creative tools of any kind.

Three tools is enough for real analysis, but the work lands on GAQL. Ask Claude “which campaigns burned budget with no conversions last month” and it has to compose the query itself; the metadata tool exists precisely so it can. Expect better results if you already know roughly what a GAQL report looks like.

How to connect Google Ads to Claude Code

Three prerequisites, all on Google's side, and they are the slow part:

  • A Google Ads API developer token. Explorer access is the minimum; production use needs Standard access, and Basic tokens only reach test accounts.
  • A Google Cloud project with the Google Ads API enabled.
  • OAuth 2.0 credentials. For local use that means Application Default Credentials; service-account impersonation is supported, and an existing google-ads.yaml can be reused.

Log in once with ADC before first use (this is the verbatim command from the official docs):

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

There is no documented claude mcp add one-liner for this server; the official path is an mcpServers JSON block. For Claude Code, drop it into a .mcp.json file at your project root, then run /mcp to confirm it loaded. The same block works in Cursor and VS Code:

{
  "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_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN"
      }
    }
  }
}

Running an MCC? Add "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "YOUR_MANAGER_ID" to the env block and queries run against the client accounts under that manager.

Claude Desktop

Same JSON, different file: paste the block into claude_desktop_config.json (on macOS at ~/Library/Application Support/Claude/claude_desktop_config.json) and restart the app. The server runs as a local process on your machine, so your credentials never leave it.

Remote via Cloud Run

The repo supports deploying to Cloud Run, after which any client connects by URL instead of spawning a local process:

{"mcpServers": {"google-ads-mcp": {"httpUrl": "https://your-cloud-run-url.a.run.app/mcp"}}}

The ChatGPT caveat

ChatGPT's custom connectors only take remote HTTP servers, and the official Google server is local stdio, so it does not drop into ChatGPT the way Meta's hosted URL does. To use Google Ads MCP in ChatGPT you need a remote server: deploy the official one to Cloud Run yourself, or use a hosted vendor server. That difference alone explains half the hosted-vendor market around this keyword.

The read-only reality (and the write question)

The official server is strictly read-only, and it has stayed read-only from launch through July 2026. Google's docs say it plainly: it cannot modify bids, pause campaigns, or create new assets. That is a design decision, not a gap waiting for a release; mutations deliberately stay in the REST and gRPC API, where your existing change controls live.

Diagram: what the official Google Ads MCP server can read versus what it cannot touchWhat the official server readsread-onlyCampaigns and ad groupsBudgets and spendGAQL performance reportsQuality and status signalsWhat it cannot touchno write pathCreate or edit campaignsChange budgets or bidsGenerate ad creativethis is the gapReporting comes out. Nothing goes in, and no creative comes out either.

Write access does exist outside the official server. The most popular community server, cohnen/mcp-google-ads (669 stars), stays read-only reporting, but vendors including Pipeboard, GoMarble, Composio, and Markifact report hosted servers with propose-and-approve mutations, and FGRibreau's open-source server ships write tools behind dry-run defaults. If you need an agent that can pause a campaign from chat, that is the aisle. Read their approval flows before connecting anything write-capable to a live account. And note what none of them add: not one of these servers, official or community, generates creative.

What Google Ads MCP cannot do: make the ad

A Performance Max asset group will not serve fully without a specific stack of images, per Google's own spec page: at least four 1.91:1 landscape images (1200 x 628 recommended), at least four 1:1 squares (1200 x 1200), optional 4:5 portraits (960 x 1200), one required square logo, and an optional 4:1 landscape logo (1200 x 300), up to 20 images per ratio, JPG or PNG, 5 MB each. A reporting server cannot produce a single one of those files. Neither can any community Google Ads server.

That multi-ratio set is what AdMake AI's server makes. AdMake AI runs a Model Context Protocol server at https://admakeai.com/api/mcp. Grab an API key from your integrations dashboard, point Claude Desktop, Claude Code, Cursor, or any MCP client at it, and Claude gets competitor research from the ad library, on-brand ad images and batch variations across aspect ratios, ad copy, and campaign drafts. The same tools are available as a plain REST API at /api/v1.

{
  "servers": {
    "admakeai": {
      "type": "http",
      "url": "https://admakeai.com/api/mcp",
      "headers": { "X-API-Key": "amai_live_your_key_here" }
    }
  }
}

To be precise about scope: AdMake AI does not push to Google Ads. The working setup is both servers in one client. The official MCP reads your Google Ads performance, AdMake AI generates the display and PMax creative in the same chat, and you upload the finished assets to your campaign. If you would rather skip client setup, Agent Flow runs the same AdMake AI tools in a chat window on the site.

Every PMax ratio from one product photo

Landscape, square, portrait, and logo assets as batch variations, plus competitor research and ad copy, from Claude over MCP or from Agent Flow in your browser. Free credits, no card.

Official vs community Google Ads MCP servers

ServerAccessHostingNotes
Official (googleads/google-ads-mcp)Read-onlySelf-host (pipx / Cloud Run)Free, 3 tools, built by the Google Ads API team. 768 stars.
cohnen/mcp-google-adsRead-onlySelf-hostMost popular community server (669 stars); GAQL plus prebuilt campaign and ad performance tools.
Hosted vendors (Pipeboard, GoMarble, Composio, Markifact)Write (vendors report)Hosted, paidAdd propose-and-approve mutations the official server deliberately leaves out.
AdMake AICreative generationHosted (remote HTTP)The only creative row: competitor research, ad images, batch variations, copy, campaign drafts.

How Google compares to the other ten platforms

Google keeping its server read-only is typical: only three of eleven ad platforms let an agent write anything. The full 11-platform picture, including the X server that quietly excludes ads, is in the MCP capability matrix.

Frequently asked questions

Does Google have an official Google Ads MCP server?

Yes. The Google Ads API team maintains it at github.com/googleads/google-ads-mcp, with a reported launch of April 28, 2026 (that date comes from third-party coverage; Google's own docs do not state it). It is read-only and self-hosted: you run it locally via pipx or deploy it to Cloud Run. There is no Google-hosted endpoint.

Can the Google Ads MCP create or pause campaigns?

No. It is strictly read-only as of July 2026. The official docs state it cannot modify bids, pause campaigns, or create new assets. Mutations deliberately stay in the regular Google Ads API, or in community servers that add propose-and-approve write tools.

Do I need a developer token for the Google Ads MCP?

Yes. A 22-character Google Ads API developer token with at least Explorer access (Standard access for production use; Basic tokens only reach test accounts), plus a Google Cloud project with the Google Ads API enabled and OAuth 2.0 credentials.

Does the Google Ads MCP support manager (MCC) accounts?

Yes. Add GOOGLE_ADS_LOGIN_CUSTOMER_ID with your manager account ID to the server's env block, and queries run against the client accounts under that MCC.

Can I use the Google Ads MCP in ChatGPT?

Not directly with the official server. ChatGPT custom connectors only accept remote HTTP servers, and the official server is a local stdio process. Deploy it to Cloud Run and connect by URL, or use a hosted community server instead.

Can Claude generate Google display or Performance Max ads through this?

Not through the official MCP: it reads data and has no creative tools. AdMake AI's MCP server generates the display and Performance Max image assets (landscape, square, portrait, logos) in the same chat; you then upload them to your campaign.

Is there a hosted Google Ads MCP server?

Not from Google. Unlike Meta's hosted server at mcp.facebook.com/ads, Google publishes no hosted endpoint; you self-host via pipx or Cloud Run. Hosted Google Ads MCP options are community and vendor products.

What is the difference between the official server and community servers?

The official server is read-only, free, self-hosted, and minimal: 3 tools. The most popular community server, cohnen/mcp-google-ads, is also read-only but adds prebuilt performance tools. Vendors offer hosted write servers with propose-and-approve workflows. None of them, official or community, generate creative.