Skip to main content

mcp-google-ads

Multi-account Google Ads MCP server. Connect any number of Google Ads accounts to Claude, Cursor, Codex, or any MCP-compatible AI assistant — query campaign performance, keywords, search terms, and account analytics by name in the same session.

# Install:  uvx mcp-google-ads-multi

# Ask your AI:
"Show me campaign performance for account my-client last month"
"What search terms drove conversions for client-acme in Q2?"
"Compare my-account's spend between January and February"
"Which keywords have quality scores below 5 for campaign 123?"

Why this one?

Most Google Ads MCP servers support one account per server process. This one lets you configure multiple accounts and switch between them per tool call — no restart needed.

Feature This server Others
Multiple accounts Yes — named, switchable No — one per process
OAuth + service account Both, mixed per account Usually one type
Quality score data Yes Rarely
Search terms report Yes Sometimes
Rate limit retry Yes — exponential backoff No
SSE transport (remote) Yes Varies

Quickstart

1. Get a developer token — apply at Google Ads API Center (free, ~3 business days)

2. Create OAuth credentials — Google Cloud Console → Enable Google Ads API → Credentials → OAuth client ID → Desktop app

3. Create your accounts config:

mkdir -p ~/.config/mcp-google-ads
cp accounts.example.json ~/.config/mcp-google-ads/accounts.json
# Edit it — add your accounts

4. Add to your MCP client config:

{
  "mcpServers": {
    "google-ads": {
      "command": "uvx",
      "args": ["mcp-google-ads-multi"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-developer-token",
        "GOOGLE_ADS_ACCOUNTS_CONFIG": "/Users/you/.config/mcp-google-ads/accounts.json"
      }
    }
  }
}

5. Restart your AI client. Done.


Accounts config

{
  "default": "my-account",
  "accounts": {
    "my-account": {
      "type": "oauth",
      "client_id": "YOUR_CLIENT_ID.apps.googleusercontent.com",
      "client_secret": "YOUR_CLIENT_SECRET",
      "token_file": "~/.config/mcp-google-ads/my-account.token"
    },
    "client-acme": {
      "type": "oauth",
      "client_id": "YOUR_CLIENT_ID.apps.googleusercontent.com",
      "client_secret": "YOUR_CLIENT_SECRET",
      "token_file": "~/.config/mcp-google-ads/client-acme.token"
    }
  }
}

Set GOOGLE_ADS_DEVELOPER_TOKEN in your environment. All other credentials stay local.


Available tools

Tool What it does
list_accounts Show all configured accounts
set_default_account Change the default account
list_customers List all accessible Google Ads accounts under your login
get_account_summary Total clicks, cost, conversions for a period
list_campaigns All campaigns with status, budget, 30-day metrics
get_campaign_performance Campaign metrics for any date range
compare_periods Two date ranges side-by-side with deltas
get_keyword_performance Keyword metrics + quality scores
search_terms_report Actual search queries that triggered your ads
get_ad_performance Ad-level CTR and conversions

Environment variables

Variable Default Description
GOOGLE_ADS_DEVELOPER_TOKEN required Your Google Ads API developer token
GOOGLE_ADS_ACCOUNTS_CONFIG ~/.config/mcp-google-ads/accounts.json Path to accounts config
MCP_TRANSPORT stdio Set to sse for remote deployment
MCP_HOST 127.0.0.1 SSE bind host
MCP_PORT 3001 SSE bind port

License

MIT

Release files for mcp-google-ads-multi 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-google-ads-multi 0.1.0
File Size Uploaded
mcp_google_ads_multi-0.1.0.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-google-ads-multi 0.1.0
File Interpreter ABI Platform
mcp_google_ads_multi-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.3 kB

Release files / mcp_google_ads_multi-0.1.0.tar.gz

Download URL mcp_google_ads_multi-0.1.0.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4e8069d0610e0129f6878ef265ac746c8abd197b0bd94bc668f8a07faaefc827
BLAKE2b-256 checksum
How to use checksums
c70bd2d228ceb54273ba00cd4e5447f406ed4f9ad7f52f4763c1c7aef7040f4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mcp_google_ads_multi-0.1.0-py3-none-any.whl

Download URL mcp_google_ads_multi-0.1.0-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d15de5841ac91f394acdfca74b61b750748c866d9fe86c359f90007659062b60
BLAKE2b-256 checksum
How to use checksums
355cee1db4968403ef9c79bb414bea7bc6555088fc24f7e92e322fa631c39501
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page