原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Google Ads MCP

作者:davidmosiah版本 0.1.3i★ –i在你的电脑上运行
注册名称io.github.davidmosiah/google-ads-mcp

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 营销与社交媒体
  • 你需要填写:GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_SECRET

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_LOGIN_CUSTOMER_ID, GOOGLE_ADS_REDIRECT_URI, GOOGLE_ADS_TOKEN_PATH, GOOGLE_ADS_PRIVACY_MODE, GOOGLE_ADS_ALLOW_MUTATIONS, GOOGLE_ADS_CACHE, GOOGLE_ADS_CACHE_PATH, GOOGLE_ADS_CACHE_TTL_SECONDS, GOOGLE_ADS_NO_RETRY

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "google-ads": {
      "command": "npx",
      "args": [
        "-y",
        "google-ads-mcp-unofficial"
      ],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
        "GOOGLE_ADS_CLIENT_ID": "your-value",
        "GOOGLE_ADS_CLIENT_SECRET": "your-value",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-value",
        "GOOGLE_ADS_REDIRECT_URI": "your-value",
        "GOOGLE_ADS_TOKEN_PATH": "your-value",
        "GOOGLE_ADS_PRIVACY_MODE": "your-value",
        "GOOGLE_ADS_ALLOW_MUTATIONS": "your-value",
        "GOOGLE_ADS_CACHE": "your-value",
        "GOOGLE_ADS_CACHE_PATH": "your-value",
        "GOOGLE_ADS_CACHE_TTL_SECONDS": "your-value",
        "GOOGLE_ADS_NO_RETRY": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add google-ads --env GOOGLE_ADS_DEVELOPER_TOKEN=your-value --env GOOGLE_ADS_CLIENT_ID=your-value --env GOOGLE_ADS_CLIENT_SECRET=your-value --env GOOGLE_ADS_LOGIN_CUSTOMER_ID=your-value --env GOOGLE_ADS_REDIRECT_URI=your-value --env GOOGLE_ADS_TOKEN_PATH=your-value --env GOOGLE_ADS_PRIVACY_MODE=your-value --env GOOGLE_ADS_ALLOW_MUTATIONS=your-value --env GOOGLE_ADS_CACHE=your-value --env GOOGLE_ADS_CACHE_PATH=your-value --env GOOGLE_ADS_CACHE_TTL_SECONDS=your-value --env GOOGLE_ADS_NO_RETRY=your-value -- npx -y google-ads-mcp-unofficial

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "google-ads": {
      "command": "npx",
      "args": [
        "-y",
        "google-ads-mcp-unofficial"
      ],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
        "GOOGLE_ADS_CLIENT_ID": "your-value",
        "GOOGLE_ADS_CLIENT_SECRET": "your-value",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-value",
        "GOOGLE_ADS_REDIRECT_URI": "your-value",
        "GOOGLE_ADS_TOKEN_PATH": "your-value",
        "GOOGLE_ADS_PRIVACY_MODE": "your-value",
        "GOOGLE_ADS_ALLOW_MUTATIONS": "your-value",
        "GOOGLE_ADS_CACHE": "your-value",
        "GOOGLE_ADS_CACHE_PATH": "your-value",
        "GOOGLE_ADS_CACHE_TTL_SECONDS": "your-value",
        "GOOGLE_ADS_NO_RETRY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "google-ads": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "google-ads-mcp-unofficial"
      ],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
        "GOOGLE_ADS_CLIENT_ID": "your-value",
        "GOOGLE_ADS_CLIENT_SECRET": "your-value",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your-value",
        "GOOGLE_ADS_REDIRECT_URI": "your-value",
        "GOOGLE_ADS_TOKEN_PATH": "your-value",
        "GOOGLE_ADS_PRIVACY_MODE": "your-value",
        "GOOGLE_ADS_ALLOW_MUTATIONS": "your-value",
        "GOOGLE_ADS_CACHE": "your-value",
        "GOOGLE_ADS_CACHE_PATH": "your-value",
        "GOOGLE_ADS_CACHE_TTL_SECONDS": "your-value",
        "GOOGLE_ADS_NO_RETRY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • GOOGLE_ADS_DEVELOPER_TOKEN 机密 env
    Google Ads API developer token from your Google Ads Manager account. Required.
  • GOOGLE_ADS_CLIENT_ID env
    Google OAuth2 client ID. Required.
  • GOOGLE_ADS_CLIENT_SECRET 机密 env
    Google OAuth2 client secret. Prefer storing in ~/.google-ads-mcp/config.json via setup.
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID env
    Manager (MCC) customer ID used as login-customer-id header, no dashes (e.g., 1234567890). Optional but required for multi-account access.
  • GOOGLE_ADS_REDIRECT_URI env
    OAuth redirect URI. Defaults to http://127.0.0.1:3000/callback.
  • GOOGLE_ADS_TOKEN_PATH env
    Optional local path for OAuth tokens. Defaults to ~/.google-ads-mcp/tokens.json (0600).
  • GOOGLE_ADS_PRIVACY_MODE env
    Optional payload mode: summary, structured, or raw. Defaults to structured. raw returns full Google Ads API payloads.
  • GOOGLE_ADS_ALLOW_MUTATIONS env
    Set to true to enable write tools (pause/resume keywords/campaigns, set bids, set budgets). Default false (read-only). Agents changing real ad spend is high-stakes; review every change.
  • GOOGLE_ADS_CACHE env
    Optional SQLite cache toggle. Set to true or sqlite to enable.
  • GOOGLE_ADS_CACHE_PATH env
    Optional local SQLite cache path. Defaults to ~/.google-ads-mcp/cache.sqlite.
  • GOOGLE_ADS_CACHE_TTL_SECONDS env
    Optional cache TTL in seconds. Defaults to 60. Set to 0 to keep entries indefinitely (entries are still overwritten on each hit).
  • GOOGLE_ADS_NO_RETRY env
    Set to true to disable the HTTP retry middleware. Default false.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 davidmosiah 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“营销与社交媒体”中的其他服务器比较i

  • 星标数多于此分类中其他 3579 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 3579 个服务器的 15% 更新
  • 基础检查结果等于或优于此分类中其他 3579 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Google Ads MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_SECRET

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.3)于4个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

MCP YouTube Transcript

作者:jkawamoto

An MCP server retrieving transcripts of YouTube videos

在你的电脑上运行★ 495MIT11天前更新
安装

Google Analytics MCP

作者:surendranb

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

在你的电脑上运行★ 244MIT10天前更新
安装

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

在云端运行★ 137MIT11天前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

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 GOOGLE_ADS_ALLOW_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: GOOGLE_ADS_MCP_HOST, GOOGLE_ADS_MCP_PORT, GOOGLE_ADS_MCP_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.

CategoryCountExamples
Meta / diagnostic5google_ads_connection_status, google_ads_capabilities, google_ads_agent_manifest, google_ads_data_inventory, google_ads_privacy_audit
Shared Delx profile3google_ads_profile_get, google_ads_profile_update, google_ads_onboarding
Auth3google_ads_get_auth_url, google_ads_exchange_code, google_ads_revoke_access
Reads (always safe)8google_ads_list_accounts, google_ads_list_campaigns, google_ads_get_campaign, google_ads_list_ad_groups, google_ads_list_keywords, google_ads_get_account_performance, google_ads_get_campaign_performance, google_ads_get_keyword_performance
Workflow2google_ads_daily_report, google_ads_find_waste
Mutations (gated)6google_ads_pause_keyword, google_ads_resume_keyword, google_ads_set_keyword_bid_micros, google_ads_set_campaign_budget_micros, google_ads_pause_campaign, google_ads_resume_campaign

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 login_customer_id (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 claude_desktop_config.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:

  1. Google Ads Developer Token — from your MCC (Manager) account at https://ads.google.com/aw/apicenter. New tokens start in "Test account access" mode and need approval for production traffic.
  2. Google OAuth 2.0 Client — a "Desktop" or "Web" client created in Google Cloud Console. The single OAuth scope used is https://www.googleapis.com/auth/adwords.

⚠️ Refresh token gotcha: Google only returns a refresh_token on first consent or after you revoke the prior grant at https://myaccount.google.com/permissions. Our auth flow uses prompt=consent to maximize the chance Google returns one — but if your code-exchange response is missing refresh_token, the tool will tell you to revoke and retry.

VariablePurposeStored whereSecret?
GOOGLE_ADS_DEVELOPER_TOKENApproved developer token~/.google-ads-mcp/config.json or envyes
GOOGLE_ADS_CLIENT_IDOAuth client idlocal or envno
GOOGLE_ADS_CLIENT_SECRETOAuth client secretlocal or envyes
GOOGLE_ADS_LOGIN_CUSTOMER_IDMCC id (no dashes)local or envno
GOOGLE_ADS_REDIRECT_URIOAuth callbacklocal or env (default http://127.0.0.1:3000/callback)no
GOOGLE_ADS_PRIVACY_MODEsummary \structured \rawlocal or env (default structured)no
GOOGLE_ADS_ALLOW_MUTATIONSEnable write toolslocal or env (default false)no
GOOGLE_ADS_TOKEN_PATHOverride token storagelocal or env (default ~/.google-ads-mcp/tokens.json)no
GOOGLE_ADS_CACHEEnable SQLite cachelocal or env (default off)no
GOOGLE_ADS_CACHE_PATHOverride cache pathlocal or envno
GOOGLE_ADS_NO_RETRYDisable retry middlewareenv (default off)no

Privacy modes

ModeWhat you getCustomer id
summaryid + name + status fields onlypartial-redacted (123-***-7890)
structured (default)flat normalized rows with metricspartial-redacted
rawfull upstream Google Ads REST payloadfull

Pass privacy_mode per call to override the default per response.

Redaction matrix:

Fieldsummarystructuredraw
developer_tokenn/an/an/a (never returned)
access_token, refresh_token, client_secret[REDACTED] in all errors[REDACTED][REDACTED]
email addresses in error messages[REDACTED][REDACTED][REDACTED]
customer_id123-***-7890123-***-7890full
metrics (clicks, cost, etc.)droppedincludedincluded

⚠️ Mutation gating — read this

Default: mutations are DISABLED. Six tools are gated:

  • google_ads_pause_keyword / google_ads_resume_keyword
  • google_ads_set_keyword_bid_micros
  • google_ads_set_campaign_budget_micros
  • google_ads_pause_campaign / google_ads_resume_campaign

If an agent calls any of them without GOOGLE_ADS_ALLOW_MUTATIONS enabled, it gets:

Error: Write tools are disabled. To enable: re-run `google-ads-mcp-server setup --allow-mutations`

or enable GOOGLE_ADS_ALLOW_MUTATIONS. ASK THE USER BEFORE TURNING THIS ON — it lets agents change campaigns, bids, budgets, and pause/resume keywords.

Even with the env enabled, every mutation requires `explicit_user_intent: true` in the per-call arguments. And every mutation is logged to stderr with the resource name:

[google-ads-mcp] MUTATION pause_keyword {"resource_name":"customers/1234567890/adGroupCriteria/999~111222333"}

Read SECURITY.md for the threat model.


Agent client examples

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{

"mcpServers": { "google-ads": { "command": "npx", "args": ["-y", "google-ads-mcp-unofficial"] } } }

Then restart Claude Desktop.

Cursor / Windsurf

~/.cursor/mcp.json (or your IDE equivalent):

{

"mcpServers": { "google-ads": { "command": "npx", "args": ["-y", "google-ads-mcp-unofficial@0.1.0"] } } }

Hermes
# ~/.hermes/config.yaml

mcp_servers: google-ads: command: npx args:

  • -y
  • google-ads-mcp-unofficial@0.1.0 timeout: 120 connect_timeout: 60 sampling: enabled: false

Then /reload-mcp (do NOT restart the gateway for normal data access).

OpenClaw

~/.openclaw/mcp.servers.json:

{

"google-ads": { "command": "npx", "args": ["-y", "google-ads-mcp-unofficial@0.1.0"] } }

Codex / TOML clients

See examples/codex.toml for the equivalent TOML block.


Workflow examples

1. Daily performance pulse
// Agent asks: "How did my Google Ads do yesterday?"

{ "name": "google_ads_daily_report", "arguments": { "customer_id": "1234567890", "cpc_alert_threshold": 0.15 } }

Returns markdown with yesterday + 7d + 30d aggregates. If yesterday's CPC exceeds 0.15, the output gets an ALERT banner.

2. Identify waste (read-only)
{

"name": "google_ads_find_waste", "arguments": { "customer_id": "1234567890", "date_range": "LAST_30_DAYS", "min_clicks": 5, "min_cost_micros": 200000, "zero_conversions_only": true } }

Returns a ranked list of keywords matching "spent ≥ $0.20 with ≥5 clicks and 0 conversions" — but never pauses them.

3. Pause a single keyword (mutation, gated)

After the user confirms:

{

"name": "google_ads_pause_keyword", "arguments": { "customer_id": "1234567890", "ad_group_id": "999", "criterion_id": "111222333", "explicit_user_intent": true } }


Troubleshooting

SymptomAction
Missing required Google Ads environment variablesRun setup or set the env vars listed in the error.
Google did not return a refresh_tokenRevoke at https://myaccount.google.com/permissions then re-run auth.
PERMISSION_DENIED on a readConfirm GOOGLE_ADS_LOGIN_CUSTOMER_ID matches the MCC that owns the target customer (no dashes).
Write tools are disabledExpected. Ask the user before enabling GOOGLE_ADS_ALLOW_MUTATIONS.
Hermes tools missing after config edit/reload-mcp or hermes mcp test google-ads. Do NOT restart the gateway.
Token file insecure perms warningchmod 600 ~/.google-ads-mcp/tokens.json

Support

  • GitHub Issues: https://github.com/davidmosiah/google-ads-mcp-unofficial/issues
  • Email: support@delx.ai
  • X: @delx369

Disclaimer

Unofficial integration. Not affiliated with Google. This MCP does not include automated financial-account changes beyond what the Google Ads REST API allows. Always review proposed changes before enabling GOOGLE_ADS_ALLOW_MUTATIONS. The author is not responsible for budget overruns, paused campaigns, or any other consequences of automated changes to your Google Ads account.

MIT-licensed.

Skill or MCP

Same package, two doors. MCP registers tools on stdio/HTTP. The skill can drive the same tools through the CLI when the client has no MCP:

npx -y google-ads-mcp-unofficial call google_ads_connection_status --json '{}'

Copy skill/SKILL.md into your agent skills dir.

问 PopNx