META ADS MCP · FREE WHILE IN BETA
Meta Ads, from your agent.
Ask Claude Code, Codex or Claude to read, build and launch. Every change previews first and starts paused.
$ claude mcp add --transport http zoma https://api.agentweb.pro/api/meta-toolkit/mcp
Claude CodeCodexClaudeHermesAny MCP client
> launch a leads campaign at $50/day for ./creative/fall-offer-v3.png
⏺ I'll upload the creative, build the campaign paused, and show you the preview first.
⏺ zoma - zoma_prepare_upload (MCP)(filename: "fall-offer-v3.png")
⎿ Upload URL ready · expires in 15 min
⏺ zoma - call_meta_marketing_api (MCP)(entity_type: "AD_CREATIVE", action: "UPLOAD_IMAGE")
⎿ image_hash 7f3a…c21e
⏺ zoma - call_meta_marketing_api (MCP)(entity_type: "CAMPAIGN", action: "CREATE", params: {daily_budget: 50})
⎿ PREVIEW · nothing sent to Meta
daily_budget 50 → 5000 (= $50.00 USD)
status PAUSED
preview_token v1.1793813700.9f3c… (expires 15:00)
⏺ Preview is ready: $50.00/day, created paused. Confirm it?
> yes
Tool use zoma - call_meta_marketing_api(confirm: true, preview_token: "v1.1793813700.9f3c…") (MCP)Do you want to proceed?1. Yes2. Yes, and don't ask again for zoma - call_meta_marketing_api3. No, and tell Claude what to do differently (esc)
? for shortcuts
Where it works
Right inside the tools you already use.
> which of my campaigns is wasting money this week?
⏺ zoma - get_meta_ads_metrics (MCP)(date_preset: "last_7d")
⎿ 4 campaigns · read only · no card needed
⏺ Two campaigns are above your $80 CPA target:
CampaignSpendLeadsCPAFall Offer · Prospecting$1,24031$40.00Retargeting · Web$41018$22.78Brand Video · Broad$8657$123.57Lookalike · 2%$7208$90.00
⏺ Want me to preview pausing those two?
>
? for shortcuts
fall-01.mp4fall-02.mp4fall-03.mp4+2 more
Turn these into retargeting ads. Keep them paused.
I'll upload all five to your Acme ad account and build one ad per video in Retargeting · Web.
Zoma · zoma_prepare_upload ×5Done›
Zoma · AD_CREATIVE · UPLOAD_VIDEO ×5Done›
Zoma · AD · CREATE ×5 · pausedConfirmed›
Paused
Paused
Paused
Paused
Paused
All five ads are built and paused. Say “go live” and I'll preview the activation first.
+Reply to Claude…
>_ Codex directory: ~/acme-ads mcp: zoma
› pause anything with CPA over $80
• Called zoma.get_meta_ads_metrics({"date_preset":"last_7d"})
└ 4 campaigns · 2 above $80 CPA
• Called zoma.call_meta_marketing_api({"entity_type":"CAMPAIGN","action":"UPDATE","params":{"status":"PAUSED"}})
└ PREVIEW · nothing has changed yet
Brand Video · Broad ACTIVE → PAUSED
Lookalike · 2% ACTIVE → PAUSED
Allow Codex to run zoma.call_meta_marketing_api with confirm: true?YesAlwaysNo
⏎ send ⌃C quitzoma connected
How did Meta do last week? Keep it short.
Called Zoma · call_meta_ads_insights_api
Spend$3,235
Leads64
CPA$50.55
Retargeting · Web had your best CPA at $22.78. The two orange campaigns are above $80.
+Ask anything
Setup
Your agent starts it. You finish it in the browser.
Zoma
Which ad accounts can your agent use?
Acme · Mainact_…4417
Acme · Retargetingact_…8820
Acme · Agency testact_…1093
Continue
Next: save a card with Stripe. Nothing is charged while Zoma is in beta.
> set up zoma
⏺ zoma - zoma_status (MCP)
⎿ Next step: approve this device
⏺ Open the link and enter this code:
K7QF-2M9X
I'll keep checking and tell you when it's done.
⏺ zoma - zoma_status (MCP)
⎿ All set · Meta connected · 2 ad accounts · card saved ($0 charged)
⏺ You're connected. Ask me anything about Acme's ads.
Guardrails · the same ones Emma uses
Preview. Approve. Confirm. Read back.
- 1PreviewNothing reaches Meta yet.
- 2You approveSee the exact change and cost.
- 3ConfirmSingle-use token, 15 minutes.
- 4Read backCONFIRMED or UNCONFIRMED. Never assumed.
⏺ zoma - call_meta_marketing_api (MCP)(confirm: true, preview_token: "v1.1793813700.9f3c…")
⎿ CONFIRMED · read back from Meta
campaign_id 120215447301920410
status PAUSED
daily_budget $50.00 USD
⏺ Done. "Fall Offer · Leads" is in Meta and paused. Nothing spends until you ask me to activate it, and that gets its own preview.
AgentWeb
From the team behind Emma.
Free while in beta.
Usage tracked. Nothing charged. Revoke any time.
$ claude mcp add --transport http zoma https://api.agentweb.pro/api/meta-toolkit/mcp