Google Ads MCP-Claude Integration for Google Ads API第23.2版
通过Claude控制您的整个Google Ads帐户——用简单的英语。 暂停活动、提取报告、添加关键字、创建广告。内置权限控制,未经您的批准,任何内容都不会运行。 自行托管在自己的服务器上。没有第三方中继。没有数据离开您的基础设施。
  ](https://nodejs.org)  
谷歌广告MCP 是自托管的 模型上下文协议 为Claude提供对Google Ads API v23.2的直接、安全访问的服务器。由...建造 Opti Webopz.
______________________________________________________________________
💬 你能对克劳德说什么
一旦连接,Claude就会理解自然语言——不需要ID:
"Pause all campaigns spending over $50/day in My Client Account"
"Show me the performance of campaign Summer Sale for last 30 days"
"Add these 10 keywords to ad group Branded - Exact in campaign Brand UK"
"Create a new Search campaign called Winter Promo with a $30 daily budget"
"Show me search terms that triggered ads in campaign Google Shopping this month"
"What is the CTR on our top 5 campaigns this month?"
"Create a Responsive Search Ad in ad group Homepage with these headlines and descriptions"内置 提示助手仪表板 允许您按名称浏览帐户、广告系列和广告组——单击任何提示将其直接复制到Claude中。没有ID,没有复制粘贴。
______________________________________________________________________
🔐 权限控制--v2.1.0中的新增功能
在Claude执行任何写入操作之前,服务器会检查您的权限设置。您可以从仪表板上精确控制Claude可以做什么,每个工具都有一个切换。
它是如何工作的:
- 读取工具始终处于打开状态 --无法禁用list、get和所有报表工具
- 写入工具可单独切换 --17个写/修改工具,每个都有自己的开/关开关
- 突出显示危险工具 --remove_campaign、remove_ad_group、remove_keyword以红色显示
- 当工具被禁用时 --克劳德收到了一个明确的信息: *“工具'remove_campaign'当前已禁用。在要求Claude使用之前,请在仪表板的“权限控制”下启用它。”*
- 克劳德不会尝试变通方法 --它将解释工具已关闭,并要求您启用它
| 始终打开(只读) | 可切换(写入) |
|---|---|
| list_accounts、get_account、run_gaql | create_campaign、update_campaigns |
| get_count_summary、get_campaign_report | pause_campaign、enable_campaigns |
| get_ad_group_report、get_keyword_report | set_campaign_budget, remove_campaign ⚠️ |
| get_report,get_search_terms | create_ad_group,update_ad_group |
| list_campaigns、get_campaign | pause_ad_group、enable_ad_group |
| list_ad-groups,list_ads | remove_adgroup ⚠️, create_rsa |
| update_ad_status,添加关键字 | |
| update_keyword, remove_关键字 ⚠️ | |
| 添加_否定_关键字 |
⚠️ 危险工具(拆卸操作)在仪表板上突出显示,可以单独禁用。
______________________________________________________________________
📦 包括两个版本
| 版本 | 在 | 运行时部署 | 最适合 |
|---|---|---|---|
| gads-mcp-php/ | Hostinger/SiteGround | PHP 8.0+ | 共享主机——无需SSH |
| gads-mcp/ | DigitalOcean/VPS | Node.js 18+ | 持久服务器,实时仪表板 |
两个版本都有 相同的工具和相同的权限控制 --30个工具,其中17个可单独切换。
______________________________________________________________________
🛠️ 30个工具——完整参考
帐户(3个工具-始终打开)
| 工具 | 它做什么 |
|---|---|
list_accounts | 列出MCC下的所有客户帐户,包括货币、时区和状态 |
get_account | 获取特定帐户的完整详细信息 |
run_gaql | 执行任何原始GAQL(谷歌广告查询语言)查询 |
报告(6个工具-始终打开)
| 工具 | 它做什么 |
|---|---|
get_account_summary | 账户级别总计——展示次数、点击次数、成本、点击率、转化率、ROAS |
get_campaign_report | 按成本排序的活动绩效 |
get_ad_group_report | 广告组性能指标 |
get_keyword_report | 带有质量分数的关键字指标 |
get_ad_report | 带有标题预览的广告效果 |
get_search_terms | 触发广告的实际搜索查询 |
活动(8个工具——6个可切换)
| 工具 | 可切换 | 它的作用 |
|---|---|---|
list_campaigns | 否 | 所有有状态、预算、出价的活动 |
get_campaign | 否 | 完整的活动详细信息 |
create_campaign | ✅ 是 | 创建搜索活动--默认为PAUSED |
update_campaign | ✅ 是 | 更新活动名称或状态 |
pause_campaign | ✅ 是 | 立即暂停直播活动 |
enable_campaign | ✅ 是 | 启用暂停的活动 |
set_campaign_budget | ✅ 是 | 更新每日预算 |
remove_campaign | ✅ 是⚠️ | 永久删除活动 |
广告组(6个工具——5个可切换)
| 工具 | 可切换 | 它的作用 |
|---|---|---|
list_ad_groups | 否 | 所有有CPC出价的广告组 |
create_ad_group | ✅ 是 | 创建新的广告组 |
update_ad_group | ✅ 是 | 更新名称、状态或CPC出价 |
pause_ad_group | ✅ 是 | 暂停广告组 |
enable_ad_group | ✅ 是 | 启用广告组 |
remove_ad_group | ✅ 是⚠️ | 删除广告组 |
广告(3个工具——2个可切换)
| 工具 | 可切换 | 它的作用 |
|---|---|---|
list_ads | 否 | 所有带有标题、描述、状态的广告 |
create_rsa | ✅ 是 | 创建响应式搜索广告——默认为PAUSED |
update_ad_status | ✅ 是 | 将广告设置为启用、暂停或删除 |
关键词(4个工具——全部可切换)
| 工具 | 可切换 | 它的作用 |
|---|---|---|
add_keywords | ✅ 是 | 添加广度/短语/精确关键字 |
update_keyword | ✅ 是 | 更新关键字状态或CPC出价 |
remove_keyword | ✅ 是⚠️ | 删除关键字 |
add_negative_keywords | ✅ 是 | 在活动或广告组级别添加负面内容 |
⚠️ 所有活动、广告组和广告 创建默认为PAUSED除非你明确地启用它,否则任何东西都不会花钱。
______________________________________________________________________
🖥️ 仪表板——里面有什么
这两个版本都包含 PIN保护的web仪表板:
| 面板 | 它的作用 |
|---|---|
| OAuth连接 | 令牌状态、到期环、上次刷新时间 |
| API版本状态 | 运行版本与最新版本,日落日期警告 |
| 权限控制 | 每个工具的开/关开关——17个写入工具,突出显示危险工具 |
| 快速助手 | 浏览帐户→ 活动→ 按名称排列广告组,复制克劳德提示 |
| 活动表 | 每个活动的30天指标——印象、点击、成本、点击率、转化率 |
| MCP令牌轮换 | 生成并保存新令牌 |
| 工具调用统计 | 24小时总计、错误计数、最常用工具 |
| 最近日志 | 最近50次工具调用,带有时间戳和状态 |
______________________________________________________________________
⚙️ 先决条件——谷歌凭据
部署前需要5个凭据。按以下顺序排列:
第一步——谷歌云项目
- 首选 console.cloud.google.com
- 创建一个新项目——将其命名为“谷歌广告MCP”或类似名称
- 首选 API和服务→ 图书馆 → 搜索 谷歌广告API → click 启用
步骤2-OAuth 2.0凭据
- 首选 API和服务→ 凭证→ 创建凭证→ OAuth 2.0客户端ID
- 如果提示进入同意屏幕:用户类型=外部→ 填写应用程序名称→ 保存并继续
- 应用程序类型: Web应用程序
- 添加授权重定向URI:
- PHP版本: https://yourdomain.com/gads-mcp/auth/oauth_setup.php - Node.js版本: http://localhost:8080/callback
- 单击“创建”→ copy 客户端ID 和 客户端密钥
第3步——开发者代币
- 登录 谷歌广告管理器(MCC)帐户
- 单击扳手图标(工具)→ API中心
- 复制您的 开发者令牌
- 申请 标准访问 如果显示“基本访问”,则“基本”仅适用于测试帐户
步骤4-MCC帐户ID
- 显示在Google广告管理器的右上角(格式:
123-456-7890) - 删除破折号→
1234567890--这是你的GOOGLE_ADS_MCC_ID
步骤5--刷新令牌
通过运行OAuth设置脚本获得——在下面的每个部署部分都有介绍。
______________________________________________________________________
🚀 部署——PHP(Hostinger/SiteGround)
文件结构
public_html/gads-mcp/
├── mcp.php ← MCP endpoint (GET public, POST requires auth)
├── config.php ← Fill in your credentials here
├── .htaccess ← Security + routing rules
├── auth/
│ └── oauth_setup.php ← Run ONCE to get refresh token, then DELETE
├── lib/
│ ├── auth.php ← Token auth — LiteSpeed/Hostinger compatible
│ ├── permissions.php ← Per-tool permission manager
│ ├── oauth.php ← File-cached OAuth token manager
│ ├── gads.php ← Google Ads REST API v23.2 client
│ ├── response.php ← JSON helpers + tool manifest
│ └── logger.php ← File logger
├── tools/ ← 6 tool files (all 30 tools)
├── dashboard/
│ └── index.php ← Full dashboard with permission controls
└── logs/ ← YOU MUST CREATE THIS + logs/rate/ (chmod 755)
├── .permissions.json ← Auto-created on first permission save
└── gads-mcp.log ← Auto-created on first tool call一步一步
1.上传文件
在Hostinger hPanel→ 文件管理器,创建文件夹 public_html/gads-mcp/.上传所有内容 gads-mcp-php/ 进入它。
2.创建日志文件夹
内部 public_html/gads-mcp/,创建:
logs/--将权限设置为 755logs/rate/--将权限设置为 755
3.获取刷新令牌
在谷歌云控制台中,添加此授权重定向URI:
https://yourdomain.com/gads-mcp/auth/oauth_setup.php在浏览器中访问:
https://yourdomain.com/gads-mcp/auth/oauth_setup.php点击 与谷歌授权 → 使用您的MCC帐户登录→ 复制 GOOGLE_REFRESH_TOKEN 显示在屏幕上。
🔴 删除 auth/oauth_setup.php 复制令牌后立即执行。 在文件管理器中:选择它→ 删除。4.填写config.php
在文件管理器中,单击鼠标右键 config.php → Edit:
define('MCP_SECRET_TOKEN', 'YOUR_64_CHAR_TOKEN'); // openssl rand -hex 32
define('DASHBOARD_PIN', 'YOUR_STRONG_PASSPHRASE');
define('GOOGLE_CLIENT_ID', 'xxxxx.apps.googleusercontent.com');
define('GOOGLE_CLIENT_SECRET', 'GOCSPX-xxxxx');
define('GOOGLE_REFRESH_TOKEN', '1//xxxxxxxx'); // from step 3
define('GOOGLE_ADS_DEV_TOKEN', 'xxxxx');
define('GOOGLE_ADS_MCC_ID', '1234567890'); // digits only, no dashes
define('GOOGLE_ADS_API_VERSION', 'v23.2');5.测试端点
在浏览器中访问——应返回包含30个工具的JSON工具清单:
https://yourdomain.com/gads-mcp/mcp.php6.打开仪表板并配置权限
https://yourdomain.com/gads-mcp/dashboard/输入您的 DASHBOARD_PIN首选 权限控制 → 关闭任何你不想让克劳德使用的工具。更改会立即保存。
______________________________________________________________________
🚀 部署——Node.js(DigitalOcean/VPS)
先决条件
- Ubuntu 22.04 Droplet——最低512MB RAM(基本版每月6美元)
- 指向Droplet IP的域或子域
- SSH访问
一步一步
1.上传文件到服务器
scp -r gads-mcp/ root@YOUR_DROPLET_IP:/root/gads-mcp2.SSH并运行安装脚本
ssh root@YOUR_DROPLET_IP
cd /root/gads-mcp
chmod +x setup-digitalocean.sh
./setup-digitalocean.sh这将安装Node.js 20,PM2,创建 logs/ 目录,并启动服务器。
3.获取刷新令牌
npm run auth打开它打印的URL→ 使用您的MCC Google帐户登录→ 将身份验证代码粘贴回去→ 复制 GOOGLE_REFRESH_TOKEN 打印在终端上。
4.创建并填写.env
cp .env.example .env
nano .envMCP_SECRET_TOKEN=YOUR_64_CHAR_TOKEN
DASHBOARD_PIN=YOUR_STRONG_PASSPHRASE
GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-xxxxx
GOOGLE_REFRESH_TOKEN=1//xxxxxxxx
GOOGLE_ADS_DEV_TOKEN=xxxxx
GOOGLE_ADS_MCC_ID=1234567890
GOOGLE_ADS_API_VERSION=v23.2
PORT=3848
MCP_RATE_LIMIT=605.从PM2开始
pm2 start ecosystem.config.js
pm2 save
pm2 startup
# Run the command it prints to enable auto-start on reboot6.设置nginx+SSL
cp nginx/gads-mcp.conf /etc/nginx/sites-available/
nano /etc/nginx/sites-available/gads-mcp.conf # replace YOUR_DOMAIN with your domain
ln -s /etc/nginx/sites-available/gads-mcp.conf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
apt install certbot python3-certbot-nginx -y
certbot --nginx -d gads-mcp.yourdomain.com7.测试端点
curl https://gads-mcp.yourdomain.com/mcp
# Should return tool manifest JSON8.打开仪表板并配置权限
https://gads-mcp.yourdomain.com/dashboard输入您的 DASHBOARD_PIN首选 权限控制 → 根据需要打开或关闭写入工具。
______________________________________________________________________
🔗 连接克劳德
克劳德桌面(Mac/Windows)
打开配置文件:
- 雨衣:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"gads-mcp": {
"transport": {
"type": "http",
"url": "https://yourdomain.com/gads-mcp/mcp.php",
"headers": {
"X-MCP-Token": "YOUR_MCP_SECRET_TOKEN"
}
}
}
}
}对于DigitalOcean,将URL更改为 https://gads-mcp.yourdomain.com/mcp.
Save → 完全退出克劳德桌面→ 重新开放。
克劳德代码(Mac/Linux)
claude mcp add --transport http gads-mcp \
https://yourdomain.com/gads-mcp/mcp.php \
--header "Authorization: Bearer YOUR_MCP_SECRET_TOKEN"克劳德代码(需要Windows桥接器)
Windows上的Claude Code在HTTP传输方面存在已知的标头问题。使用桥接脚本:
- 使用桥从 OptiMCP桥接脚本 --更新
TOKEN和HOSTNAME - 添加
.claude.json:
{
"mcpServers": {
"gads-mcp": {
"command": "node",
"args": ["C:\\Users\\YourName\\gads-bridge.js"]
}
}
}______________________________________________________________________
🔒 安全
| 控制 | 实施 |
|---|---|
| MCP认证 | X-MCP-Token 和 Authorization: Bearer 两人都接受了 |
| LiteSpeed修复 | getallheaders() 绕过Hostinger/LiteSpeed标头剥离 |
| GET public | 工具清单不需要令牌(兼容Claude Code健康检查) |
| POST保护 | 所有30个工具调用都需要有效令牌 |
| 权限控制 | 每个工具启用/禁用--17个可单独控制的写入工具 |
| 被阻止的工具响应 | 返回403,并向Claude发送明确消息,从不默默失败 |
| 速率限制 | 每个IP需要60个/60s(两个版本) |
| 错误处理 | error_reporting(0) 防止PHP警告损坏JSON |
| 仪表板 | 单独的PIN,定时安全比较 |
| 凭据 | 从未在工具响应中返回——OAuth令牌保持在服务器端 |
| PAUSED默认值 | 所有创建操作默认为PAUSED——没有意外花费 |
| 危险工具 | 仪表板中突出显示的remove_campaign、remove_ad_group、remove_keyword |
______________________________________________________________________
📋 上线检查表
凭证
- \[\]已填写所有5个Google凭据,不保留任何占位符值
- \[\]MCC ID仅为数字,无破折号(
123-456-7890→1234567890) - \[\]开发人员令牌为 标准访问 (基本=仅测试帐户-将在真实帐户上失败)
- \[ \]
GOOGLE_ADS_API_VERSION=v23.2 - \[ \]
MCP_SECRET_TOKEN是64个字符(openssl rand -hex 32) - \[ \]
DASHBOARD_PINset——仪表板显示PIN登录屏幕
服务器
- \[\]仪表板OAuth面板显示 连接 带有令牌到期倒计时
- \[ \]
oauth_setup.php使用后立即从服务器中删除 - \[\]GET端点返回列出所有30个工具的工具清单
- \[ \]
logs/和logs/rate/文件夹存在并且可写(PHP版本) - \[\]PM2显示
gads-mcp作为 在线的 (Node.js版本)
权限
- \[\]已加载仪表板权限控制面板--所有17个写入工具都可见
- \[\]审查了危险工具(移除操作)——如果不需要,请禁用
- \[\]测试:让Claude在禁用活动的情况下“删除活动”——应该会收到屏蔽消息
克劳德连接
- \[ \]
claude mcp list显示✓ 连接 - \[\]“列出所有帐户”返回您在Claude中的MCC客户帐户
- \[\]仪表板中的Prompt Helper按名称显示您的广告系列
______________________________________________________________________
📁 存储库结构
optimcp/
├── gads-mcp-php/ # Google Ads MCP — PHP (Hostinger / SiteGround)
│ ├── mcp.php # Main endpoint
│ ├── config.php # Credentials template
│ ├── lib/
│ │ ├── permissions.php # Per-tool permission system
│ │ ├── auth.php # LiteSpeed-compatible token auth
│ │ ├── oauth.php # File-cached token manager
│ │ └── gads.php # Google Ads REST API client
│ ├── tools/ # 30 tools across 6 files
│ └── dashboard/index.php # Full dashboard with permission controls
└── gads-mcp/ # Google Ads MCP — Node.js (DigitalOcean)
├── server.js # Main server (port 3848)
├── lib/
│ ├── permissions.js # Per-tool permission system
│ └── ...
├── dashboard/
│ ├── index.html # Dashboard UI
│ └── routes.js # Dashboard API (permissions, prompt helper)
└── tools/ # 30 tools across 6 files______________________________________________________________________
🏗️ 由...建造
Opti Webopz --专门从事WordPress、WooCommerce和人工智能自动化的全方位服务数字机构。
贡献者: 穆罕默德·祖迈尔·库雷希·沙希尔·穆斯塔法
______________________________________________________________________
📄 许可证
MIT——免费使用、修改和分发。看 许可证.
______________________________________________________________________
*OptiMCP套件的一部分——Claude的自托管MCP服务器。谷歌广告MCP v2.1.0·Node.js v1.2.0*
