Run a live Meta (Facebook/Instagram) ad account end to end with Claude Code. Six skills that audit, create, build, monitor, and optimize campaigns. You approve every spend. Free and open source.
Skills are the brain. MCPs are the hands. The skills decide, the MCPs execute, and you approve before a single dollar moves.
A set of Claude Code skills plus the MCP setup to drive a real Meta ad account from your terminal. Claude Code is the operator; the Meta Ads MCP is its hands; you are the approver. Nothing spends, launches, pauses, or scales without your sign-off.
| # | Skill | What it does |
|---|---|---|
| 1 | strategy-intel | Studies the top performance marketers and figures out the campaign structure that is winning right now. |
| 2 | ad-creative-engine | Scrapes the Meta Ad Library for working angles, writes the copy and CTAs, and generates the static creatives. |
| 3 | campaign-builder | Builds the correct structure (ABO testing, CBO scaling, retargeting) directly inside Meta, always PAUSED for your review. |
| 4 | ad-watchdog | Monitors live performance (CPM, CPC, CTR, cost per lead, frequency) on a schedule and proposes ranked actions. Never writes. |
| 5 | ad-optimizer | Executes only the actions you approved: pause losers, duplicate-and-scale winners. Every write is logged. |
| 6 | ad-audit | Audits an existing account for what is broken and where to focus. Optional, read-only. |
The value chain: strategy creates the ads, the ads become campaigns, the campaigns generate data, the data improves the strategy, and the loop runs again. That is not six skills. That is a Facebook ads team.
- Primary: the first-party Meta Ads MCP (
ads_create_campaign,ads_create_ad_set,ads_create_creative,ads_create_ad, insights,ads_library_search). - Fallback:
pipeboard-co/meta-ads-mcp. - Image generation: ChatGPT Image Gen 2 for the creatives.
- Full setup (Meta app, system-user token, pixel + CAPI): see
docs/setup-guide.md.
git clone https://github.com/Sandy-zippy/meta-ads-stack.git
cd meta-ads-stack
cp config/accounts.example.yaml config/accounts.yaml # fill in your account
# copy the skills/ folders into your project's .claude/skills/ (or point Claude Code at them)Then connect the Meta Ads MCP (see the setup guide) and tell Claude Code: "audit my account and propose a campaign."
- Everything is created PAUSED. Activation is always a separate, deliberate human step.
- The watchdog never writes. It only reports and proposes.
- The optimizer acts only on the actions you approved, never exceeds +20% per scale, refuses to run outside your configured business hours, and appends every write to an audit log.
- This cannot blow up your account on its own. That is the point.
cron/weekly-watchdog runs the watchdog headless on a schedule and emails you a report with the proposed actions. You reply to approve. See cron/.
- Audit checks wrap
AgriciDaniel/claude-ads. - MCP fallback:
pipeboard-co/meta-ads-mcp.
MIT. Use it, fork it, ship it.