POPJAM Logo
Remote MCP server · Streamable HTTP

POPJAM MCP Server:
a Marketing Engine
for Your AI Agent

One URL gives Claude, Cursor, ChatGPT, or any MCP client, POPJAM's campaign engine: brand research, audience discovery, ad creatives, and persona simulation as 14 curated tools your agent calls directly.

https://api.popjam.io/mcp
connected · popjam · 14 toolsSample session

you  "Make ads for acme-coffee.com and tell me which audience wins."

→ start_campaign(website_url="https://acme-coffee.com")

   task 7f3a scheduled · lab created · ~40 credits estimated

→ wait_for_task("7f3a")

   RUNNING · brand & catalog resolved: Acme Coffee, 12 products

   RUNNING · 2 audiences defined · 20 personas simulated

   RUNNING · 4 image creatives generated · reactions simulated

   COMPLETED in 6m 12s

→ get_campaign_results(lab_session_id)

   top insight: "Morning Ritual" × Busy Professionals, engagement 82/100

agent Busy Professionals respond best (82/100). The ritual angle beat the discount angle in every panel. I'd scale that one.

What Is the POPJAM MCP Server?

The Model Context Protocol is the open standard that lets AI copilots call external tools. The POPJAM MCP server puts our whole marketing engine behind that standard: your agent can research a market, define audiences, draft ad concepts, launch the full campaign funnel, and read simulated persona reactions, all from the same conversation where you do everything else.

Everything lands in your POPJAM workspace. A campaign your agent starts over MCP shows up as a lab session in the web app (same brand, same audiences, same creatives, same results), so your team can pick up in the browser exactly where your agent left off.

Fourteen Curated Tools, Not an API Mirror

Purpose-built for LLMs: a small set of self-contained operations with clear contracts, because curated tools outperform dozens of auto-converted endpoints.

Drafting

Stateless, return in seconds

  • research_topic

    Quick web research with live sources.

  • fetch_website

    Scrape a landing page or competitor URL to clean text.

  • define_audiences

    Turn a campaign brief into structured target audiences.

  • generate_ad_concepts

    Draft on-platform ad creatives (headline, body, CTA) from a brief.

Background work

Return a task handle immediately, run for minutes

  • start_campaign

    The flagship: from one URL, run the entire funnel (brand & catalog, market research, audiences, persona panels, image creatives, simulated reactions, improved variants), persisted to a lab in your workspace.

  • start_deep_research

    Slow, multi-source deep research as a background task.

Task tracking

Follow background work without blocking a turn

  • wait_for_task

    Long-poll a task for up to 50 seconds and get its progress log.

  • get_task

    Snapshot one task: status, progress narrative, result.

  • list_tasks

    See what's running now or what finished while you were away.

  • cancel_task

    Stop a running task; persisted work stays in place.

Workspace & copilot

Read results, resume labs, converse with memory

  • get_campaign_results

    Audiences, ads, and insights from a lab; works mid-run with partial results.

  • list_labs

    Your lab sessions (campaign workspaces), newest first.

  • get_lab

    One lab's working state, audiences, and recent tasks.

  • copilot

    Talk to POPJAM's in-product agent inside a lab. It knows the lab's brand, ads, and results, keeps durable conversation memory shared with the web app, and can trigger any generation as a background task.

Minutes-Long Work Never Blocks a Turn

A full campaign takes 10–15 minutes. Nothing slow runs in-request, because heavy work returns a task handle, and your agent follows the same three-call pattern every time.

1
start_campaign(website_url)

Launch and get a handle

Returns in seconds with a task_id, the lab it will write to, and the credit estimate. The funnel (brand research, audiences, persona panels, creatives, simulations, variants) runs in the background on our infrastructure.

2
wait_for_task(task_id)

Follow the progress log

Long-polls up to 50 seconds per call and returns a human-readable narrative of what the run is doing. A campaign typically takes 10–15 minutes, so your agent checks in a few times, and it can keep doing other work in between.

3
get_campaign_results(lab_session_id)

Read results, even mid-run

Audiences, ads, and simulation insights, readable at any time. While the campaign is still running you get whatever exists so far; when it finishes, you get the full picture: the same data your team sees in the web app.

Connect in Under a Minute

Paste one URL, sign in with your POPJAM account in the browser, done.

Claude Code

One command in your terminal, then the OAuth sign-in pops in your browser on first use.

claude mcp add --transport http popjam https://api.popjam.io/mcp

Claude Desktop & claude.ai

Settings → Connectors → Add custom connector, then paste the server URL.

https://api.popjam.io/mcp

Cursor, VS Code & others

Add the URL as a remote MCP server in your client's MCP settings and authenticate.

https://api.popjam.io/mcp

Same Workspace, Same Credits, One More Door

The MCP server isn't a separate product: it's another door into your POPJAM organization. Labs your agent creates appear in the web app for your whole team; the copilot tool shares its conversation memory with the in-product chat; credits come from the same balance, with the estimate returned the moment a run launches. Sign up once, and every surface, browser, agent, or both, works on the same campaigns.

Frequently Asked Questions

What is the POPJAM MCP server?

A remote Model Context Protocol server at https://api.popjam.io/mcp that exposes POPJAM's marketing engine to AI copilots. Instead of mirroring our REST API, it offers 14 curated tools: quick drafting (research, audiences, ad concepts), the full campaign funnel as a background run, task tracking, and a copilot with durable per-lab memory. Your agent calls them like any other tool.

Which AI clients can connect?

Any MCP client that supports remote servers over Streamable HTTP: Claude Code, Claude Desktop and claude.ai (as a custom connector), ChatGPT, Cursor, VS Code, Windsurf, Cline, Goose, and others. You paste one URL, authenticate in the browser, and the tools appear.

Do I need a POPJAM account?

Yes. The server operates on your organization's workspace: labs, audiences, ads, and simulation results are persisted there and shared with the web app. Connecting signs you in with your POPJAM account; the free tier includes 500 credits with no credit card.

Does using the MCP server cost anything?

The server itself is free. Campaign runs spend POPJAM credits exactly like the web app. start_campaign returns the credit estimate in its immediate response, and a run can be stopped at any point with cancel_task (work already persisted stays in place). Quick drafting tools like research_topic and define_audiences are free to call.

Won't a 15-minute campaign time out my agent?

No, because nothing slow runs inside a request. start_campaign returns a task handle in seconds; your agent follows up with wait_for_task, which long-polls up to 50 seconds per call (safely under client tool timeouts) and returns a human-readable progress log. get_campaign_results works at any time, returning partial results while the run is still going.

How is this different from POPJAM's agent skills?

The agent skills (github.com/popjam-io/skills) are open-source instruction sets that run POPJAM-style pipelines locally inside your agent, writing to files. The MCP server runs POPJAM's hosted engine: real media generation, persisted lab sessions your team sees in the web app, credits, and a copilot that remembers every conversation. Skills are the run-it-yourself edition, while the MCP server is the product with a plug on it.

Ready to test your ads before you spend?

Generate, validate, and launch ad creatives in one workflow. Start free with 500 credits.