kLOsk /adloop

Google Ads MCP server for Claude, ChatGPT and Cursor, with Reddit Ads, GA4 and Tag Manager. Every change is previewed first.

★ 299⑂ 71👁 4⑃ 69● 61▤ 85◈ 5
PythonMITCreated 2026-03-06getadloop.com
299
stars
71
forks
4
watchers
69
prs
61
issues
85
releases
5
discussions

README

AdLoop

The Google Ads MCP server for Claude, ChatGPT and Cursor.

Plus Reddit Ads, GA4 and your tracking code, with a preview before every change.










An MCP server that gives your AI assistant read + write access to Google Ads, Reddit Ads and GA4 — with safety guardrails that prevent accidental spend.

☁️ Skip the setup — use AdLoop Cloud (free plan, no card)  ·  or self-host: pip install adloop



 [!TIP]
 AdLoop Cloud is the hosted version of this project, with a free plan that needs no credit card. Connect Google in two clicks and use the full toolset from claude.ai, ChatGPT, Claude Code, Cursor, or Gemini. No Google Cloud project, no API access application, no OAuth verification wait. EU-hosted, GDPR-first, DPA included.

 📚 Documentation: docs.getadloop.com — setup guides per AI client, toolsets, the safety model, and troubleshooting for both editions.

---

 Cloud or Self-Hosted?

Both versions run the same tools with the same safety model. The difference is who handles the plumbing:

|  | ☁️ AdLoop Cloud | 🛠️ Self-hosted (this repo) |
|---|---|---|
| Setup | Connect Google in two clicks | ~5 min: own Google Cloud project + adloop init |
| Google Cloud project | Not needed | Required (free) |
| Ads API access | Not needed | Granted to your Cloud project (no developer token, no MCC since Sept 2026) |
| Works with | claude.ai, ChatGPT, Claude Code, Cursor, Gemini | Claude Code, Cursor, Claude Desktop, any local MCP client |
| Where your data flows | EU servers (Germany), GDPR-first, DPA included | 100% your machine — nothing leaves it |
| Updates | Automatic | pip install -U adloop |
| Price | Free plan, no card; paid plans for more accounts and volume | Free forever (MIT) |

Not sure? Start with Cloud — it's the fastest way to see what AdLoop can do, and it's the only way to use AdLoop from claude.ai or ChatGPT. Self-host when you want everything on your own machine or need to modify the code. And if you're here to hack on AdLoop itself: welcome, keep scrolling.

 What It Solves

AdLoop exists because managing Google Ads alongside your code is a mess. These are the specific problems it handles:

- "My conversions dropped and I don't know why." AdLoop cross-references Ads clicks, GA4 sessions, and conversion events in one query. It detects whether the gap is from GDPR consent rejection, broken tracking, or an actual landing page problem — before you waste hours checking each dashboard separately.

- "I'm wasting ad spend on irrelevant searches." Pull your search terms report, identify the junk, and add negative keywords — all from a single conversation in your IDE. No context-switching to the Ads UI.

- "Is my tracking even working?" Compare the event names in your actual codebase against what GA4 is receiving. Find the mismatches: events you fire that GA4 never sees, events GA4 records that you didn't know about.

- "I need to create ads but the Google Ads UI is hostile." Draft responsive search ads, create campaigns, add k

Top issues

Discussions

Latest release

v0.41.4 v0.41.4 2026-11-11
Two hardening fixes from the same code review as 0.41.3. Both matter mainly when AdLoop runs as a server for several users; on your own computer they change nothing you would notice.

 URL checks connect only to the address they checked

Before an ad, a sitelink or a Reddit media link is drafted, AdLoop checks that the URL answers. It refused URLs that resolve to internal addresses, but then let the request resolve the name a second time. A DNS server built for it could answer the check with a public address and the request with an internal one (DNS rebinding), and so point that request at a l

Snapshot: 2026-11-11T21:00:35Z · Data license Apache-2.0 · JSON