Skip to main content
Glama
rusik-denver

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: Google Ads MCP Server

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
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language access to Google Ads campaigns, accounts, and performance metrics via Claude, with tools for managing ad groups, keywords, budgets, and visualizing data.
    1
    -
  • A
    license
    C
    quality
    D
    maintenance
    A comprehensive Google Ads API integration for AI assistants through the Model Context Protocol. This server enables Claude AI and other MCP-compatible clients to manage Google Ads campaigns, analyze performance, and execute GAQL queries with natural language commands.
    76
    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