Google Ads

io.github.ZLeventer由 GitHub 账号 ZLeventer 发布v1.0.1更新于 Oct 24, 2026

MCP server for Google Ads — 22 tools for spend diagnosis, impression share, and asset performance.

已验证STDIO仅桌面数据与分析商业与电商

概览

AI 生成的概览

一个本地 MCP 服务器,让助手读取 Google Ads 数据,用于花费诊断、曝光份额、竞价洞察和素材表现分析。

可以做什么
列出可访问的账户及账户详情、广告系列、广告组和预算,含预算节奏与使用率。查看关键词表现、搜索词和按广告系列或转化动作统计的转化。检查自适应搜索广告、广告强度和各素材的表现标签,以及账户与广告系列素材。查看受众和广告系列受众定位、地域与设备拆分、曝光份额及与竞争对手的竞价洞察。通过任意 GAQL 查询作为自定义报表的备用通道。
适用场景
适合付费搜索团队和代理商,以对话方式诊断浪费的花费、预算受限、表现不佳的广告素材或流失的曝光份额,而不必搭建仪表盘。当助手需要回答关于某个 Google Ads 账户的具体表现问题时最有用。
运行要求
通过 npx 或 Node.js 20 及以上版本在本地运行,也可用 Docker 容器。需要 Google Ads 开发者令牌、来自 Google Cloud Console 的 OAuth 2.0 客户端 ID 和密钥,以及具备 adwords 权限范围的刷新令牌,均以环境变量提供。必须提供默认客户 ID,可在单次调用中覆盖;仅访问 MCC 下的账户时才需要经理账户 ID。需要访问 Google Ads 的网络连接。
安装前请注意
需要长期有效的 Google Ads 凭据,包括刷新令牌和开发者令牌,保存在本地配置中;能访问该配置的人即可查询广告账户。原始 GAQL 工具可执行凭据允许的任何查询,应限定账户范围并检查助手发送的内容。广告账户数据会随对话发送给模型提供方。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Google Ads,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

google-ads-mcp

[npm version] [npm downloads] [glama score] [Node.js] [MCP] [License: MIT]

MCP server for Google Ads — diagnose spend efficiency, impression share, and asset performance from Claude.

22 tools across campaigns, keywords, RSAs, assets, audiences, geo/device splits, impression share, auction insights, and budget pacing — plus a raw GAQL escape hatch. Built for B2B paid search teams and agencies running real diagnosis, not just dashboard-style "list my campaigns" queries.


Why this exists

Most Google Ads MCP servers stop at "list campaigns + basic metrics." This one goes after the questions paid search teams actually ask: which RSA assets are labeled LOW so I can replace them, which keywords burn budget with zero conversions, who am I losing impression share to in auction insights, what's my mobile vs. desktop CPA gap, which campaigns are budget-limited right now. Those are the levers you pull to fix performance — and they're all first-class tools here.

Differentiated from the official googleads/google-ads-mcp: ships RSA asset performance labels, auction insights, impression share analysis, geo/device splits, audience targeting inspection, and budget pacing.


Example prompts

Once installed, ask Claude things like:

  • "What's my impression share vs competitors this month? Who am I most often losing to?"
  • "Show all RSA assets with LOW performance labels so I can replace them."
  • "Which keywords are spending the most with zero conversions in the last 30 days?"
  • "What's my mobile vs. desktop CPA difference across all campaigns?"
  • "Are any campaigns budget-limited right now? Show Lost IS (Budget)."
  • "List my remarketing audiences and tell me which ones are large enough to target in Search."

Demo

🎥 Walkthrough video coming soon — diagnosing wasted spend from Claude in under 60 seconds.


Features

CategoryTools
AccountList accounts, account info
CampaignsList campaigns, campaign performance, ad group performance
KeywordsKeyword performance, search terms report
ConversionsConversions by campaign, list conversion actions
Ad Copy / RSAsList RSAs with Ad Strength, RSA asset performance labels
Assets / ExtensionsList account assets, campaign assets
AudiencesList user lists, campaign audience targeting
PerformanceGeo performance, device performance, impression share, auction insights
BudgetList budgets, budget pacing
Escape hatchRaw GAQL query

Prerequisites

  • Node.js 20+
  • A Google Ads Developer Token (apply here)
  • OAuth 2.0 credentials (Client ID + Secret) from Google Cloud Console
  • A refresh token with https://www.googleapis.com/auth/adwords scope

Environment variables

VariableRequiredDescription
GOOGLE_ADS_DEVELOPER_TOKENYesYour Google Ads developer token
GOOGLE_ADS_CLIENT_IDYesOAuth 2.0 client ID
GOOGLE_ADS_CLIENT_SECRETYesOAuth 2.0 client secret
GOOGLE_ADS_REFRESH_TOKENYesOAuth 2.0 refresh token
GOOGLE_ADS_CUSTOMER_IDYes*Default customer ID (no dashes). Can be overridden per tool call.
GOOGLE_ADS_LOGIN_CUSTOMER_IDNoManager account ID for MCC access

Usage

Claude Desktop (claude_desktop_config.json)

json
{  "mcpServers": {    "google-ads": {      "command": "npx",      "args": ["-y", "google-ads-mcp"],      "env": {        "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_TOKEN",        "GOOGLE_ADS_CLIENT_ID": "YOUR_CLIENT_ID",        "GOOGLE_ADS_CLIENT_SECRET": "YOUR_CLIENT_SECRET",        "GOOGLE_ADS_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN",        "GOOGLE_ADS_CUSTOMER_ID": "1234567890"      }    }  }}

Claude Code

json
{  "mcpServers": {    "google-ads": {      "command": "node",      "args": ["/path/to/google-ads-mcp/dist/index.js"],      "env": {        "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_TOKEN",        "GOOGLE_ADS_CLIENT_ID": "YOUR_CLIENT_ID",        "GOOGLE_ADS_CLIENT_SECRET": "YOUR_CLIENT_SECRET",        "GOOGLE_ADS_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN",        "GOOGLE_ADS_CUSTOMER_ID": "1234567890"      }    }  }}

Cursor (~/.cursor/mcp.json)

json
{  "mcpServers": {    "google-ads": {      "command": "npx",      "args": ["-y", "google-ads-mcp"],      "env": {        "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_TOKEN",        "GOOGLE_ADS_CLIENT_ID": "YOUR_CLIENT_ID",        "GOOGLE_ADS_CLIENT_SECRET": "YOUR_CLIENT_SECRET",        "GOOGLE_ADS_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN",        "GOOGLE_ADS_CUSTOMER_ID": "1234567890"      }    }  }}

Docker

bash
docker build -t google-ads-mcp .docker run --rm \  -e GOOGLE_ADS_DEVELOPER_TOKEN=YOUR_TOKEN \  -e GOOGLE_ADS_CLIENT_ID=YOUR_CLIENT_ID \  -e GOOGLE_ADS_CLIENT_SECRET=YOUR_CLIENT_SECRET \  -e GOOGLE_ADS_REFRESH_TOKEN=YOUR_REFRESH_TOKEN \  -e GOOGLE_ADS_CUSTOMER_ID=1234567890 \  google-ads-mcp

Tools reference

ToolDescription
gads_run_gaqlRun any raw GAQL query — escape hatch for custom reports
gads_list_accountsList all accessible Google Ads accounts
gads_account_infoName, currency, timezone, manager flag, status
gads_list_campaignsCampaigns with status, channel type, bidding strategy
gads_campaign_performanceImpressions, clicks, CTR, CPC, cost, conversions, CPA, ROAS
gads_ad_group_performanceAd group metrics with campaign context
gads_keyword_performanceKeywords with match type, quality score, cost, conversions
gads_search_terms_reportActual user queries that triggered ads — find negatives and opportunities
gads_conversions_by_campaignConversions × conversion action per campaign
gads_list_conversion_actionsAll conversion actions with category, type, counting method
gads_list_rsasRSAs with all headlines, descriptions, Ad Strength, approval status
gads_rsa_asset_performancePer-asset performance labels: BEST / GOOD / LOW / PENDING / LEARNING
gads_list_assetsAccount assets: sitelinks, callouts, structured snippets, images
gads_campaign_assetsAssets linked to campaigns with field type
gads_list_audiencesUser lists (remarketing, customer match) with size and match rate
gads_campaign_audience_targetingAudiences on campaigns with bid modifiers and inclusion/exclusion
gads_geo_performancePerformance by country, region, and city
gads_device_performanceCost, conversions, CPA split by MOBILE / DESKTOP / TABLET
gads_impression_shareSearch IS, Lost IS (Budget), Lost IS (Rank) per campaign
gads_auction_insightsImpression share, overlap rate, outranking share vs competitors
gads_list_budgetsAll budgets: amount, delivery method, period, recommended budget
gads_budget_pacingCost vs budget per campaign with utilization %

Build from source

bash
git clone https://github.com/ZLeventer/google-ads-mcp.gitcd google-ads-mcpnpm installnpm run build

License

MIT — Copyright (c) 2026 Zach Leventer

来源:README.md,提交 ceaa0dc

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分