google-ads mcp tutorial setup

How to Set Up Google Ads MCP Server

Step-by-step tutorial for connecting Google Ads to Claude via MCP server — from credentials to your first campaign query.

MarketCore Labs Team

The Google Ads MCP server lets you query and manage your Google Ads account through Claude. Instead of navigating dashboards and building custom reports, you ask questions in plain English and Claude fetches the data. This tutorial walks through the complete setup from zero to your first query.

Time to complete: 30-45 minutes
Technical difficulty: Low-medium (terminal required, no coding needed)
Prerequisites: Google Ads account, Claude Desktop installed, Node.js 18+

What You Can Do With This Integration

Once set up, you can ask Claude things like:

  • “Which campaigns had the best ROAS last month?”
  • “Show me keywords with a high impression share but low CTR”
  • “What’s my total spend this week versus last week?”
  • “List ad groups where average CPC is above $15 and conversion rate is below 2%”
  • “Draft new responsive search ad headlines for my top 5 keywords by spend”

Read operations work immediately. Write operations (creating campaigns, pausing ad groups) require additional API permissions.

Step 1: Get a Google Ads Developer Token

Every Google Ads API integration requires a Developer Token, even for personal use.

  1. Sign into Google Ads with your account
  2. Navigate to Tools & Settings → Setup → API Center
  3. Apply for API access — select “Basic” access level (free, covers most use cases)
  4. The approval typically takes 1-2 business days
  5. Once approved, copy your Developer Token

Note: If you manage multiple accounts, do this from your Manager Account (MCC), not a sub-account. The Developer Token is attached to the MCC.

Step 2: Set Up OAuth Credentials

The MCP server authenticates using OAuth 2.0. You’ll need to create credentials in Google Cloud Console.

  1. Go to Google Cloud Console
  2. Create a new project (or use an existing one)
  3. Enable the Google Ads API for your project: APIs & Services → Library → search “Google Ads API” → Enable
  4. Create OAuth credentials: APIs & Services → Credentials → Create Credentials → OAuth client ID
  5. Application type: Desktop app
  6. Download the client_secrets.json file — save it somewhere safe

Step 3: Generate a Refresh Token

You need a refresh token that lets the MCP server authenticate without requiring you to log in each time.

Install the Google Ads API client:

pip install google-ads

Then run the OAuth flow:

python -m google.ads.googleads.oauth2 --client_secrets_path /path/to/client_secrets.json

This opens a browser window. Log in with the Google account that has access to your Google Ads. Authorize the app, and you’ll get a refresh token in the terminal. Copy it.

Step 4: Find Your Customer ID

Your Customer ID is the 10-digit number in the top-right of Google Ads (format: XXX-XXX-XXXX). When passing it to the MCP server, remove the dashes: XXXXXXXXXX.

If you use a Manager Account (MCC), you’ll also need the sub-account customer IDs for the accounts you want to query.

Step 5: Install and Configure the MCP Server

Install the Google Ads MCP server:

npm install -g @modelcontextprotocol/server-google-ads

Open your Claude Desktop config file:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this to the mcpServers section (create the file if it doesn’t exist):

{
  "mcpServers": {
    "google-ads": {
      "command": "node",
      "args": ["/path/to/node_modules/@modelcontextprotocol/server-google-ads/dist/index.js"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-developer-token",
        "GOOGLE_ADS_CLIENT_ID": "your-client-id",
        "GOOGLE_ADS_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_ADS_REFRESH_TOKEN": "your-refresh-token",
        "GOOGLE_ADS_CUSTOMER_ID": "your-customer-id-no-dashes"
      }
    }
  }
}

Replace all your-* placeholders with your actual values.

Step 6: Restart Claude Desktop and Test

Fully quit and restart Claude Desktop. When it relaunches, look for the hammer icon in the chat interface — this indicates MCP servers are connected.

Test with a simple query: “What’s my Google Ads account name?”

If it works, you’ll get your account information. If you get an error, the most common causes are:

  • Incorrect Customer ID format (should have no dashes)
  • Developer Token not yet approved (check email)
  • OAuth credentials not authorized for the account you’re querying

Step 7: Your First Real Query

Once the basic test works, try something practical:

“Show me my top 10 keywords by spend this month, including CTR, average CPC, and conversions.”

Claude will query the Google Ads API and return a formatted table. From here, you can ask follow-up questions, request analysis, or ask Claude to draft optimization recommendations based on what it finds.

Troubleshooting Common Issues

“Developer token is not approved” — Your token is still pending approval. Check the API Center in Google Ads for the approval status.

“Customer ID not found” — Verify the ID in your Google Ads account. If using an MCC, make sure the authenticated Google account has access to the specific sub-account.

“Insufficient permissions” — The authenticated account may not have the permission level needed. Manager-level access is required for most API operations.

Server not appearing in Claude Desktop — Check the JSON syntax in your config file. Use a JSON validator to catch typos. Ensure Claude Desktop was fully restarted, not just the window.


For more on using MCP servers with Claude for marketing, read our MCP Servers for Marketing Automation guide.

Found this tutorial helpful? Subscribe to the MarketCore newsletter — we publish setup guides for new MCP servers as they launch.

Get more guides like this

The MarketCore newsletter covers new AI marketing tools and workflows every week.