MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

Google Ads MCP server — query campaigns, keywords, assets & more via natural language

Created 3/2/2026
Updated about 6 hours ago
Repository documentation and setup instructions

mcp-gads

Google Ads MCP server — query campaigns, keywords, assets & more via natural language.
Built with Bun + TypeScript. Works with Claude, Cursor, and any MCP client.


Quick Start

1. Get Credentials

You need a Google Ads API developer token and OAuth client credentials.

  1. Download your OAuth client JSON from Google Cloud Console
  2. Set environment variables:
export GOOGLE_ADS_DEVELOPER_TOKEN=your-token
export GOOGLE_ADS_CREDENTIALS_PATH=./credentials.json
  1. Run the setup helper to authorize:
npx mcp-gads setup

This opens your browser, completes OAuth, and saves a refresh token.

2. Add to Claude Code

claude mcp add google-ads --scope user --transport stdio \
  -e GOOGLE_ADS_DEVELOPER_TOKEN=your-token \
  -e GOOGLE_ADS_CREDENTIALS_PATH=/path/to/credentials.json \
  -- npx -y mcp-gads@latest

That's it. Restart Claude Code and the tools are available. Every session runs the latest version automatically.

Also works with bunx mcp-gads@latest if you have Bun.

Alternative: standalone binary

Download a pre-built binary from Releases:

| Platform | File | |----------|------| | macOS (Apple Silicon) | mcp-gads-darwin-arm64 | | macOS (Intel) | mcp-gads-darwin-x64 | | Linux | mcp-gads-linux-x64 | | Windows | mcp-gads-windows-x64.exe |

macOS / Linux:

curl -Lo mcp-gads https://github.com/pijusz/mcp-gads/releases/latest/download/mcp-gads-darwin-arm64
chmod +x mcp-gads
sudo mv mcp-gads /usr/local/bin/
claude mcp add google-ads --scope user --transport stdio \
  -e GOOGLE_ADS_DEVELOPER_TOKEN=your-token \
  -e GOOGLE_ADS_CREDENTIALS_PATH=/path/to/credentials.json \
  -- /usr/local/bin/mcp-gads

Windows (PowerShell):

Invoke-WebRequest -Uri "https://github.com/pijusz/mcp-gads/releases/latest/download/mcp-gads-windows-x64.exe" -OutFile "$env:LOCALAPPDATA\mcp-gads.exe"
claude mcp add google-ads --scope user --transport stdio -e GOOGLE_ADS_DEVELOPER_TOKEN=your-token -e GOOGLE_ADS_CREDENTIALS_PATH=C:\path\to\credentials.json -- "%LOCALAPPDATA%\mcp-gads.exe"

Claude Desktop

Add to your claude_desktop_config.json:

Using npx (auto-updates)
{
  "mcpServers": {
    "google-ads": {
      "command": "npx",
      "args": ["-y", "mcp-gads@latest"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-token",
        "GOOGLE_ADS_CREDENTIALS_PATH": "/path/to/credentials.json"
      }
    }
  }
}
Using binary (macOS / Linux)
{
  "mcpServers": {
    "google-ads": {
      "command": "/usr/local/bin/mcp-gads",
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-token",
        "GOOGLE_ADS_CREDENTIALS_PATH": "/path/to/credentials.json"
      }
    }
  }
}
Using binary (Windows)
{
  "mcpServers": {
    "google-ads": {
      "command": "C:\\Users\\YOU\\AppData\\Local\\mcp-gads.exe",
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-token",
        "GOOGLE_ADS_CREDENTIALS_PATH": "C:\\path\\to\\credentials.json"
      }
    }
  }
}

Tools (28)

Account Management

| Tool | Description | |------|-------------| | list_accounts | List all accessible Google Ads accounts | | get_account_currency | Get the currency code for an account | | get_account_hierarchy | Get MCC account tree (manager -> client) |

Queries

| Tool | Description | |------|-------------| | execute_gaql_query | Run any GAQL query (table output) | | run_gaql | Run GAQL with format options (table/json/csv) | | get_gaql_help | GAQL reference guide with syntax, resources, and examples | | list_resources | List valid GAQL FROM clause resources |

Campaigns

| Tool | Description | |------|-------------| | get_campaign_performance | Campaign metrics (impressions, clicks, cost, conversions) | | get_budget_utilization | Budget amounts vs actual spend |

Ads

| Tool | Description | |------|-------------| | get_ad_performance | Ad-level performance metrics | | get_ad_creatives | RSA headlines, descriptions, final URLs |

Assets

| Tool | Description | |------|-------------| | get_image_assets | List image assets with URLs and dimensions | | download_image_asset | Download a specific image asset to disk | | get_asset_usage | Find where assets are used (campaigns, ad groups) | | analyze_image_assets | Image asset performance with metrics |

Keywords

| Tool | Description | |------|-------------| | generate_keyword_ideas | Keyword Planner suggestions from seed keywords | | get_keyword_volumes | Historical search volume for specific keywords | | get_quality_scores | Quality scores with component breakdown | | get_search_terms | Actual search queries triggering your ads |

Geographic & Device

| Tool | Description | |------|-------------| | get_geographic_performance | Performance by location | | get_device_performance | Performance by device type |

Insights

| Tool | Description | |------|-------------| | get_recommendations | Google's AI optimization suggestions | | get_change_history | Recent account changes |

Write Tools (disabled by default)

Enable with GOOGLE_ADS_ENABLE_MUTATIONS=true:

| Tool | Description | |------|-------------| | update_campaign_status | Pause/enable a campaign | | update_ad_group_status | Pause/enable an ad group | | update_ad_status | Pause/enable an ad | | update_campaign_budget | Change daily budget amount | | add_negative_keywords | Add negative keywords to a campaign |

Configuration

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | GOOGLE_ADS_DEVELOPER_TOKEN | Yes | — | API developer token | | GOOGLE_ADS_CREDENTIALS_PATH | Yes | — | Path to OAuth client JSON | | GOOGLE_ADS_AUTH_TYPE | No | oauth | oauth or service_account | | GOOGLE_ADS_CUSTOMER_ID | No | — | Default customer ID (skips passing it per tool) | | GOOGLE_ADS_LOGIN_CUSTOMER_ID | No | — | MCC manager account ID | | GOOGLE_ADS_IMPERSONATION_EMAIL | No | — | Service account impersonation email | | GOOGLE_ADS_ENABLE_MUTATIONS | No | false | Enable write tools | | GOOGLE_ADS_API_VERSION | No | v23 | Google Ads API version |

Updates

Using npx @latest (recommended): You always get the latest version — no manual updates needed.

Using a binary: The server checks for new releases on startup and logs to stderr if outdated:

[mcp-gads] v0.2.0 available (current: v0.1.0). Download: https://github.com/pijusz/mcp-gads/releases/latest

Check your installed version:

mcp-gads --version

To update, download the new binary and replace the old one.

Development

Requires Bun.

git clone https://github.com/pijusz/mcp-gads.git
cd mcp-gads
bun install
bun test           # tests
bun run build      # standalone binary
bun run inspect    # MCP Inspector
bun run check      # biome format + lint

License

MIT

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-mcp-gads

Cursor configuration (mcp.json)

{ "mcpServers": { "pijusz-mcp-gads": { "command": "npx", "args": [ "pijusz-mcp-gads" ] } } }