Codex CLI logo
Meta Ads logo
AI Client · Codex CLI Ad Platform · Meta Ads 36 tools

Run Meta Ads from Codex

Autonomous Meta ad management from OpenAI's Codex CLI — 36 Meta tools, scheduled agents, daily creative-fatigue and pacing checks while you sleep.

15 tool calls / month free · No credit card · Setup in ~2 minutes

Adspirer is the MCP server that connects OpenAI's Codex CLI to your Meta (Facebook + Instagram) ad accounts. Most AI clients are interactive — you ask, they answer. Codex is autonomous: define a Meta task once (e.g., "every morning, pull yesterday's spend, ROAS, and frequency by ad set, flag fatigue or pacing anomalies, send me a summary"), and the agent runs it on your schedule. Run the installer (`bash <(curl -fsSL ...codex/adspirer/install.sh)`), authenticate with `codex mcp login adspirer`, and Codex gets all 36 Meta tools — image / video / carousel / Reels / DCO campaign creation, creative-fatigue detection, audience research, placement optimization, lead-form pulls. Critically, even in autonomous mode Adspirer's safety rules hold: every new campaign creates paused, budget changes require explicit confirmation, and Adspirer cannot delete campaigns. Free tier (15 calls / month) is enough for ~3-7 daily check-ins.

What you can do

36 tools across Meta Ads. The eight you'll use most:

Launch new campaigns

Build image, video, carousel, DCO, or Reels campaigns from a brief. Adspirer validates creative against Meta's requirements, plans the ad sets, and creates everything paused so you review before going live.

Pause underperformers

Pause individual ads, ad sets, or full campaigns by name from chat. Resume them later just as easily — Adspirer cannot delete existing campaigns (hard-coded safety).

Audit creative fatigue

Surface ads that have been running 14+ days with declining CTR — Adspirer recommends which creatives to refresh before they tank performance.

Find wasted spend

Flag campaigns running under your ROAS threshold so you can pause or reallocate budget. Works across active and paused campaigns.

Research audiences

Search Meta's targeting catalog by interest, demographic, or behavior. Browse existing custom audiences (lists, lookalikes, website, engagement) before building new ones.

Pull lead-form submissions

List configured lead forms and pull recent submissions, grouped by campaign — route them into your CRM workflow without leaving chat.

Optimize placements & budget

Compare CPA across Feed, Stories, Reels, Marketplace, and Audience Network. Reallocate budget toward winning ad sets — Adspirer never increases an existing budget without explicit confirmation.

Diagnose anomalies

When CPA spikes or CTR drops, ask why. Adspirer inspects audience changes, creative rotation, and platform-level events to explain the cause and recommend a fix.

Campaign types you can launch

Every Meta Ads format Adspirer supports — request one in chat and Codex CLI builds the campaign paused for review.

Image campaigns

Single-image ads across Feed, Stories, and Marketplace. 1080×1080 minimum, validated before launch.

Video campaigns

Video ads up to 240s, 1:1 / 4:5 / 9:16 aspect ratios. MP4 or MOV, validated against Meta's spec.

Carousel campaigns

2–10 cards per ad, each with their own creative + headline + link. Great for product catalogs.

Reels campaigns

Vertical video for Instagram Reels and Facebook Reels. 9:16 aspect, optimized for mobile feeds.

Lead Gen Forms

On-platform forms that capture leads inside Facebook / Instagram — no landing page needed.

DCO (Dynamic Creative Optimization)

Provide multiple creative variants; Meta auto-mixes images, headlines, and descriptions to find winners.

Sample prompts

Codex handles long-running agent loops; brief it like you would Claude Code.

Meta performance audit — A monthly audit that surfaces which campaigns to keep, kill, or scale.

Meta performance audit
Pull my Meta Ads performance for the last 30 days. Show spend, conversions, CPA, and ROAS by campaign. Flag any campaigns with ROAS below 2.0.

Creative fatigue check — Catch fatigued ads before they drag down ad-set performance.

Creative fatigue check
Check my Meta campaigns for creative fatigue. Find ads that have been running 14+ days with declining CTR. Recommend which creatives to refresh first.

Launch an image campaign — End-to-end image campaign creation, with creative validation first.

Launch an image campaign
Create a Meta image campaign: - Product: Organic skincare line for women 25-45 - Target: Women interested in clean beauty, sustainability, wellness - Budget: $30/day - Creative: <Google Drive link> - Objective: Website conversions (Add to Cart) Validate the creative first, then build the campaign — keep it paused.

Optimize placements — Move spend toward the placements that are actually converting for you.

Optimize placements
Analyze my Meta ad placements for the last 14 days. Which placements have the best CPA — Feed, Stories, Reels, Marketplace, or Audience Network? Recommend budget shifts.

Lead-form pull — Quick pull of lead-gen data without leaving chat.

Lead-form pull
List my Meta lead forms and pull the last 50 submissions from the highest-volume one. Group by campaign and show submission rate.

Diagnose a CPA spike — Anomaly diagnosis that explains *why*, not just *that*.

Diagnose a CPA spike
My CPA on the "Spring Sale 2026" Meta campaign jumped 40% in the last 5 days. Diagnose what changed — audience, creative, placement — and tell me what to fix.

Who this is for

Real workflows from people running Meta Ads through Codex CLI.

Engineering team at a DTC brand running Meta as a 24/7 channel

Configure a Codex agent with default_prompt: "every 6 hours, scan all active Meta ad sets — flag any with frequency > 3, 7-day CTR decline > 25%, or CPA spike > 40% vs previous week. Post findings to #meta-alerts." The agent loops; humans approve fixes.

Outcome: Effectively a 24/7 Meta SRE — fatigue and pacing problems get caught the same day they emerge, not at the next weekly QBR.

Lean growth team with no full-time media buyer

Schedule a daily Codex agent: "each morning at 8am, pull last 24h Meta performance, compare to 7-day average, flag any campaign with CPA > 30% increase. Email me a one-paragraph summary before standup." No dashboard logins; the inbox is the dashboard.

Outcome: Replaces a daily 20-minute dashboard check with a 30-second email read; the team only opens Ads Manager when the agent flags something.

Solo founder running Meta lead gen alongside engineering

Configure a weekly Codex agent for the Meta lead-form workflow: "every Monday, pull the last 7 days of submissions from all Meta lead forms, deduplicate against Hubspot exports in `~/exports/`, write the new-leads list to `leads/$(date).csv`." Agent runs unattended.

Outcome: Lead-form data lives next to the rest of the founder's data without a Zapier subscription or a manual CSV download every week.

Agency ops engineer running Meta for multiple clients

One Codex agent per client, each with its own `~/.codex/agents/{client}.toml` and `switch_primary_account` set per client. Default prompt: "weekly Monday: wasted-spend + creative-fatigue audit for {client}, write to `clients/{client}/meta-{date}.md`." All clients audited unattended; agency ops reviews the markdown.

Outcome: Weekly Meta audits across 5+ clients run in parallel without human time; the ops engineer reviews finished markdown instead of pulling each account live.

Adspirer vs alternatives

For running Meta Ads from Codex CLI.

Capability Adspirer (this page) DIY MCP server Legacy SaaS dashboard
Install One-line installer + `codex mcp login adspirer` Build MCP server, write Codex agent No CLI / agent support
Cost — entry tier Free (15 calls / mo) Hosting + maintenance $200-500 / mo minimum
Autonomous / scheduled runs Yes — Codex agents run on cron-like schedules Whatever you build Vendor-locked workflows
Multi-client agent configs Yes — one TOML per client Manual Yes — but each account billed
Brand-workspace pattern `$adspirer-setup` → AGENTS.md Manual No equivalent
Write capability Image / video / carousel / Reels / DCO, paused on create Whatever you build Mostly read-only
Autonomous safety Paused-on-create + budget-confirmation hard-coded Up to you Varies
Anomaly alerting Native (`detect_meta_creative_fatigue`, `explain_meta_anomaly`) Build it Sometimes

Pricing

Start free. Upgrade if you outgrow it.

Free Forever

$0

15 / mo

All platforms. ChatGPT & Claude access. No credit card.

Start free →

Plus

Recommended

$49 / mo

150 / mo

Performance analysis + standard campaigns.

Compare Plus →

Pro

$99 / mo

600 / mo

AI optimization, bulk ops, deeper diagnostics.

Compare Pro →

Max

$199 / mo

3,000 / mo

Priority support (24h SLA), custom integrations.

Compare Max →

How it works

From sign-up to your first launched campaign in three steps.

1

Connect

Paste the Adspirer MCP URL into Codex CLI, complete OAuth in your browser, and link your Meta Ads account. About 2 minutes.

2

Manage

Ask Codex CLI for an audit, launch a new campaign, pause underperformers, or pull a report. Adspirer handles the 36 Meta Ads tools behind the scenes.

3

Scale

Switch between accounts in chat, run the same audit across clients, and let agency SOPs live in your AI assistant — no extra dashboard logins.

Frequently asked questions

About running Meta Ads from Codex CLI.

Can a Codex agent actually launch Meta campaigns autonomously?

No — and that's the point. Even when a Codex agent runs unattended, Adspirer enforces hard-coded safety rules: every create_meta_image_campaign / create_meta_video_campaign / create_meta_carousel_campaign call ships paused, budget changes via update_meta_campaign require user confirmation, and there is no delete tool. The agent analyzes, recommends, and prepares — you approve final spending decisions manually.

How does Codex compare to Claude Code for Meta Ads?

Claude Code is interactive — you sit at the terminal, brief it, watch it run. Codex is autonomous — you write a default_prompt once, the agent runs on a schedule. Use Claude Code when you want to drive a one-off Meta launch hands-on; use Codex when you want a daily fatigue check, weekly wasted-spend audit, or anomaly monitor running unattended. Many teams use both — Claude Code for ad-hoc work, Codex for the recurring beat.

How many Adspirer tool calls does a Codex agent burn per day?

Typical autonomous Meta agents use 2-5 tool calls per run. A daily 6am performance check (1 call), a weekly Monday wasted-spend audit (3-4 calls), and a 6-hour anomaly monitor (4 runs/day × 1 call) costs roughly 200-300 calls / month — Plus tier ($49/mo, 150 calls) handles a single brand, Pro ($99/mo, 600 calls) covers multiple brands or higher cadence.

Can I run different Codex agents for different Meta accounts?

Yes. Create separate config files in ~/.codex/agents/ — one per client or brand — and each agent uses switch_primary_account to scope itself to a specific Meta ad account. A common agency pattern: one agent per client running weekly audits, output written to clients/{client}/meta-audit-{date}.md, all running on the same cron without colliding.

Does Adspirer generate Meta creatives (images / videos)?

No. Adspirer does not generate creative assets. You provide a public URL to your image or video (Google Drive, Dropbox, S3, or any public link) and Adspirer validates that it meets Meta's requirements before launching the ad.

What ad formats does Adspirer support on Meta?

Image, video, and carousel campaigns are fully supported. Lifetime budgets, end dates, placement controls, and Dynamic Creative Optimization (DCO) are all available. Stories, Reels, and Audience Network placements are controlled at the ad-set level.

Can Adspirer pause or delete my existing Meta campaigns?

Adspirer can pause campaigns when you explicitly ask it to, but it cannot delete existing campaigns or ad sets. New campaigns are always created paused so you can review before they go live.

How does Adspirer handle the Meta campaign-creation workflow?

Meta requires a 6-step sequence: verify the connection → search targeting → choose campaign type (image/video/carousel) → discover existing assets → validate creatives → create campaign. Adspirer enforces this order — skipping a step would cause Meta's API to reject the campaign.

What's the minimum budget?

Meta requires $5/day per ad set. Adspirer recommends $20+/day for meaningful test data and $30/day split across 2-3 ad sets to find winners faster.

How are leads from Meta lead forms surfaced?

Use list_meta_lead_forms to see configured forms, then get_meta_lead_form_submissions to pull recent submissions. Adspirer doesn't push leads into your CRM directly — it returns the submission data so you can route it through Zapier, Make, or a custom integration.

Connect Codex CLI to Adspirer

For technical readers — the exact steps. Most users finish this in about 2 minutes. Required: OpenAI API access.

Edit your Codex MCP config

Add an adspirer entry with URL https://mcp.adspirer.com/mcp and OAuth auth.

Authenticate via OAuth

Run any Codex command — the first invocation triggers the OAuth flow.

Related integrations

Same Codex CLI, different platform — or same Meta Ads, different AI client.

Go deeper

Ready to connect Codex CLI to Meta Ads?

Start free — 15 tool calls per month, no credit card. Setup takes about 2 minutes.

Try Adspirer free

Last updated April 28, 2026.