Google Ads MCP服务器

Google Ads MCP服务器是一个通过自然语言查询和管理Google Ads数据的服务,支持广告系列、关键词、资产等维度的性能分析,适用于与Claude、Cursor等MCP客户端集成进行广告运营与优化。

  • by pijusz
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 pijusz/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. Requires Node 22+ when running via npx.

If your environment blocks npm registry access at runtime, install once and run the published binary name directly:

npm i -g mcp-gads@latest
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 \
  -- mcp-gads
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"

ChatGPT Codex

Codex uses TOML, not JSON. Install once, then add to ~/.codex/config.toml:

npm i -g mcp-gads
[mcp_servers.gads]
command = "mcp-gads"

[mcp_servers.gads.env]
GOOGLE_ADS_DEVELOPER_TOKEN = "your-token"
GOOGLE_ADS_CREDENTIALS_PATH = "/absolute/path/to/credentials.json"

Three gotchas that cause silent failures on Codex:

  • Don't use npx -y without raising the timeout. Codex's default startup_timeout_sec is 10s, which is too short for npx's first-run download. A global install (above) or the prebuilt binary sidesteps this entirely. If you must use npx, add startup_timeout_sec = 30.
  • Env vars must go under [mcp_servers.gads.env]. Codex does not inherit the parent shell environment into stdio servers — exporting vars in your shell won't reach the server.
  • Use absolute paths for GOOGLE_ADS_CREDENTIALS_PATH. Codex spawns the server with its own cwd, so relative paths silently miss.

On Windows some Codex versions use startup_timeout_ms = 20000 instead of _sec.

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 (39)

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
get_paid_organic_search_terms Paid vs organic clicks per query (needs Search Console link)
get_search_term_insights Search demand categories — the only view into Performance Max & Demand Gen queries

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

Extended Reporting

Tool Description
get_ad_group_performance Ad group metrics with optional campaign filter
get_conversion_actions Conversion actions with settings and performance
get_account_summary Quick dashboard: totals + top 5 campaigns
get_impression_share Competitive position: impression share and lost IS
get_ad_schedule_performance Performance by hour or day of week
get_audience_performance Demographics: age range and gender breakdowns
get_landing_page_performance Landing page URLs with metrics
get_placement_performance Display/PMax placement details
get_asset_group_performance PMax asset group metrics and ad strength
get_video_performance YouTube/video view rates and quartile completion
get_labels Labels and their campaign/ad group assignments

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_ENV_FILE No .env Path to .env file (loaded if present, never overrides existing env)
GOOGLE_ADS_API_VERSION No v26 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