"as new ad sets, 5 per set"
Creates as many new ad sets as needed, five ads in each.
Three steps from a Google Drive folder to paused ad sets in Meta Ads Manager. You stay in Claude or Codex the whole time.
Connect Facebook and add Ad Uploader to Claude or Codex. One command.
claude mcp add --transport http ad-uploader https://app.aduploader.com/api/mcp
Give Claude a Google Drive link and the brief: campaign, ad sets, budget, copy.
Found the Spring Sale campaign in your Acme Store account. I'll use your saved page, naming pattern and UTMs. Importing the folder now.
Imported 24 files → 12 ads • hook1_4x5.mp4 + hook1_9x16.mp4 + hook1_thumb.jpg → 1 ad • hook2_4x5.mp4 + hook2_9x16.mp4 → 1 ad • …
See exactly what will be created, say yes, then flip it on in Ads Manager when you're ready.
LAUNCH PREVIEW — nothing has been created yet
Account: Acme Store (act_123) · USD
Campaign: Spring Sale (existing, ABO)
Status on creation: PAUSED (nothing spends until you activate)
Page: Acme Store
Ad sets: 3 (3 new)
1. Spring Sale | Set | 01 — Broad US 18–65 · $50.00/day (5 ads)
• Spring Sale | hook1 | 01 ← hook1 [4x5 + 9x16] +thumb (video)
• Spring Sale | hook2 | 02 ← hook2 [4x5 + 9x16] (video)
• …
2. Spring Sale | Set | 02 — Broad US 18–65 · $50.00/day (5 ads)
3. Spring Sale | Set | 03 — Broad US 18–65 · $50.00/day (2 ads)
Copy:
Primary text: Spring Sale is on. 30% off everything this week.
Headline: 30% off sitewide
CTA: SHOP_NOW → acmestore.com/spring?utm_source=meta
Advantage+ creative: all enhancements off
Totals: 3 ad sets · 12 ads · $150.00/day
Want me to create these?
Launch job_51ad: Done
Campaign: Spring Sale
Ad sets created: 3/3 · Ads created: 12/12 · Status: PAUSED
Daily budget: $150.00
Review in Ads Manager: business.facebook.com/adsmanager/…
Everything is paused. Say which ad sets to activate and I'll switch them on.
"as new ad sets, 5 per set"
Creates as many new ad sets as needed, five ads in each.
"8 ad sets"
Creates eight new ad sets and divides the ads between them.
"into the Broad AU ad set"
Adds the new ads to an ad set that already exists.
"same targeting as Prospecting US"
Uses an existing ad set as the template for targeting.
"$50/day"
Sets the daily budget on each new ad set. Budgets over your saved cap need a second yes.
"make it live"
The only way ads start as active. Leave status out and everything is created paused.
The same server works everywhere: https://app.aduploader.com/api/mcp. Your first request opens a sign-in window.
Run this in your terminal.
claude mcp add --transport http ad-uploader https://app.aduploader.com/api/mcp
Settings → Connectors → Add custom connector, then paste the URL. Claude's Free plan allows one custom connector.
https://app.aduploader.com/api/mcp
Add this to ~/.codex/config.toml.
[mcp_servers.ad-uploader] url = "https://app.aduploader.com/api/mcp"
Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
{
"mcpServers": {
"ad-uploader": { "url": "https://app.aduploader.com/api/mcp" }
}
}