Gads MCP server
Google Ads MCP server — query campaigns, keywords, assets & more via natural language
1 stars
Reviews
Write oneNobody 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 postsRead 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_assetsAnalyze image asset performance with metrics like impressions, clicks, conversions, and CTR across campaigns.
download_image_assetDownload a specific image asset by ID to a local directory.
execute_gaql_querywrite actionExecute a custom GAQL query and return results as a table. Use this for any ad-hoc Google Ads Query Language query.
generate_keyword_ideasGenerate keyword ideas using Google Ads Keyword Planner. Returns search volume estimates and keyword suggestions based on seed keywords.
get_account_currencyGet the currency code for a Google Ads account. Run this before analyzing cost data.
get_account_hierarchyGet the MCC account tree showing manager-client relationships via customer_client resource.
get_account_summaryQuick account dashboard: total metrics + top 5 campaigns by spend.
get_ad_creativesGet ad creative details including RSA headlines, descriptions, and final URLs. Great for creative audits.
get_ad_group_performanceGet ad group performance metrics. Optionally filter by campaign ID.
get_ad_performanceGet 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_performancePerformance breakdown by hour of day or day of week.
get_asset_group_performancePerformance Max asset group metrics including ad strength and status.
get_asset_usageFind where specific assets are being used in campaigns and ad groups.
get_audience_performancePerformance breakdown by age range and gender demographics.
get_budget_utilizationGet campaign budget amounts vs actual spend to see budget utilization. Shows whether campaigns are limited by budget.
get_campaign_performanceGet 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_historyGet recent account changes (campaign updates, bid changes, ad modifications, etc.) from the change_event resource.
get_conversion_actionsList conversion actions with their settings and recent performance metrics.
get_device_performanceGet campaign performance broken down by device type (desktop, mobile, tablet).
get_gaql_helpGet 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_performanceGet campaign performance broken down by geographic location (country, region, city).
get_image_assetsRetrieve all image assets in the account including their full-size URLs, dimensions, and file sizes.
get_impression_shareGet competitive position metrics: impression share, top/absolute top IS, and lost IS (budget & rank).
get_keyword_volumesGet historical search volume metrics for specific keywords. Returns exact volume data (unlike generate_keyword_ideas which suggests related keywords).
get_labelsList labels and their assignments to campaigns or ad groups.
get_landing_page_performanceLanding page URLs with performance metrics.
get_placement_performanceWhere Display and Performance Max ads appeared (websites, apps, YouTube channels).
get_quality_scoresGet keyword quality scores with component breakdown (expected CTR, ad relevance, landing page experience).
get_recommendationsGet Google's AI-powered optimization recommendations for the account (bid adjustments, keyword suggestions, budget changes, etc.).
get_search_termsGet actual search queries that triggered your ads (search term report). Shows what users are really searching for.
get_video_performanceYouTube and video ad performance metrics including view rates and quartile completion.
list_accountsLists all accessible Google Ads accounts. Run this first to discover account IDs.
list_resourcesList valid Google Ads API resources that can be used in GAQL FROM clauses.
run_gaqlwrite actionExecute 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
- 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 used
exec.evaldist/index.js: …eCode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…
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
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.
- Download your OAuth client JSON from Google Cloud Console
- Set environment variables:
export GOOGLE_ADS_DEVELOPER_TOKEN=your-token
export GOOGLE_ADS_CREDENTIALS_PATH=./credentials.json- Run the setup helper to authorize:
npx mcp-gads setupThis 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@latestThat'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-gadsAlternative: 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-gadsWindows (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.
- AdLoopGoogle Ads, Reddit Ads, GA4 and Tag Manager in your AI client, with a preview before every change.not reviewedEstablishedA