MCP.Market

Gads MCP server

by pijusz·io.github.pijusz/mcp-gads·v0.5.4·1 stars

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

B80/100grade B
What users say
No reviews yet
Be the first
Safety scan
B80/100

full report

Adoption
New

1 stars

Reviews

Write one

Nobody has reviewed Gads yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Gads tools (39, 6 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_negative_keywords

    ⚠️ WRITE OPERATION: Add negative keywords to a campaign to prevent ads from showing for those search terms. This modifies your Google Ads account.

  • analyze_image_assets

    Analyze image asset performance with metrics like impressions, clicks, conversions, and CTR across campaigns.

  • download_image_asset

    Download a specific image asset by ID to a local directory.

  • execute_gaql_querywrite action

    Execute a custom GAQL query and return results as a table. Use this for any ad-hoc Google Ads Query Language query.

  • generate_keyword_ideas

    Generate keyword ideas using Google Ads Keyword Planner. Returns search volume estimates and keyword suggestions based on seed keywords.

  • get_account_currency

    Get the currency code for a Google Ads account. Run this before analyzing cost data.

  • get_account_hierarchy

    Get the MCC account tree showing manager-client relationships via customer_client resource.

  • get_account_summary

    Quick account dashboard: total metrics + top 5 campaigns by spend.

  • get_ad_creatives

    Get ad creative details including RSA headlines, descriptions, and final URLs. Great for creative audits.

  • get_ad_group_performance

    Get ad group performance metrics. Optionally filter by campaign ID.

  • get_ad_performance

    Get ad-level performance metrics for the specified time period. RECOMMENDED WORKFLOW: 1. First run list_accounts() to get available account IDs 2. Then run get_account_currency() to see what currency the account uses 3. Finally run this command to get ad performance Note: Cost values are in micros (1,000,000 = 1 unit of currency).

  • get_ad_schedule_performance

    Performance breakdown by hour of day or day of week.

  • get_asset_group_performance

    Performance Max asset group metrics including ad strength and status.

  • get_asset_usage

    Find where specific assets are being used in campaigns and ad groups.

  • get_audience_performance

    Performance breakdown by age range and gender demographics.

  • get_budget_utilization

    Get campaign budget amounts vs actual spend to see budget utilization. Shows whether campaigns are limited by budget.

  • get_campaign_performance

    Get campaign performance metrics for the specified time period. RECOMMENDED WORKFLOW: 1. First run list_accounts() to get available account IDs 2. Then run get_account_currency() to see what currency the account uses 3. Finally run this command to get campaign performance Note: Cost values are in micros (1,000,000 = 1 unit of currency).

  • get_change_history

    Get recent account changes (campaign updates, bid changes, ad modifications, etc.) from the change_event resource.

  • get_conversion_actions

    List conversion actions with their settings and recent performance metrics.

  • get_device_performance

    Get campaign performance broken down by device type (desktop, mobile, tablet).

  • get_gaql_help

    Get a GAQL (Google Ads Query Language) reference guide with syntax, common resources, date filters, and example queries. Call this before writing custom GAQL queries.

  • get_geographic_performance

    Get campaign performance broken down by geographic location (country, region, city).

  • get_image_assets

    Retrieve all image assets in the account including their full-size URLs, dimensions, and file sizes.

  • get_impression_share

    Get competitive position metrics: impression share, top/absolute top IS, and lost IS (budget & rank).

  • get_keyword_volumes

    Get historical search volume metrics for specific keywords. Returns exact volume data (unlike generate_keyword_ideas which suggests related keywords).

  • get_labels

    List labels and their assignments to campaigns or ad groups.

  • get_landing_page_performance

    Landing page URLs with performance metrics.

  • get_placement_performance

    Where Display and Performance Max ads appeared (websites, apps, YouTube channels).

  • get_quality_scores

    Get keyword quality scores with component breakdown (expected CTR, ad relevance, landing page experience).

  • get_recommendations

    Get Google's AI-powered optimization recommendations for the account (bid adjustments, keyword suggestions, budget changes, etc.).

  • get_search_terms

    Get actual search queries that triggered your ads (search term report). Shows what users are really searching for.

  • get_video_performance

    YouTube and video ad performance metrics including view rates and quartile completion.

  • list_accounts

    Lists all accessible Google Ads accounts. Run this first to discover account IDs.

  • list_resources

    List valid Google Ads API resources that can be used in GAQL FROM clauses.

  • run_gaqlwrite action

    Execute any GAQL query with output format options (table, json, csv). The most powerful tool for custom Google Ads data queries. EXAMPLE QUERIES: Campaign metrics: SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_7_DAYS Ad group perf: SELECT ad_group.name, metrics.conversions, metrics.cost_micros, campaign.name FROM ad_gro

  • update_ad_group_statuswrite action

    ⚠️ WRITE OPERATION: Pause or enable an ad group. This modifies your Google Ads account.

  • update_ad_statuswrite action

    ⚠️ WRITE OPERATION: Pause or enable an ad. This modifies your Google Ads account.

  • update_campaign_budgetwrite action

    ⚠️ WRITE OPERATION: Change the daily budget amount for a campaign. Amount is in micros (1,000,000 = 1 unit of currency). This modifies your Google Ads account.

  • update_campaign_statuswrite action

    ⚠️ WRITE OPERATION: Pause or enable a campaign. This modifies your Google Ads account.

Public scan report

scanner v0.1.10 · 2026-09-27 · same rubric, same numbers if you re-run it

1 medium
  • Code scan2 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 58 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • mediumeval / new Function usedexec.eval
    dist/index.js: …eCode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…
Overall 80/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Gads compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
80/100
higher than 60% of 48,255 servers
Tools
39
the typical server has 7
Tools that change things
15%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 65% of 28,688 servers

What its tools let an agent do: 31 read · 2 create · 4 change · 2 run or deploy

Install Gads in Claude Code, Cursor or VS Code

Runs npx -y mcp-gads on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add mcp-gads -- npx -y mcp-gads
Add to Cursor

What the publisher says

From the Gads repository's README, as published. We do not edit it. Read it on GitHub

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:

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 startuptimeoutsec 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 startuptimeoutsec = 30.
  • Env vars must go under [mcpservers.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 GOOGLEADSCREDENTIALS_PATH. Codex spawns the server with its own cwd, so relative paths silently miss.

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

Claude Desktop

Add to your claudedesktopconfig.json:

Using npx (auto-updates)

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Gads: common questions

Is Gads MCP server safe?
Mostly: it is graded B (80/100). Read the Gads safety report
How do I install Gads?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Gads need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Gads maintained?
The last commit was 96 days ago (2026-07-31). The latest release is v0.5.4.
What can I use instead of Gads?
Servers from other publishers that do the same job: AdLoop MCP server.
How does Gads compare with other MCP servers?
safety score 80/100 (higher than 60% of 48,255 servers); tools 39 (the typical server has 7); tools that change things 15% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Gads

Same job from other publishers: the closest match first, then the best rated.

  • AdLoop
    Google Ads, Reddit Ads, GA4 and Tag Manager in your AI client, with a preview before every change.
    A

More from pijusz →