mcpField
G
gadschain

gadschain

本地服务
github.com/SnipMCP商业与营销023 周前更新

关于 gadschain

gadschain 是面向 Google Ads 运营和营销团队的 MCP 服务,将广告数据整理为结构化结果,并提供带防护的日常广告系列操作工具。

主要功能

  1. 01列出广告系列并查看搜索词
  2. 02调整广告系列预算
  3. 03暂停或启用广告系列
  4. 04添加否定关键词
  5. 05将 API 数据规范化为结构化结果
  6. 06为变更操作设置安全防护

适用场景

  1. 01查找高支出的广告系列
  2. 02检查造成浪费的搜索查询
  3. 03修改广告系列预算
  4. 04用否定关键词排除无关查询

MCP 相关

它向 MCP 客户端提供六种 Google Ads 工具,涵盖广告系列读取、搜索词检查、预算更新、状态切换和否定关键词管理。响应采用结构化的 Pydantic 模型。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"snipmcp-gadschain": {
"command": "uvx",
"args": [
"gadschain"
]
}
}
}
启动命令uvx gadschain

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigadschain0.1.1

工具

6

收录的工具列表 · 更新于 3 周前

参数类型必填说明
customer_idany否

详细介绍

GadsChain

连接 Google Ads 账户与营销决策的 AI 层。

经过实战检验。 六种工具覆盖日常运营流程——列出广告系列、审核搜索词、调整预算、暂停/启用广告系列,以及整理否定关键词。所有响应均为严格的 Pydantic 模型。原始 protobuf 不会传递给 Agent。

GadsChain 演示

☁️ 准备投入生产?

开源服务可在本地使用你自己的 API 密钥运行。 如需支持多账户故障转移、SLA 保证 和 webhook 提醒的托管基础设施——加入托管云候补名单。

问题

原始 Google Ads API 会返回数千行数据。一种糟糕的广告系列结构就可能悄无声息地消耗预算。GadsChain 会读取、清理并处理你的广告数据,避免浪费不断累积。

安装

git clone https://github.com/SnipMCP/gadschain.git
cd gadschain
pip install -e ".[dev]"
cp .env.example .env

也可以使用 Docker:

docker-compose up --build

配置

GOOGLE_ADS_DEVELOPER_TOKEN=your_developer_token_here
GOOGLE_ADS_CLIENT_ID=your_oauth_client_id_here
GOOGLE_ADS_CLIENT_SECRET=your_oauth_client_secret_here
GOOGLE_ADS_REFRESH_TOKEN=your_refresh_token_here
GOOGLE_ADS_LOGIN_CUSTOMER_ID=1234567890   # MCC (manager), digits only
GOOGLE_ADS_CUSTOMER_ID=1234567890         # default operating account
GOOGLE_ADS_API_VERSION=v24
LOG_LEVEL=INFO

用法

以下是三个可发送给 Claude(或任何兼容 MCP 的 Agent)的示例提示词:

  1. Use get_campaigns to show me which campaigns are bleeding budget this month
  2. Run get_search_terms for the last 30 days and tell me which queries are wasting spend
  3. Add "free", "cheap", "jobs" as negative keywords to campaign 12345
在两个终端中运行
# Tab 1 — start the MCP server
python -m gadschain.server
# Tab 2 — call a tool from a Python shell or your MCP client
# Tool signatures:
#   get_campaigns(customer_id=None)
#   get_search_terms(customer_id=None, days=30, campaign_id=None)
#   update_budget(campaign_id, new_budget_dollars, customer_id=None)
#   pause_campaign(campaign_id, customer_id=None)
#   enable_campaign(campaign_id, customer_id=None)
#   add_negative_keywords(campaign_id, keywords, match_type="BROAD", customer_id=None)

工作原理

原始 Google Ads 输出与模型之间的三个处理层:

Google Ads API → [Fetch] → [Transform] → [Act] → MCP Tool → AI Agent
                  GAQL      micros→$       safe
                  queries   enum→str       mutations
                            CTR→%          shared-budget guard
  • 获取:使用有针对性的 GAQL 查询,只查询日常运营流程实际需要的列。没有 SELECT *,也不会遇到 protobuf 分页陷阱。
  • 转换:将货币微单位换算为美元,将 CTR 换算为百分比,将枚举值转换为易读文本;对每个嵌套属性的查找都会容错处理缺失字段,不会导致崩溃。
  • 执行:所有变更操作都经过防护规则——状态变更会阻止 REMOVED,拒绝共享预算(shared_budget_refused),并在调用任何变更操作前验证匹配类型。Agent 不会收到异常,而是会收到结构化的 {"error": ..., "message": ...},以便进行推理。
来自真实 Franka Pizzeria 账户的数据(28 天窗口期)
RAW GOOGLE ADS PAYLOAD          GADSCHAIN OUTPUT
─────────────────────────────────────────────────
Impressions:    3,389           Spend (28d):      $51.41
Clicks:         163             Conversions:      3 ($17.14 each)
CTR:            4.81%           Conv. rate:       1.84%
Cost/click:     $0.32 avg       Surface:          Display Network waste
                                                  identified on Fridays
                                                  ($0.11 CPC vs $0.44 avg)

在读取一个真实账户时,GadsChain 发现,28 天内花费了 $51.41,获得 3 次转化,每次转化成本为 $17.14——转化率为 1.84%,隐藏在纸面上看起来不错的 4.81% CTR 之中。展示广告网络才是悄无声息的罪魁祸首:周五点击的平均 CPC 为 $0.11,而搜索广告的平均 CPC 为 $0.44——廉价的垃圾流量推高了 CTR,却没有带来任何转化。Agent 能发现这一点,是因为经过转换的数据载荷让渠道归因一目了然,而非埋藏在 protobuf 中。

路线图

  • 托管云版本(托管式、多租户、webhook 提醒)
  • 第二阶段:ChatGPT REST 适配层(基于同一组六种工具的 FastAPI 接口)
  • 出价策略调整工具(目标 CPA、目标 ROAS)
  • 每次转化成本偏移异常提醒

贡献

欢迎提交 PR。提交前请运行 pytest。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。