Mmcp.market

Google Ads MCP server

by davidmosiah·io.github.davidmosiah/google-ads-mcp·v0.1.3

Unofficial Google Ads MCP for campaigns, keywords, budgets, and gated mutations.

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

full report

Adoption
Growing

4 stars

Reviews

Write one

Nobody has reviewed Google Ads yet.

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

Google Ads tools (30, 4 write)

write = sends, deletes, buys or posts

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

  • google_ads_agent_manifest

    Machine-readable install, runtime, and client guidance for AI agents operating the Google Ads MCP. Does not read Google Ads or expose secrets.

  • google_ads_cache_status

    Return the SQLite GAQL-response cache status: enabled flag, on-disk path, entry count, oldest entry age, and default TTL. Read-only — never calls Google Ads and does not require credentials.

  • google_ads_capabilities

    Explain supported Google Ads data, mutation gating, privacy modes, and recommended agent workflow. Does not read Google Ads or expose secrets.

  • google_ads_clear_cachewrite action

    Delete all entries from the local SQLite GAQL-response cache. Does NOT touch Google Ads — only affects local memoization. Not gated by GOOGLE_ADS_ALLOW_MUTATIONS because nothing in your ad account changes. Does not require credentials.

  • google_ads_connection_status

    Check whether local Google Ads env vars, token file, Node version, privacy mode, mutation gate, and retry settings are ready. Does not call Google Ads or expose secrets.

  • google_ads_daily_report

    Synthetic daily performance snapshot. Pulls YESTERDAY + LAST_7_DAYS + LAST_30_DAYS aggregates for a customer, optionally alerts when CPC exceeds cpc_alert_threshold. Pure-read workflow tool — never mutates.

  • google_ads_data_inventory

    List supported Google Ads data domains, scopes, privacy boundary, and recommended first calls. Does not call Google Ads APIs or expose user data.

  • google_ads_exchange_code

    Exchange a Google OAuth authorization code for local tokens. Tokens stored at ~/.google-ads-mcp/tokens.json with 0600 perms; never returned in the response.

  • google_ads_find_waste

    Identify keywords matching the 'high cost + zero conversions' waste pattern (inspiration from script #1). Returns a ranked list of candidates — NEVER pauses anything. Pair with google_ads_pause_keyword (gated) after user confirmation.

  • google_ads_get_account_performance

    Aggregate performance metrics (impressions, clicks, cost_micros, ctr, average_cpc, conversions) for the customer over a date range.

  • google_ads_get_auth_url

    Generate a Google OAuth authorization URL for the Google Ads API. Does not read or modify Google Ads data. Use this first when no local token exists.

  • google_ads_get_campaign

    Get a single campaign with budget, bidding strategy, and status. Returns the linked campaign_budget id (use it with google_ads_set_campaign_budget_micros).

  • google_ads_get_campaign_performance

    Per-campaign performance metrics over a date range. Filter to a single campaign with campaign_id.

  • google_ads_get_keyword_performance

    Per-keyword performance metrics over a date range. Returns clicks, cost_micros, ctr, average_cpc, conversions, conversion_rate. Filter with campaign_id, ad_group_id, or min_clicks.

  • google_ads_list_accounts

    List all customer accounts the authenticated user can access. For a manager (MCC) account, this includes every child customer.

  • google_ads_list_ad_groups

    List ad groups under a campaign (or all campaigns) in a customer.

  • google_ads_list_campaigns

    List campaigns under a Google Ads customer. Returns id, name, status, advertising_channel_type, bidding_strategy_type, and campaign_budget linkage.

  • google_ads_list_keywords

    List keyword criteria under a campaign or ad group. Returns criterion_id, keyword text, match type, status, and cpc_bid_micros.

  • google_ads_onboarding

    Return the 11-question Delx onboarding flow plus the current profile state and missing critical fields. Same profile reused across all Delx MCPs.

  • google_ads_pause_campaign

    Pause an entire campaign by id. GATED.

  • google_ads_pause_keyword

    Pause a single keyword by criterion_id. GATED: requires GOOGLE_ADS_ALLOW_MUTATIONS=true AND explicit_user_intent=true. Ask the user first.

  • google_ads_privacy_audit

    Return the local privacy, mutation-gate, cache, token-path, env-presence and redaction posture without revealing secret values.

  • google_ads_profile_get

    Read the shared Delx profile (~/.delx-wellness/profile.json). Returns the user's preferred name, language, timezone, etc. Cross-tool — same profile is shared with other Delx MCPs. Read-only.

  • google_ads_profile_updatewrite action

    Persist a partial patch to the shared Delx profile (~/.delx-wellness/profile.json). REQUIRES explicit_user_intent=true. NEVER stores secrets — writes will be rejected at validation time.

  • google_ads_quick_wins

    Identify keywords with LOW CPC + HIGH CTR + at-least-some conversions — candidates to RAISE the bid on. Inverse of google_ads_find_waste. Returns a ranked list with a recommended_bid_micros (current + 25%, capped at 2x). NEVER changes bids; pair with google_ads_set_keyword_bid_micros (gated) after user confirmation.

  • google_ads_resume_campaign

    Resume (enable) a paused campaign by id. GATED.

  • google_ads_resume_keyword

    Resume (enable) a single paused keyword by criterion_id. GATED.

  • google_ads_revoke_access

    Revoke the current Google OAuth grant and delete local tokens. Use only when the user explicitly wants to disconnect Google Ads.

  • google_ads_set_campaign_budget_microswrite action

    Update a campaign budget's amount_micros. GATED. campaign_budget_id is NOT the campaign id — discover it via google_ads_get_campaign (campaign_budget.id).

  • google_ads_set_keyword_bid_microswrite action

    Update the cpc_bid_micros for a keyword criterion. GATED. Bid must be in micros (10_000 = $0.01).

Public scan report

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

no findings
  • Code scan48 source files scanned25/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 qualitystatic API keys via environment variables6/15
  • Maintenancelast push 19 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

What the publisher says

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

google-ads-mcp-unofficial

Unofficial Model Context Protocol server that lets AI agents read, analyze, and (gated) act on a Google Ads account — pause keywords, set bids, adjust budgets — without leaving your stack.

Unofficial. Not affiliated with Google. This is a local-first MCP server that speaks the Google Ads REST API directly. It does NOT include automated financial-account changes beyond what the Google Ads API allows. Always review proposed changes before enabling GOOGLEADSALLOW_MUTATIONS.

HTTP (v2 stateless)

Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:

npx -y google-ads-mcp-unofficial --http
# GET  http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp   (sessionless)

Env: GOOGLEADSMCPHOST, GOOGLEADSMCPPORT, GOOGLEADSMCP_TRANSPORT=http.

Quick start (30 seconds)

npx -y google-ads-mcp-unofficial setup

The setup wizard collects your developer token + OAuth client, writes ~/.google-ads-mcp/config.json (chmod 600), then walks you through the OAuth dance via a local callback at http://127.0.0.1:3000/callback.

Verify:

npx -y google-ads-mcp-unofficial doctor

Then add it to your agent (Claude Desktop, Cursor, Hermes, OpenClaw, Codex — see examples below).

What it does

22 tools across 6 categories.

Full tool reference: see AGENTS.md.

Setup wizard

npx -y google-ads-mcp-unofficial setup [--allow-mutations] [--client hermes|claude|cursor|...]

What it does:

  1. Prompts for: developer token, OAuth client id/secret, optional logincustomerid (MCC), redirect URI, privacy mode.
  2. Writes ~/.google-ads-mcp/config.json with chmod 600.
  3. Writes an MCP client config (e.g. merges into claudedesktopconfig.json on macOS; writes a Hermes block and skill file for --client hermes).
  4. Runs the OAuth dance (unless --no-auth) by opening Google's consent screen and listening on 127.0.0.1:3000.

Mutations are off by default. --allow-mutations enables write tools. ASK THE USER before turning this on — it lets agents change campaigns, bids, budgets, and pause/resume keywords.

Auth model

This MCP requires two credentials:

Shortened. The full README is on GitHub.

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

Install directly

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

claude mcp add google-ads-mcp -- npx -y google-ads-mcp-unofficial
Add to Cursor

Google Ads: common questions

Is Google Ads MCP server safe?
Mostly: it is graded B (83/100). Read the Google Ads safety report
How do I install Google Ads?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Google Ads need an API key?
Yes. The registry entry asks for GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_SECRET.
Is Google Ads maintained?
The last commit was 19 days ago (2026-09-07). The latest release is v0.1.3.

More from davidmosiah →