Google Ads MCP Worker
Google Ads MCP Worker
Google Ads MCP-Server auf einem Cloudflare Worker. Gleiche Struktur wie mcp-gsc: TypeScript, REST über fetch, keine Google-Client-Bibliothek.
Neuimplementierung von FGRibreau/mcp-google-ads (Rust, API v23) auf API v25
Authentifizierung: OAuth2-Refresh-Token. Die Google-Ads-API akzeptiert keine Servicekonten, daher ist der GSC-JWT-Ansatz hier nicht anwendbar
Transporte: Streamable HTTP (
/mcp) und Legacy-SSE (/sse)
Schreibvorgänge sind ungeschützt. Kein Dry-Run, kein Budgetlimit, keine Gebotserhöhungsgrenze, keine Zwei-Schritt-Bestätigung, kein Audit-Log. Jedes Mutations-Tool wird sofort auf das Konto angewendet, auf das
customer_idzeigt.create_campaign,create_ad_groupundcreate_responsive_search_adsind standardmäßig aufPAUSEDgesetzt, aber das ist nur ein Standardwert, den du überschreiben kannst, keine Sperre. Richte dies auf ein Testkonto aus, bis du dem Setup vertraust.
Einrichtung
1. Google-Ads-Entwicklertoken
Manager-Konto (MCC) → Tools & Einstellungen → API-Center → Entwicklertoken beantragen. Bis zur Genehmigung des Basis-Zugriffs funktioniert das Token nur mit Testkonten.
2. OAuth-Client
Google Cloud Console → Projekt auswählen/erstellen → Google-Ads-API aktivieren.
APIs & Dienste → Anmeldedaten → Anmeldedaten erstellen → OAuth-Client-ID → Desktop-App.
Client-ID und Client-Secret notieren.
3. Refresh-Token
npm install --legacy-peer-deps
npm run token -- <CLIENT_ID> <CLIENT_SECRET>Öffnet einen Browser, fragt nach dem adwords-Bereich und gibt GOOGLE_ADS_REFRESH_TOKEN aus.
Melde dich mit einem Google-Konto an, das Zugriff auf das zu verwaltende Ads-Konto hat.
4. Bereitstellung
npx wrangler secret put GOOGLE_ADS_DEVELOPER_TOKEN
npx wrangler secret put GOOGLE_ADS_CLIENT_ID
npx wrangler secret put GOOGLE_ADS_CLIENT_SECRET
npx wrangler secret put GOOGLE_ADS_REFRESH_TOKEN
npx wrangler secret put MCP_AUTH_TOKEN # any long random string: openssl rand -hex 32
npm run deploySetze die nicht-geheimen Standardwerte in wrangler.jsonc:
Variable | Bedeutung |
| Standardkonto, nur Ziffern. Tools akzeptieren |
| Deine MCC-ID, gesendet als |
| Standardmäßig |
Lokale Entwicklung: .dev.vars.example nach .dev.vars kopieren, dann npm run dev.
5. Client verbinden
claude mcp add --transport http gads https://gads-mcp.<your-subdomain>.workers.dev/mcp \
--header "Authorization: Bearer <MCP_AUTH_TOKEN>"Claude Desktop / stdio-only-Clients:
{
"mcpServers": {
"gads": {
"command": "npx",
"args": [
"mcp-remote",
"https://gads-mcp.<your-subdomain>.workers.dev/mcp",
"--header",
"Authorization: Bearer <MCP_AUTH_TOKEN>"
]
}
}
}Dann health_check aufrufen – es meldet den OAuth-Status, das Vorhandensein des Entwicklertokens und die erreichbaren Konten.
Tools
46 Tools. Jedes kundenbezogene Tool akzeptiert ein optionales customer_id.
Lesen (21)
Tool | Was |
| Auth-Status, API-Version, konfigurierte Konten |
| Zugängliche Konten (mit Namen, wenn ein MCC konfiguriert ist) |
| Währung, Zeitzone, Auto-Tagging, Testkonto-Flag |
| Beliebige GAQL-Abfrage; standardmäßig |
| Kampagnenmetriken nach Kosten |
| Anzeigengruppenmetriken |
| Anzeigenmetriken mit RSA-Überschriften/Beschreibungen und Genehmigungsstatus |
| Keyword-Metriken mit Übereinstimmungstyp, Qualitätsfaktor, Gebot |
| Tatsächliche Suchanfragen – die Quelle für negative Keywords |
| Negative Keywords auf Kampagnen-/Anzeigengruppen-/gemeinsamen Sets |
| Metriken nach Standort |
| Metriken nach Gerät |
| Änderungsereignisse (API speichert 30 Tage) |
| Assets und ihre Anhängeebene |
| Abgelehnte und eingeschränkte Anzeigen mit Richtlinienthemen |
| Conversion-Aktionen mit Kategorie, Zählung, Lookback |
| Googles Empfehlungen plus Auswirkungsschätzungen |
| Ortsname → Geo-Target-Konstanten-ID |
| Keyword-Ideen aus Seeds und/oder einer URL |
| Volumen/Wettbewerb für eine feste Keyword-Liste |
| Prognose für eine hypothetische Kampagne |
Schreiben (25)
Tool | Was bedeutet |
| Tagesbudget, geteilt oder nicht |
| Kampagne + optionales Budget in einem Aufruf |
| Name, Status, Budget, Daten, Gebotsstrategie |
| Anzeigengruppen und Standard-CPC |
| Positive Keywords, Gebote, finale URLs |
| Negative Keywords auf Kampagnen- oder Anzeigengruppenebene |
| RSA mit Pinning; Längenlimits werden vor dem Senden geprüft |
| Pausieren / Aktivieren / Entfernen von beliebigen Ressourcen per Ressourcenname |
| Standorte gezielt ansprechen oder ausschließen, mit Gebotsanpassungen |
| Präsenz vs. Präsenz-oder-Interesse |
| Tageszeitfenster und Gebotsanpassungen |
| Zielgruppen |
| Sitelinks, Callouts, Snippets, Text, Bilder |
| Conversion-Einrichtung, primär/sekundär |
| Portfolio-Strategien |
| Auf Googles Vorschläge reagieren |
| Rohes Mutate auf beliebigen Ressourcen – deckt alles oben ab |
| Atomisches |
mutate und mutate_batch sind die Notausgänge: Alles, was Google hinzufügt, oder jede Ressource ohne benanntes Tool
(gemeinsame Sets, Nutzerlisten, Asset-Gruppen, Experimente, Labels), läuft ohne Codeänderung darüber.
Beide akzeptieren validate_only, wenn du einen manuellen Dry-Run möchtest.
Prüfungen
npm run typecheck # tsc --noEmit
npm test # pure-logic selfcheck: micros, dates, resource names, bidding payloadsHinweise
Geld wird in Währungseinheiten (
25.5) übergeben und intern in Mikros umgerechnet.Mutate-Payloads verwenden
YYYYMMDD-Daten; Reporting verwendetYYYY-MM-DD. Tools akzeptieren überallYYYY-MM-DDund konvertieren.updateMaskverwendet snake_case-Feldnamen – relevant, wenn du Operationen fürmutatevon Hand schreibst.Zugriffstokens werden pro Worker-Isolate zwischengespeichert; Refresh-Tokens laufen nicht ab, es sei denn, sie werden widerrufen oder 6 Monate lang nicht verwendet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage Google, Meta, Amazon, TikTok, LinkedIn & ChatGPT ads. 430 tools for campaigns & analytics.
OpenAI Ads MCP for ChatGPT Ads campaigns, creatives, audiences, insights, and conversions.
Search Meta, Google Ads, LinkedIn, and TikTok ad libraries plus creative analysis via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ambo-sk/mcp-google-ads'
If you have feedback or need assistance with the MCP directory API, please join our Discord server