MCP Hub
Back to servers

google-ads-mcp

MCP server for Google Ads API — 22 tools for campaigns, keywords, RSAs, assets, audiences, geo/device performance, impression share, auction insights, and budget pacing. Community edition with B2B/agency-focused tooling beyond the official Google MCP.

glama
Updated
Apr 26, 2026

google-ads-mcp

MIT License glama score

A Model Context Protocol server for Google Ads — give Claude and other AI assistants direct access to your Google Ads account.

This is a community edition with B2B/agency-focused tooling that goes beyond the official googleads/google-ads-mcp. It adds RSA asset performance labels, auction insights, impression share analysis, geo/device splits, audience targeting inspection, and budget pacing — the tools you actually need to diagnose spend efficiency and optimize campaigns in conversation.


Features

CategoryTools
AccountList accounts, account info
CampaignsList campaigns, campaign performance, ad group performance
KeywordsKeyword performance, search terms report
ConversionsConversions by campaign, list conversion actions
Ad Copy / RSAsList RSAs with Ad Strength, RSA asset performance labels
Assets / ExtensionsList account assets, campaign assets
AudiencesList user lists, campaign audience targeting
PerformanceGeo performance, device performance, impression share, auction insights
BudgetList budgets, budget pacing
Escape hatchRaw GAQL query

Prerequisites

  • Node.js 20+
  • A Google Ads Developer Token (apply here)
  • OAuth 2.0 credentials (Client ID + Secret) from Google Cloud Console
  • A refresh token with https://www.googleapis.com/auth/adwords scope

Environment variables

VariableRequiredDescription
GOOGLE_ADS_DEVELOPER_TOKENYesYour Google Ads developer token
GOOGLE_ADS_CLIENT_IDYesOAuth 2.0 client ID
GOOGLE_ADS_CLIENT_SECRETYesOAuth 2.0 client secret
GOOGLE_ADS_REFRESH_TOKENYesOAuth 2.0 refresh token
GOOGLE_ADS_CUSTOMER_IDYes*Default customer ID (no dashes). Can be overridden per tool call.
GOOGLE_ADS_LOGIN_CUSTOMER_IDNoManager account ID for MCC access

Usage

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "google-ads": {
      "command": "npx",
      "args": ["-y", "google-ads-mcp"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_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": "1234567890"
      }
    }
  }
}

Claude Code

{
  "mcpServers": {
    "google-ads": {
      "command": "node",
      "args": ["/path/to/google-ads-mcp/dist/index.js"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_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": "1234567890"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "google-ads": {
      "command": "npx",
      "args": ["-y", "google-ads-mcp"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_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": "1234567890"
      }
    }
  }
}

Docker

docker build -t google-ads-mcp .
docker run --rm \
  -e GOOGLE_ADS_DEVELOPER_TOKEN=YOUR_TOKEN \
  -e GOOGLE_ADS_CLIENT_ID=YOUR_CLIENT_ID \
  -e GOOGLE_ADS_CLIENT_SECRET=YOUR_CLIENT_SECRET \
  -e GOOGLE_ADS_REFRESH_TOKEN=YOUR_REFRESH_TOKEN \
  -e GOOGLE_ADS_CUSTOMER_ID=1234567890 \
  google-ads-mcp

Tools reference

ToolDescription
gads_run_gaqlRun any raw GAQL query — escape hatch for custom reports
gads_list_accountsList all accessible Google Ads accounts
gads_account_infoName, currency, timezone, manager flag, status
gads_list_campaignsCampaigns with status, channel type, bidding strategy
gads_campaign_performanceImpressions, clicks, CTR, CPC, cost, conversions, CPA, ROAS
gads_ad_group_performanceAd group metrics with campaign context
gads_keyword_performanceKeywords with match type, quality score, cost, conversions
gads_search_terms_reportActual user queries that triggered ads — find negatives and opportunities
gads_conversions_by_campaignConversions × conversion action per campaign
gads_list_conversion_actionsAll conversion actions with category, type, counting method
gads_list_rsasRSAs with all headlines, descriptions, Ad Strength, approval status
gads_rsa_asset_performancePer-asset performance labels: BEST / GOOD / LOW / PENDING / LEARNING
gads_list_assetsAccount assets: sitelinks, callouts, structured snippets, images
gads_campaign_assetsAssets linked to campaigns with field type
gads_list_audiencesUser lists (remarketing, customer match) with size and match rate
gads_campaign_audience_targetingAudiences on campaigns with bid modifiers and inclusion/exclusion
gads_geo_performancePerformance by country, region, and city
gads_device_performanceCost, conversions, CPA split by MOBILE / DESKTOP / TABLET
gads_impression_shareSearch IS, Lost IS (Budget), Lost IS (Rank) per campaign
gads_auction_insightsImpression share, overlap rate, outranking share vs competitors
gads_list_budgetsAll budgets: amount, delivery method, period, recommended budget
gads_budget_pacingCost vs budget per campaign with utilization %

Example prompts

  • "What's my impression share vs competitors this month? Who am I most often losing to?"
  • "Show me all RSA assets with LOW performance labels so I can replace them."
  • "Which keywords are spending the most with zero conversions in the last 30 days?"
  • "What's my mobile vs desktop CPA difference across all campaigns?"
  • "Are any campaigns budget-limited right now? Show me Lost IS (Budget)."
  • "List my remarketing audiences and tell me which ones are large enough to target in Search."

Build from source

git clone https://github.com/ZLeventer/google-ads-mcp.git
cd google-ads-mcp
npm install
npm run build

License

MIT — Copyright (c) 2026 Zach Leventer

Reviews

No reviews yet

Sign in to write a review