Gadschain

io.github.SnipMCP由 GitHub 帳號 SnipMCP 發布v0.1.1更新於 Oct 27, 2026

Google Ads MCP server. Read campaigns, manage budgets, pause/enable, add negative keywords.

已驗證STDIO僅桌面資料與分析商業與電商

概覽

AI 產生的概覽

在本機執行的 MCP 伺服器,讓助理讀取並調整 Google Ads 廣告活動:預算、暫停/啟用狀態與排除關鍵字。

可以做什麼
  • 列出廣告活動,並依花費與轉換指標檢視搜尋字詞
  • 以美元為單位調整廣告活動的每日預算
  • 暫停或啟用廣告活動
  • 為指定廣告活動新增排除關鍵字並選擇比對類型
  • 回傳結構化、已清理的結果,出錯時提供可讀的錯誤訊息而非原始 API 資料
適用情境
適合日常 Google Ads 帳戶維運:找出浪費預算的廣告活動或搜尋字詞、調整預算、暫停或恢復廣告活動、新增排除關鍵字,都能在對話中完成。
執行需求
以 Python 套件在本機執行(pip 安裝,或使用 Docker)。需透過環境變數提供 Google Ads API 憑證:GOOGLE_ADS_DEVELOPER_TOKEN、GOOGLE_ADS_CLIENT_ID、GOOGLE_ADS_CLIENT_SECRET、GOOGLE_ADS_REFRESH_TOKEN,以及 GOOGLE_ADS_LOGIN_CUSTOMER_ID 與 GOOGLE_ADS_CUSTOMER_ID。需要連線至 Google Ads API 的網路存取。
安裝前請注意
需要開發人員權杖、OAuth 用戶端憑證與更新權杖,這些憑證可存取真實廣告帳戶,請勿寫入日誌或共用設定檔。調整預算、暫停/啟用與新增排除關鍵字都會寫入真實帳戶,可能影響實際花費。README 另推廣付費的託管雲端服務。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gadschain,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

GadsChain

The AI layer between your Google Ads account and your marketing decisions.

Battle-tested. Six tools cover the daily-ops loop — campaign listing, search-term review, budget tuning, pause/enable, and negative-keyword grooming. All responses are strict Pydantic models. No raw protobuf reaches the agent.

[GadsChain Demo]

☁️ Moving to production?

The open-source server runs locally with your own API keys. For hosted infrastructure with multi-account failover, SLA guarantees, and webhook alerts — join the managed cloud waitlist.

The Problem

Raw Google Ads API returns thousands of rows. One bad campaign structure bleeds budget silently. GadsChain reads, sanitizes, and acts on your ad data before waste compounds.

Installation

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

Or with Docker:

bash
docker-compose up --build

Configuration

env
GOOGLE_ADS_DEVELOPER_TOKEN=your_developer_token_hereGOOGLE_ADS_CLIENT_ID=your_oauth_client_id_hereGOOGLE_ADS_CLIENT_SECRET=your_oauth_client_secret_hereGOOGLE_ADS_REFRESH_TOKEN=your_refresh_token_hereGOOGLE_ADS_LOGIN_CUSTOMER_ID=1234567890   # MCC (manager), digits onlyGOOGLE_ADS_CUSTOMER_ID=1234567890         # default operating accountGOOGLE_ADS_API_VERSION=v24LOG_LEVEL=INFO

Usage

Three example prompts to send to Claude (or any MCP-compatible 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

Run it in two terminals

bash
# Tab 1 — start the MCP serverpython -m gadschain.server
bash
# 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)

How it works

Three layers between raw Google Ads output and your model:

Google Ads API → [Fetch] → [Transform] → [Act] → MCP Tool → AI Agent                  GAQL      micros→$       safe                  queries   enum→str       mutations                            CTR→%          shared-budget guard
  • Fetch: Targeted GAQL queries — only the columns the daily-ops loop actually needs. No SELECT *, no protobuf pagination footguns.
  • Transform: Currency micros divided to dollars, CTR scaled to percent, enums to human strings, every nested attribute lookup tolerates missing fields without crashing.
  • Act: Mutations route through guard rails — REMOVED blocked on status changes, shared budgets refused (shared_budget_refused), match types validated before any mutate call. The agent never gets an exception; it gets a structured {"error": ..., "message": ...} it can reason about.

Real numbers from a live Franka Pizzeria account (28-day window)

RAW GOOGLE ADS PAYLOAD          GADSCHAIN OUTPUT─────────────────────────────────────────────────Impressions:    3,389           Spend (28d):      $51.41Clicks:         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)

In one read of a real account, GadsChain surfaced $51.41 spent over 28 days for 3 conversions at $17.14 each — a 1.84% conversion rate hidden inside a 4.81% CTR that looks healthy on paper. The Display Network was the silent culprit, with Friday clicks averaging $0.11 CPC vs the $0.44 search-side average — cheap junk traffic inflating CTR while contributing nothing to conversions. The agent saw it because the transformed payload made channel attribution legible instead of buried in protobuf.

Roadmap

  • Managed cloud tier (hosted, multi-tenant, webhook alerts)
  • Phase 2: ChatGPT REST shim (FastAPI surface over the same six tools)
  • Bid-strategy tuning tools (target CPA, target ROAS)
  • Anomaly alerts on cost-per-conversion drift

Contributing

PRs welcome. Run pytest before submitting.

來源:README.md,提交 c95819c

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分