Run LinkedIn Ads from Codex CLI
Manage LinkedIn Ads campaigns inside OpenAI Codex CLI — 28 tools, OAuth setup in about 5 minutes, no dashboard switching.
-
28 LinkedIn Ads tools, all in Codex CLI
-
Paused-by-default. Cannot delete campaigns.
-
OAuth setup in ~2 minutes
See it in action
› Pull my LinkedIn Ads performance for the last 60 days. Show spend, clicks, conversions, and cost per lead by campaign. Highlight any campaigns with cost per lead above $75 and tell me which to pause.
LinkedIn performance audit — CPL-focused audit that surfaces underperforming campaigns against your B2B target.
Overview
Adspirer is the MCP server that connects OpenAI Codex CLI to your LinkedIn Ads ad accounts, turning campaign management into a chat conversation. OpenAI's Codex CLI — script-friendly agent loop with MCP support. On the platform side, 28 tools cover sponsored Content, Lead Gen Forms, Conversation & Message Ads. Adspirer reads and writes — pull performance reports, audit launch sponsored content campaigns, launch new campaigns, pause underperformers, and reallocate budget — all from chat. New campaigns are always created paused so you can review before they go live, Adspirer cannot delete existing campaigns by design, and the free tier (15 tool calls / month, no credit card) is enough to run a full audit before you pay. Setup takes about 5 minutes via a JSON config entry.
Safety guarantees
-
New campaigns always created paused for review
-
Adspirer cannot delete existing campaigns
-
Budget changes need explicit confirmation
-
OAuth 2.1 + PKCE — passwords never seen
How it works
How it works
Codex CLI
You ask in chat
Adspirer
28 tools, paused-by-default
LinkedIn Ads
Live data, paused for review
Step 01
Connect
Paste the MCP URL into Codex CLI, OAuth into LinkedIn Ads.
Step 02
Manage
Ask in chat. Adspirer routes through 28 LinkedIn Ads tools.
Step 03
Scale
Switch accounts in chat. Same audits across every client.
What you can do
28 tools across LinkedIn Ads. The ones you'll use most:
-
Launch Sponsored Content campaigns — Build LinkedIn image and carousel campaigns from a brief — Adspirer pulls your company page, validates creatives, and creates the campaign **paused** so you review before going live.
-
Target by job title & seniority — `search_linkedin_targeting` covers all 19 LinkedIn facets: job titles, functions, seniority, industries, company size, skills, groups, schools, and more. Target decision-makers, not students.
-
Research B2B audiences from a competitor — Feed `research_business_for_linkedin_targeting` a competitor name (e.g., HubSpot) and Adspirer suggests the job titles, industries, and seniority levels that match their customer base.
-
Pull cost-per-lead by campaign — `get_linkedin_campaign_performance` returns spend, clicks, conversions, and CPL by campaign or campaign group — perfect for the "which campaigns are below my $75 CPL target?" prompt.
-
Refresh creative on live ads — `add_linkedin_creative`, `add_linkedin_carousel_creative`, and `update_linkedin_creative` let you rotate copy and imagery on running campaigns without recreating them.
-
Pause & resume campaigns — Pause campaigns or ad groups by name from chat, resume them later. Adspirer **cannot delete** existing campaigns — and if a creation fails mid-flow, it auto-archives the orphan to prevent duplicates on retry.
-
Reallocate budget by CPL — `optimize_linkedin_budget` recommends shifts toward your lowest-CPL campaigns. You confirm before any budget update — Adspirer never raises spend without an explicit "yes".
-
Track conversions & lead events — `manage_linkedin_conversions` sets up and tracks conversion events — form fills, downloads, demo requests — so optimization runs against real lead signal, not just clicks.
Campaign types
Every LinkedIn Ads format Adspirer supports — request one in chat.
Sponsored Content (Image)
Single-image sponsored posts in the LinkedIn feed. The most common B2B format — strong for thought leadership and demo CTAs.
Sponsored Content (Carousel)
Multi-card carousel posts in feed. Great for breaking down a multi-step product story or showcasing case studies.
Lead Gen Forms
On-platform forms pre-filled with LinkedIn profile data. Higher completion rates than off-platform landing pages.
ABM (Account-Based)
Target specific company names — perfect for account-based marketing programs against a named-account list.
Campaign Groups
Organize multiple campaigns under one group with shared budget and naming. `add_linkedin_campaign_to_group` adds new audiences without recreating the structure.
More prompts to try
Codex handles long-running agent loops; brief it like you would Claude Code.
Competitor-based targeting — Reverse-engineers a competitor's ICP into a ready-to-use targeting spec.
Diagnose a CPL spike — Anomaly diagnosis on a single campaign with a clear before/after CPL.
B2B targeting research — Builds a tight B2B targeting spec with audience-size sanity check.
Launch a sponsored content campaign — End-to-end Sponsored Content campaign with B2B targeting and validation.
Optimize budget across campaign group — CPL-driven budget reallocation within a single campaign group.
Who this is for
Each Monday, ask Codex CLI to pull last week's LinkedIn Ads performance, surface campaigns running below your ROAS threshold, and recommend creative refreshes for fatigued ads.
Replaces a 60–90 minute manual review with a 5-minute chat, and surfaces problems before they tank ad-set performance.Switch context between client accounts in chat. Run the same audit prompt across each, paste the chat into your weekly client report. Multi-account is built in — no extra seats per account.
Cuts cross-account reporting from a half-day per account to ~10 minutes total.Brief Codex CLI in plain English with budget, audience, and creative URL. Codex CLI validates inputs against LinkedIn Ads's requirements, builds the campaign paused, and walks you through what to review before launching.
No need to learn LinkedIn Ads's dashboard UI; campaign goes live correctly the first time.Compare & decide
Adspirer vs alternatives
For running LinkedIn Ads from Codex CLI.
| Adspirer | DIY MCP server | Legacy SaaS dashboard | |
|---|---|---|---|
| Setup time | ~5 minutes via a JSON config entry | 2–4 hours building MCP server | 30–60 min onboarding + sales call |
| Cost — entry tier | Free (15 calls / mo) | Hosting + maintenance | $200–500 / mo minimum |
| Works inside Codex CLI | Yes — a JSON config entry | Yes (if you build it correctly) | No — external dashboard only |
| Multi-account | Yes — switch in chat | Manual per-account auth | Yes — but each account billed |
| Read + Write | Full read + write (create / pause / update) | Whatever you build | Mostly read-only or seat-gated writes |
| Safety: cannot delete | Hard-coded — no delete tool | Up to you | Varies |
| Pricing transparency | Public — $0 / $49 / $99 / $199 | Self-hosted | Often quote-only |
Pricing
Start free. Upgrade if you outgrow it.
Configure
Required: OpenAI API access. Most users finish in about two minutes.
Show setup steps for Codex CLI
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.
FAQ
Setup
Capabilities
Ad formats
Workflows
Compare
Safety & control
Related integrations
Same Codex CLI, different platform — or same LinkedIn Ads, different AI client.
Codex CLI × other platforms
LinkedIn Ads × other AI clients
- ChatGPT × LinkedIn Ads →
- Claude × LinkedIn Ads →
- Claude Code × LinkedIn Ads →
- Cursor × LinkedIn Ads →
- Windsurf × LinkedIn Ads →
- Gemini CLI × LinkedIn Ads →
- OpenClaw × LinkedIn Ads Soon
- Manus × LinkedIn Ads Soon
Go deeper
Ready to connect Codex CLI to LinkedIn Ads?
Start free — 15 tool calls per month, no credit card. Setup takes about 2 minutes.
Try Adspirer free