Connect Claude to Google Ads with the official MCP server: a step-by-step guide

Set up Google's official connector and ask Claude about your campaigns in plain language. No coding, read-only.

Flow diagram: you ask Claude, Claude calls the MCP server, it queries the Google Ads API, and the data flows back to Claude

TL;DR

  • Google publishes an official, free MCP server that connects your Google Ads account to Claude. You do not need Supermetrics or any coding.
  • The hard part is not the AI, it is three Google Cloud credentials: an OAuth client, a developer token and a project ID.
  • With the Explorer level of the token (granted instantly) you can already read your real accounts, and it works for any account inside your MCC.
  • The connection is read-only: Claude reads your metrics, but it cannot pause campaigns or change bids.
  • Initial setup takes under an hour. After that, you just ask Claude about your campaigns and it answers with real data.

You have Claude open in one tab and Google Ads in another. You want to ask it something as simple as “which campaign is blowing up my CPA this week?”, but for it to answer with real data you have to export a CSV, paste it into the chat and cross your fingers that no column is missing. Every single time.

In just a few months I have gone from doing exactly that to building myself a system that connects to the ad platforms I work with. Before, I was always downloading the data and, honestly, it was pretty clunky because I had to keep checking I had the right metrics and segments.

So yes, there is a much better way: connect Claude to Google Ads directly. Google publishes an official, free MCP server that links your account to Claude. You can find the documentation here. Once it is set up, you ask about your campaigns in plain language and Claude reads your real data, read-only, without you exporting anything.

In this guide you will build that connection end to end with Claude Desktop. You do not need to know how to code. You do need to follow the Google Cloud credentials part carefully, because that is where almost everyone gets stuck. When you are done, Claude will be able to answer “which accounts do I have access to?” and “how are my campaigns doing this month?” by reading straight from your account.

What you'll get

  • Asking Claude about your campaign performance without exporting a single CSV.
  • A read-only connection: Claude reads, but it cannot touch bids, budgets or campaigns. We are not going that far yet because we risk it getting things wrong.
  • A system that uses Google's official connector, not a paid third-party tool.
  • An initial setup that, once done, you never have to repeat.

Why this matters (and what almost everyone believes)

What almost everyone thinks: that for an AI to “see” your Google Ads you need a paid connector, or you have to pay someone to code a custom integration.

The reality: Google already gives you the connector, free and official. The real work is not in the AI, it is in pulling three Google Cloud credentials that nobody explains well. That is the part we are going to break down here, slowly and with screenshots.

Something reassuring: the current version of the server is read-only. Claude can read your metrics, but it cannot pause campaigns, change bids or create anything. That is everyone’s first fear when connecting an AI to an account with money on the line, and here it does not apply.

Until now I was using tools like Supermetrics or Dataslayer. They are small costs, but they add up over the year and they sting. With just an MCC, a little Google Cloud know-how and no fear of code, you can have something even better, for free. Which, as a good Catalan, I appreciate, not paying is always welcome.

How it works, in one sentence

The full loop is simpler than it looks:

  1. You ask Claude about your campaigns in plain language.
  2. Claude notices it has the Google Ads tool available.
  3. The MCP server queries the Google Ads API with your credentials.
  4. The data flows back to Claude, which answers you in plain text.
Flow diagram: you ask Claude, Claude calls the MCP server, it queries the Google Ads API, and the data flows back to Claude

What you need before you start

  • Google Ads access: a Google account with permission over the ad account you want to analyze, and a manager account (MCC), which is where you request the token from.
  • Claude Desktop: the Claude desktop app, on Mac or Windows (not the web version).
  • Python with pipx: the installer that launches the official server.
  • Google Cloud CLI (gcloud): Google's command-line tool that you will use to generate the credentials file. It is the only moment you will touch the terminal.
  • About 45 to 60 minutes the first time. After that, zero.

The two layers of credentials (read this before touching anything): Google Ads asks for credentials at two levels. On one side, what identifies your application: the OAuth client and the developer token. On the other, your personal authorization: the credentials file with which you grant permission to read your campaigns. Understanding this separation is what avoids 90% of the mess.

Part 1: prepare the credentials in Google Cloud

Everything in this part is done once. The result is three pieces: an OAuth client (a JSON file), a developer token and your Google Cloud project ID.

Step 1: Create a project in Google Cloud

  1. Go to console.cloud.google.com with the Google account that will own the integration.
  2. Click the project selector in the top bar and choose “New project”.
  3. Give it a name you will recognize, for example “Claude Google Ads”, and create it.
  4. Select it, so that all the following steps land inside this project.

Note this down: the project ID (not the name) is what you will need later in the Claude configuration. Copy it when you see it.

Google Cloud project selector for creating a new project
New project creation screen in Google Cloud

Step 2: Enable the Google Ads API

Without this step, the project has no permission to talk to Google Ads.

  1. In the side menu, go to “APIs & Services” and then “Library”.
  2. Search for “Google Ads API”.
  3. Open it and click “Enable”.
Google Cloud API library showing the Google Ads API and the Enable button

Step 3: Configure the OAuth consent screen

This is the screen you will see when you authorize access to your account. You configure it once.

  1. Go to “APIs & Services” and then “OAuth consent screen”.
  2. For user type, choose “External”, unless all accounts are inside your Google Workspace organization.
  3. Fill in the app name, the support email and the contact email.
  • Add the Google Ads scope: https://www.googleapis.com/auth/adwords
  1. While the app is in “Testing” mode, add your own Google account as a test user.

A warning that saves you grief: while the OAuth app is in Testing mode, the authorization expires after 7 days and Claude will stop reading data. Once everything works, publish the app to Production so the authorization stops expiring. Note: this is independent of the developer token level.

This warning matters. When I had no clue, it never occurred to me to publish the app in production mode and I had to keep renewing the consent constantly. After making sure that an app in production does not mean everyone can suddenly access it, I published it and now I renew it once every 3 months.

Configuring the OAuth consent screen in Google Cloud
Adding the Google Ads (adwords) scope on the OAuth consent screen

Step 4: Create the OAuth client and download its JSON file

This file is what identifies your installation to Google.

  1. Go to “APIs & Services” and then “Credentials”.
  2. Click “Create credentials” and choose “OAuth client ID”.
  3. For application type, choose “Web application”.
  4. Add an authorized redirect URI of the http://localhost type (the authorization will be completed on your own machine, in Step 6).
  5. Create it and download the client JSON file. Save it in a folder that is easy to find, for example your home folder.

About the redirect URI: use http://localhost:3000 as the authorized redirect URI. It is the port on which the server completes the authorization on your machine, in Step 6.

Creating a Web application OAuth client ID in Google Cloud
Setting the authorized redirect URI http://localhost:3000
Downloading the JSON file of the newly created OAuth client

Step 5: Get the developer token

The developer token is not in Google Cloud, it lives in the Google Ads interface, and you can only request it from a manager account (MCC).

  1. Go to your Google Ads manager account (MCC).
  2. Go to “Tools and settings”, then “Setup” and “API Center”.
  3. Complete the API access form and accept the terms.
  4. Copy the token that appears. You will need it in the Claude configuration.

The level you need is Explorer, and it is usually automatic: when you request it, Google will typically grant you the Explorer level instantly, which already lets you read your real production accounts (with certain daily volume limits). To query your campaigns you do not need to move up to Basic or Standard. And, by pointing to your manager account as context, the same token works for any account hanging off that MCC.

The only case where you will have to wait: if Google cannot review your request automatically, instead of Explorer it will give you “Test Account Access” (test accounts only) with a pending status. If that happens to you, you will not read real data until they approve a higher level.

I think I waited about 8 hours; then an email came confirming it was ready.

Developer token in the API Center of the Google Ads manager account

Step 6: Generate the credentials file with a command

This is where you authorize your account. You will run a command that opens a Google link, asks for permission in the browser and saves a credentials file on your machine. It is the only terminal moment in the whole guide.

Open the terminal and run this command, replacing PATH_TO_YOUR_CLIENT_JSON with the path of the file you downloaded in Step 4:

gcloud auth application-default login \
  --scopes https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \
  --client-id-file=PATH_TO_YOUR_CLIENT_JSON
  1. The browser will open with a Google authorization link.
  2. Sign in with the Google account that has access to your Google Ads and accept the permissions.
  3. When it finishes, the terminal will show a line with the path of the credentials file it just created:
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]

Copy that path. It is the one you will put in the Claude configuration in the next step.

Authorize with the right account: use the Google account that actually has access to the Google Ads account you want to read. If you authorize with a different account, Claude will not see those campaigns.

Part 2: connect the server to Claude

You now have the three pieces: the path of the credentials file, the project ID and the developer token. Now you hand them to Claude Desktop.

Step 7: Open Claude's configuration file

  1. Open Claude Desktop.
  2. Go to Settings and then the Developer section.
  3. Click “Edit Config”. A file called claude_desktop_config.json will open.

The button takes you straight to the file, so you do not have to hunt for it in your system by hand.

Claude Desktop developer section with the Edit Config button

Step 8: Paste the Google Ads server configuration

Inside that file, paste Google's official server block. Replace the three uppercase values with yours:

{
  "mcpServers": {
    "google-ads-mcp": {
      "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_PROJECT_ID",
        "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN"
      }
    }
  }
}

What each thing is, in plain English:

  • GOOGLE_APPLICATION_CREDENTIALS: the path of the credentials file that the Step 6 command printed for you.
  • GOOGLE_PROJECT_ID: the Google Cloud project ID from Step 1.
  • GOOGLE_ADS_DEVELOPER_TOKEN: the token from Step 5.

If you work with an MCC (this is key): to read any account hanging off your manager account, add one more line inside “env” with your MCC ID. With that, the same setup works for all your clients:

"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "YOUR_MCC_ACCOUNT_ID"

The silly mistake that costs half an hour: this file is JSON, so one extra comma or a badly closed quote makes Claude fail to load the server. If something is off, check first that the JSON is written correctly.

Google Ads MCP server configuration block in claude_desktop_config.json

Step 9: Restart Claude and check it works

  1. Quit Claude Desktop completely. Closing the window is not enough, you have to close the application entirely.
  2. Open it again and start a new chat.
  3. Try these questions, in this order:

“Which Google Ads accounts do I have access to?”, then “How many active campaigns do I have?” and “How are my campaigns doing this week?”.

Why quit completely: Claude launches the server as a separate process and keeps the version it loaded on startup. If you only close the window, it may keep running the old configuration and you will think it does not work.

Under the hood, Claude uses two of the server’s tools: one that lists the accounts you have access to and another that queries your metrics. If you manage several accounts, the easiest thing is to include the customer ID directly in your question.

When I set up a new connection I always validate by asking (1) which accounts it has access to and (2) the overall account performance for the last 7 days and how much was spent.

Claude replying with real data from the connected Google Ads accounts

What Claude can and cannot do with this

  • It can: list the accounts you have access to and query metrics, budgets and campaign statuses.
  • It cannot: pause campaigns, change bids, move budgets or create anything. It is read-only.

For analysis, diagnosis and reporting, this is exactly what you want. To execute changes, you still go into the account yourself.

The most common errors (and how to get out of them)

  • Claude does not return real data: your token probably stayed on “Test Account Access” instead of Explorer. Check the level in the API Center.
  • It worked and stopped working after a few days: the OAuth app is still in Testing mode. Publish it to Production.
  • It cannot find the account or gives an access error: if the account hangs off an MCC, you are missing the GOOGLE_ADS_LOGIN_CUSTOMER_ID line with the manager ID.
  • Claude does not even see the server: either you did not restart the app completely, or the configuration JSON has a syntax error.

Not returning real data is the most typical error. If you do not guide Claude from the start, it will always be getting things wrong because either it does not understand the context or it is looking at the wrong data.

Without context, you only have 50%

Connecting Claude to Google Ads is only half the job. The server gives it the numbers, but it does not give it the judgment to interpret them. If you ask about performance with nothing else, it will give you a generic, textbook reading.

The difference is working inside a Claude Project and giving it the business context. Upload the documents you already use to understand the account, for example:

  • The client brief: what they do, how they acquire and what they consider a conversion that truly matters.
  • Your latest reports: what is the most recent performance you analyzed and what decisions you already made.

With that context, Claude stops describing metrics and starts relating them to the business. That is the part that turns the connection into something genuinely useful.

Summary

  • Connecting Claude to Google Ads does not need a paid connector: Google publishes an official, free MCP server.
  • The hard part is the Google Cloud credentials, not the AI.
  • You need three pieces: an OAuth client (a JSON), a developer token and a project ID.
  • With the Explorer level of the token you already read real accounts, and it works for any account in your MCC.
  • The connection is read-only: Claude reads, it touches nothing.

Action plan

  1. Create the project in Google Cloud and enable the Google Ads API.
  2. Configure the consent screen and create a Web application OAuth client.
  3. Request the developer token from your MCC (they will give you Explorer).
  4. Generate the credentials file with the gcloud command.
  5. Paste the configuration block into Claude Desktop, restart and ask it about your accounts.

Want us to set it up together?

If you got lost anywhere in the credentials, or you want to take this further (connecting Meta Ads, GA4 or your CRM too, or building a custom reporting system on this same base), I can help. Write to me using the contact form on this article and we will talk about your specific case.

Final thought

The hard part of connecting an AI to your marketing data is never the AI. It is the plumbing of permissions and credentials underneath. Whoever understands that builds in an afternoon what others pay for in licenses every month, and ends up understanding their own stack far better than whoever delegates that part to a closed tool.

Frequently asked questions

Is it free to connect Claude to Google Ads?

add
Yes. Google publishes an official, free MCP server (github.com/googleads/google-ads-mcp). You do not need Supermetrics or any paid connector, just Google Cloud credentials, which are also free.

What is MCP (Model Context Protocol)?

add
MCP is the open standard created by Anthropic for connecting AI assistants like Claude to external tools and data. The Google Ads MCP server uses that standard so Claude can read your account through the official Google Ads API.

Can Claude pause campaigns or change bids?

add
No. The connection is read-only: Claude reads metrics, budgets and campaign status, but cannot pause campaigns, change bids or create anything. To make changes you still go into the account yourself.

Does it work with a manager account (MCC)?

add
Yes. By adding the GOOGLE_ADS_LOGIN_CUSTOMER_ID line with your MCC ID to the config, the same setup works for any account under that manager.

Which developer-token level do I need?

add
The Explorer level, which Google usually grants instantly, already lets you read your real production accounts (with certain daily volume limits). You do not need Basic or Standard to query your campaigns.

Why does it stop working after a few days?

add
Almost always because the OAuth app is still in Testing mode, where authorization expires after 7 days. Publish the app to Production and access stops expiring (it then renews roughly every 3 months).