MCP Ecommerce

Advertising

Connect Claude to Google Ads with the Google Ads MCP Server

Updated · 6 min read

3D white rounded app tile with the Google Ads logo floating against a solid blue background, casting a soft shadow

The short answer

Install Google's open-source Google Ads MCP server on your own machine, give it a Google Ads developer token and Google credentials, then register it in Claude Desktop or Claude Code. It is read-only, so Claude can query campaign data but not change it. Google does not host it, so claude.ai on the web needs a self-hosted version.

Google publishes an open-source MCP server for Google Ads. Once it is connected, you can ask Claude questions about campaigns, budgets and performance in plain language, and Claude runs the queries against your account. This guide covers what you need, which Claude setups work, how to configure them, and where the limits are.

If MCP is new to you, read What Is MCP? A Plain-English Guide for E-commerce Merchants first. In short: MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data. An MCP server exposes the tools, and an MCP client (such as Claude) calls them.

What does the Google Ads MCP server actually do?

The server is a small program that sits between Claude and the Google Ads API. It is maintained in the googleads/google-ads-mcp repository on GitHub and documented on the Google Ads API developer pages.

Its main tools are:

  • list_accessible_customers: lists the Google Ads accounts your credentials can reach.
  • search: runs a query written in GAQL (Google Ads Query Language, the SQL-like language of the Google Ads API) and returns the rows. Claude writes the GAQL for you.
  • get_resource_metadata: describes which fields and resources exist, so Claude can build valid queries.

A caveat on that list: the GitHub README lists all three tools, while an excerpt of the Google docs page mentions only list_accessible_customers and search. Check the live documentation for the current set before you rely on it.

The server also exposes a discovery-document resource (the Google Ads API description) and supports a tools_config.yaml file, which lets you switch individual tools on or off. By default, all tools are enabled.

Can the Google Ads MCP server change my campaigns?

No. Secondary sources quoting Google's documentation describe the server as strictly read-only: it cannot modify bids, pause campaigns or create assets. I could not verify that exact wording on Google's page, so confirm it in the docs. Whether write tools will ever be added is not announced, so do not plan around it.

For most teams this is a reasonable starting point. Reporting, audits and anomaly checks carry little risk. Any change still happens in the Google Ads interface or through your normal tooling.

What do you need before you start?

Expect to prepare these items:

  1. A Google Cloud project with the Google Ads API enabled.
  2. A Google Ads developer token. It is issued from a manager (MCC) account under Tools, Setup, API Center. If you only have a single standard account, you may need to create a manager account first.
  3. Google credentials. OAuth 2.0 client credentials, or a service account or Application Default Credentials. The OAuth scope is https://www.googleapis.com/auth/adwords.
  4. pipx and Python on the machine that will run the server.
  5. Your manager account ID, if you reach client accounts through an MCC. It goes into the optional GOOGLE_ADS_LOGIN_CUSTOMER_ID variable. Without it, queries against client accounts can fail.

Developer token access levels are the part with the most conflicting advice online. A test-level token only works against test accounts. Guides disagree on whether Explorer-level access is enough for real accounts and how long approvals take. Read the "Access levels" page in the Google Ads API docs rather than trusting any timeline in a blog post.

Which Claude setup works with this server?

The key fact: there is no Google-hosted endpoint for Ads. By default the server runs locally using stdio (standard input and output, a way for an app to talk to a program on the same computer). Claude's custom connectors are reached from Anthropic's cloud, not from your laptop, so a local server cannot be added as a custom connector.

Claude product Works with the default local server? How
Claude Desktop Yes Edit claude_desktop_config.json
Claude Code Yes claude mcp add
claude.ai (web, mobile) No, not by default Needs a self-hosted HTTPS endpoint added as a custom connector

How do you set it up in Claude Desktop?

  1. Install pipx if you do not have it.
  2. In Claude Desktop, open Settings, then Developer, then Edit Config. This opens claude_desktop_config.json.
  3. Add a server entry that follows the pattern in Google's README:
{
  "mcpServers": {
    "google-ads": {
      "command": "pipx",
      "args": [
        "run",
        "--spec",
        "git+https://github.com/googleads/google-ads-mcp.git",
        "google-ads-mcp"
      ],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_PROJECT_ID": "your-cloud-project-id",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-developer-token",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-manager-account-id"
      }
    }
  }
}
  1. Save the file and restart Claude Desktop fully.
  2. Start a new chat and check that the google-ads tools appear in the tools list.

The environment variable names above come from Google's README and docs page. Third-party guides use different names for OAuth client variables (for example GOOGLE_ADS_MCP_OAUTH_CLIENT_ID), which belong to a different authentication mode. Use the variables that match the auth method you chose, as documented in the current README.

Treat the config file like a password file. It holds your developer token.

How do you set it up in Claude Code?

Claude Code is Anthropic's command-line coding tool, but it works fine as a reporting client. A third-party guide shows this command, which matches Google's config:

claude mcp add google-ads -- pipx run --spec git+https://github.com/googleads/google-ads-mcp.git google-ads-mcp

You still need to pass the same environment variables, either in your shell or in the Claude Code settings. Check the current Claude Code documentation for the supported way to do this.

Can you use it in claude.ai on the web?

Only if you host the server yourself. The README describes a streamable HTTP mode: when the OAuth variables are set, the server switches from stdio to the streamable-http transport and runs as a separate process. It also documents deployment to Cloud Run or other cloud infrastructure, using an OAuth client ID and secret through an OAuth proxy.

In principle, you could then add the public HTTPS URL as a custom connector in Claude (Customize, then Connectors, then Add custom connector; menu labels have changed over time, so check the current Claude help page). On Team and Enterprise plans, an organization Owner adds the connector first.

Two honest warnings. First, I found no official Google documentation confirming this works with Claude's connector flow, so test it before you promise it to a client. Second, self-hosting means you run infrastructure, secure it and pay for it. A public endpoint that can read ad account data deserves proper access control. For most merchants, the local setup is simpler and safer.

What should you ask Claude first?

Start with narrow, checkable questions:

  • "List the Google Ads accounts you can access."
  • "For account X, show campaign cost, clicks and conversions for the last 30 days, sorted by cost."
  • "Which campaigns spent more than their daily budget on average last week?"
  • "Show search terms with spend and no conversions."

Ask Claude to show the GAQL query it ran. Compare a few numbers against the Google Ads interface until you trust the setup. Claude can misread a field, apply the wrong date range or mix up currency units (the API reports money in micros, millionths of a currency unit).

What are the limits and risks?

  • Read-only. No bid changes, pauses or new assets.
  • Ad platform data only. Claude sees what Google Ads reports. It does not see your margins, returns or product costs. Conversion value in Google Ads is usually revenue, so "best campaign" in Claude means best by that number. If you want profit-based answers, the data has to come from your store and tracking setup, for example a profit-focused tracking tool for Shopify stores.
  • Credentials sit on your machine. Limit access to the manager account, and consider a user with read-only rights.
  • Data leaves Google Ads. Query results are passed to Claude. Check your client contracts and privacy rules before connecting client accounts.
  • Setup is technical. If you are an agency rolling this out to a team, expect to document it and support it. For the wider tradeoffs, see MCP vs API: What Changes for Online Stores and Agencies.

Is it worth setting up?

If you already spend time exporting Google Ads reports and answering the same questions, yes. It turns ad-hoc questions into a conversation and saves manual pulls. If you need Claude to act on the account, this server is not that tool. Verify the repository, the Google docs page and the access-level rules on the day you set it up, because this area is changing quickly.

Frequently asked questions

+Is the Google Ads MCP server official?

Yes. The googleads/google-ads-mcp repository is the open-source server referenced by Google's Google Ads API documentation. An older repository from google-marketing-solutions is archived and states it is not an officially supported Google product. Use the one the official docs point to, and check the repository name carefully before installing.

+Can Claude edit my Google Ads campaigns through MCP?

Not with this server. Secondary sources quoting Google's documentation describe it as strictly read-only, so it can report on campaigns, budgets and status but cannot change bids, pause campaigns or create assets. Confirm the current behavior in Google's docs, since write support could change.

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

Google's setup for this server lists a Google Ads developer token, issued from a manager account in the API Center. Test-level tokens only work with test accounts. Guides disagree about access levels and approval times, so read the Access levels page in the Google Ads API documentation.

+Why can't I add the Google Ads MCP server as a connector in claude.ai?

Custom connectors are reached from Anthropic's cloud, and Google does not host an endpoint for Ads. A server running on your laptop is therefore not reachable. You can use Claude Desktop or Claude Code locally, or self-host the server over HTTPS and test whether it works as a custom connector.

+Which environment variables does the server need?

Google's README and docs show GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_PROJECT_ID and GOOGLE_ADS_DEVELOPER_TOKEN, plus an optional GOOGLE_ADS_LOGIN_CUSTOMER_ID for manager accounts. Other variables apply to the OAuth proxy mode used for hosted setups. Check the current README, because variable names depend on the authentication mode.

Sources

Keep reading