Skip to main content
Glama
MCP Google Ads Server

MCP Google Ads Server

by rusik-denver

MCP Google Ads Server

License: MIT Python 3.11+ MCP

An MCP (Model Context Protocol) server that lets AI models query Google Ads data, manage keywords, adjust budgets, and audit accounts — directly from Claude, GPT, or any MCP-compatible client.

Ships with a demo mode that returns realistic mock data, so you can explore the full API without any Google Ads credentials.

Architecture

graph LR
    A[AI Client<br>Claude / GPT] -->|MCP Protocol| B[MCP Server]
    B --> C{Mode?}
    C -->|Demo| D[Mock Data<br>Realistic fixtures]
    C -->|Live| E[Google Ads API<br>GAQL queries]
    B --> F[Resources<br>accounts, doctrines, health]
    B --> G[Tools<br>8 operations]

Related MCP server: LoomaScale Google Ads

Tools

Tool

Description

get_campaign_metrics

Campaign performance: impressions, clicks, cost, conversions, CPA, ROAS

get_search_terms

Search term report with wasted spend detection

get_keyword_metrics

Keyword-level data with quality scores and bid info

get_geo_performance

Geographic breakdown by city/region

add_negative_keyword

Add negatives to campaigns or shared lists

set_campaign_budget

Adjust daily budgets

adjust_keyword_bid

Change CPC bids on individual keywords

run_account_audit

Comprehensive audit: wasted spend, low QS, high CPA, doctrine compliance

Resources

URI

Description

ads://accounts

List of managed accounts with IDs and labels

ads://doctrines

Operational rules engine (10 doctrines)

ads://accounts/{id}/health

Health score, alerts, and recommendations

ads://status

Server mode and connection info

Quick Start

1. Install

pip install -e .

2. Run in Demo Mode

mcp-google-ads

No configuration needed — demo mode is the default. The server returns realistic mock data modeled on home-service advertising (TV mounting, handyman services).

3. Connect to Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "google-ads": {
      "command": "mcp-google-ads"
    }
  }
}

4. Connect to Claude Code

Add to your project's .mcp.json:

{
  "mcpServers": {
    "google-ads": {
      "type": "stdio",
      "command": "mcp-google-ads"
    }
  }
}

Live Mode

To query real Google Ads data, set credentials in .env:

cp .env.example .env
# Fill in your Google Ads API credentials

Then start with demo mode disabled:

MCP_DEMO_MODE=0 mcp-google-ads

Required credentials:

  • GOOGLE_ADS_DEVELOPER_TOKEN — from your Google Ads API Center

  • GOOGLE_ADS_CLIENT_ID / CLIENT_SECRET — OAuth2 app credentials

  • GOOGLE_ADS_REFRESH_TOKEN — generated via OAuth2 flow

  • GOOGLE_ADS_LOGIN_CUSTOMER_ID — your MCC account ID

  • GOOGLE_ADS_CUSTOMER_IDS — comma-separated managed account IDs

Example Session

You: What are my top campaigns by ROAS?

Claude: I'll check your campaign metrics.

> get_campaign_metrics(date_range="LAST_30_DAYS")

Here are your campaigns ranked by ROAS:

1. Brand - Exact Match — 11.5x ROAS, $1,247 spend, 48 conversions
2. Emergency - Phrase Match — 5.4x ROAS, $892 spend, 12 conversions
3. Local - City Targeting — 3.1x ROAS, $2,100 spend, 22 conversions
4. Services - Broad Modified — 2.7x ROAS, $3,456 spend, 31 conversions
5. Competitor Conquest — 0.3x ROAS, $1,890 spend, 2 conversions ⚠️

The Competitor Conquest campaign is bleeding money at $945/conversion.
I'd recommend pausing it or adding tighter negative keywords.

Project Structure

src/mcp_google_ads/
├── __init__.py         # Package metadata
├── server.py           # MCP server — tools, resources, entry point
└── demo_data.py        # Realistic mock data fixtures

Author

Ruslan Danelian — premium.ruslandanelian.com

I build MCP servers, Google Ads API automation, and AI agent systems for production use. This project is a sanitized example of the tooling I operate daily across 8 live ad accounts.

License

MIT — see LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive access to Google Ads API v20, enabling AI assistants to manage campaigns, accounts, assets, and reporting through natural language. It features automatic retry logic, GAQL query support, and advanced functionality for Performance Max and Demand Gen campaigns.
    11
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Google Ads. Audit spend, find wasted budget, create campaigns, monitor performance, and optimize ads directly from ChatGPT, Claude, or any MCP-compatible client.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables LLMs and AI agents to query Google Ads accounts and reporting data through the Google Ads API, including customer lookups, resource metadata inspection, and reference material on metrics, segments, and release notes. Tools and resources can be selectively enabled and namespaced via a configuration file, with authentication handled through Application Default Credentials or an OAuth proxy.
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude, ChatGPT, Copilot, and Cursor to read Google Ads data—campaigns, ad groups, ads, keywords, search terms, budgets, conversion actions, change history, and custom GAQL queries—through 17 read-only MCP tools. It supports OAuth-authenticated access to real accounts without requiring a developer token, keeping all operations read-only and auditable.
    20 npm
    AGPL 3.0