LabscoMCP early access ↗
DigitalRocket-bizMCP SERVER

Google Ads API v20

Run Google Ads API v20 operations from an assistant — campaigns, ad groups, ads, budgets, keywords and GAQL reporting.

by DigitalRocket-biz ↗Marketing Automation & AdvertisingCommunity

LABSCO SUMMARY

It writes as well as reads, which is the part to think about.

Creating campaigns, changing budgets and pausing live ads are all in scope, so the credential you hand it is a credential that can spend money — the project's own security notes say to use service accounts in production and rotate refresh tokens. The error handling is the standout: a failure comes back with a retryable flag and a link to Google's documentation for that specific code, which is far more actionable than the raw API's response.

What it is

An MCP server over the Google Ads API v20 that covers the operational surface rather than reporting alone: accounts and hierarchy, campaigns, ad groups, ads, assets, shared budgets, keywords and negatives, plus custom GAQL queries. It handles the parts of the API that usually cost you a day — retrying transient errors with exponential backoff, refreshing OAuth tokens automatically, and continuing through a partial failure instead of aborting the batch.

What you get

  • Accounts listed with their hierarchy — list_accounts
  • Campaigns created, updated, paused and resumed, with the budget amount and campaign type set on creation — create_campaign
  • Performance read over a named date range — get_campaign_performance
  • Arbitrary GAQL executed, which is how you get the report the typed tools do not cover — run_gaql_query
  • Negative keywords added, including campaign-level negatives for Performance Max, which is a v20 addition — add_negative_keywords
  • Ad group CRUD, responsive search and expanded text ads, image and text asset management, and shared budgets
  • Errors returned with the type and code, whether the failure is retryable, a link to Google's own documentation for it, and a suggested fix

Requirements

A Google Ads developer token in GOOGLE_ADS_DEVELOPER_TOKEN — required for every auth method — plus either the OAuth2 trio GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET and GOOGLE_ADS_REFRESH_TOKEN, or a service account via GOOGLE_ADS_SERVICE_ACCOUNT_PATH with an optional GOOGLE_ADS_IMPERSONATED_EMAIL. Set GOOGLE_ADS_LOGIN_CUSTOMER_ID when you work through a manager account. Configuration can live in the environment or in ~/.config/google-ads-mcp/config.json instead. Python 3.10 or newer: clone the repository, run pip install -e ., and point your client at the repository's run_server.py; LOG_LEVEL=DEBUG for detailed logs.

Setup effort

Build from source — git clone https://github.com/DigitalRocket-biz/google-ads-mcp-v20.git