Back to Blog
Six-step creative loop diagram: pull ads from Meta Ads MCP, tag with Jev, join in code, brief with Claude, generate with Shhots AI, pre-flight with Jev

Jev AI (TypeSafe AI) + Meta Ads MCP: A 6-Step Creative Loop (2026)

#Guide #AI Ads #MCP

Disclosure: Shhots AI is our product. This is a reference design built from each tool's public documentation. We have not published an end-to-end run of this loop yet, and every number below says where it comes from.

How to use Jev, Meta’s official Ads MCP and Shhots AI inside Claude Code to find which hooks and formats win in your own ad account, then generate more of them. A reference design from a media buyer, with the cost math and the limits.

By Rajat Dangi. Last updated: September 2026.

Jev can tag every ad in your Meta account by hook, format and awareness stage for a fraction of a cent per ad. Meta’s official Ads MCP gives Claude the spend, CPA and ROAS for those same ads. Join the two in code and you get a table of which creative patterns win in your account. Claude turns that table into briefs and Shhots AI generates the new creatives. Six steps, three MCP servers, one Claude Code session.

What is Jev AI?

Jev is the first model from TypeSafe AI, released in early access on September 15, 2026. TypeSafe was founded by former OpenAI researcher Diogo Almeida with Erik Gafni and Sasha Sheng. It came out of two years in stealth with a $40 million seed round led by DCVC.

Jev does not write text. You send it a state (any text or JSON) plus a set of typed questions, and it returns answers your code can act on directly.

Question typeWhat it returnsAd example
ChoiceA probability for each option, plus a confidence scoreWhich hook type opens this ad?
ScoreA position on ordered levels, plus a confidence scoreHow strong is the offer: weak, medium or strong?
NoulThe probability that a statement is trueDoes the first line name a specific problem?

Every question about one state is answered in a single parallel pass. Asking eight questions about an ad takes about as long as asking one, and you pay only for the extra input tokens.

What does Jev cost, and how do you get access?

AttributeValue (as of September 2026)
Input price$0.042 per 1M input tokens
Output price$0
Free tierNot disclosed
Latency70 to 500 ms per request (vendor-reported)
Context limit64,000 tokens per request, 32,000 for the state plus the longest question
Direct API accessEarly access, waitlist
Routes with no waitlistOpenRouter, Vercel AI Gateway, Cloudflare AI Gateway
Output formatTyped answers and probabilities only, no explanations

Price and context limits checked against the TypeSafe model docs on September 21, 2026.

One gateway trap: the Vercel AI SDK spells the yes/no type boolean instead of noul. Code copied between gateways breaks on that.

TypeSafe also says it cannot yet prove the launch price is unsubsidized. Treat $0.042 as today’s price.

Why isn’t tagging competitor ads with Jev enough?

The most shared Jev demo broke down 724 live competitor ads from 37 brands in 40 seconds for $0.09. That claim comes from Matt Berman on X and has not been independently reproduced.

It tells you what competitors run. It says nothing about what works. The Meta Ad Library shows no spend, CPA or ROAS for ordinary commercial ads.

The data is also harder to get than the demos suggest. Meta’s official Ad Library API returns commercial ads only when the audience is in the EU or UK. A US-only competitor ad returns nothing through it.

A team that copies a competitor’s pattern without the numbers behind it is usually paying to run that competitor’s test, not its winner. A brand that launches 20 variations on a Tuesday is hunting for one concept that survives, and the Ad Library shows the batch, not the survivor. The one proxy it does give is days running: an ad still live after 60 days is more likely to be profitable than one launched last week, which is why the marketer thread below tags competitor ads by that field. Even a real winner arrives without the offer, audience, landing page and account history that made it work, so the copy lands in a different system and gets a different result.

The fix is to tag your own ads, where the performance data exists.

What does Meta’s official Ads MCP give Claude?

Meta launched its Meta Ads AI connectors on April 29, 2026, in open beta. For Claude this is a remote MCP server with 29 tools across performance reporting, campaign management, catalog management and signal diagnostics.

The reporting tools return spend, impressions, clicks, conversions, frequency, ROAS and breakdowns at account, campaign, ad set or ad level. The connector is free during the beta.

Two cautions. Rollout is gradual, and some accounts show the connector as disabled after a successful setup. Third-party guides also list different server URLs, so take the URL from Meta’s help page.

How does the 6-step loop work?

StepToolJob
1. PullMeta Ads MCPPerformance and creative text for every ad
2. TagJevHook, awareness stage, format and style for every ad
3. JoinCodeGroup tags against CPA and ROAS
4. BriefClaudeBriefs for winning patterns and untested gaps
5. GenerateShhots AI MCPNew video and image creatives
6. Pre-flightJevCheck each creative against its brief

Each tool does the one thing it is good at. Jev judges, code counts, Claude plans and Shhots produces.

Setup: three MCP servers in Claude Code

# 1. Meta Ads (official). Paste the URL from Meta's help page.
claude mcp add --transport http meta-ads <META_ADS_MCP_URL>

# 2. Jev (community server, not maintained by TypeSafe)
claude mcp add --scope user jev -e TYPESAFE_API_KEY=... -- uvx --from git+https://github.com/blakestone-x/[email protected] jev-mcp

# 3. Shhots AI (Pro and Scale plans). Sign-in opens in the browser on first use.
claude mcp add --transport http shhots https://mcp.shhots.ai/mcp/

Several community MCP servers wrap Jev. None is maintained by TypeSafe, so read the code before you hand one your API key. If you are still on the waitlist, the rahulrajaram/jev-mcp server reads an OPENROUTER_API_KEY and calls OpenRouter’s decisions endpoint instead of TypeSafe’s API.

TypeSafe publishes its own agent skill, typesafe-ai, which teaches an agent how to pick question types and structure state. Install it alongside the server.

Step 1: Pull ad-level performance and creative

Ask Claude:

Using the Meta Ads MCP, pull every ad that spent money in the last 90 days.
For each ad include: ad_id, format, spend, purchases, CPA, ROAS, CTR,
headline and primary text. Save it as ads.csv.

Jev reads text and JSON. It cannot watch a video. For video ads the hook lives in the first seconds of footage, so each one needs a short text description before Jev can tag it: the opening line of the voiceover, the on-screen text, and one sentence on what the viewer sees. Add these as a video_opening column.

If the connector does not return creative copy for an ad, export it from Ads Manager and merge it on ad_id.

Step 2: Tag every ad with Jev

Each ad’s row becomes the state. Ask all questions in one request:

{
  "model": "jev-latest",
  "state": {
    "headline": "...",
    "primary_text": "...",
    "video_opening": "..."
  },
  "questions": {
    "hook": {
      "type": "choice",
      "instructions": "Which hook type opens this ad?",
      "criteria": {
        "problem": "Names a pain or frustration the buyer has",
        "demo": "Shows the product working",
        "social_proof": "Leads with reviews, results or customer numbers",
        "offer": "Leads with price, discount or bundle",
        "curiosity": "Opens with a question or unexpected claim"
      }
    },
    "awareness": {
      "type": "choice",
      "instructions": "Which awareness stage is this ad written for?",
      "criteria": {
        "problem_aware": "Knows the problem, does not know the solutions",
        "solution_aware": "Knows solutions exist, does not know this product",
        "product_aware": "Knows this product and needs a reason to buy now"
      }
    },
    "creator_style": {
      "type": "noul",
      "instructions": "The ad is presented by a person speaking to camera in a creator or UGC style"
    }
  }
}

The cost is close to zero. Assume about 1,500 input tokens per ad including the questions. At $0.042 per 1M tokens that is $0.000063 per ad, or about $0.06 for 1,000 ads. This is our arithmetic at list price, not a measured run.

Save each answer with its confidence. Send low-confidence tags to a human instead of trusting them.

Step 3: Join tags with performance in code

Jev is a one-pass chooser with no scratchpad. Counting, arithmetic and date comparisons are unreliable, and the answer still comes back with a confident probability. So every number in this step comes from code.

import pandas as pd

ads = pd.read_csv("ads_tagged.csv")
MIN_ADS = 10        # fewer ads than this and one outlier sets the cell's CPA
MIN_PURCHASES = 50  # Meta's own learning-phase threshold, applied per cell

table = (
    ads.groupby(["hook", "awareness", "creator_style"])
       .agg(ads=("ad_id", "count"),
            spend=("spend", "sum"),
            purchases=("purchases", "sum"))
       .query("purchases > 0")
       .assign(cpa=lambda d: d.spend / d.purchases)
       .sort_values("cpa")
)
print(table[(table.ads >= MIN_ADS) & (table.purchases >= MIN_PURCHASES)])

Trust a cell only when it holds at least 10 ads and 50 purchases in total. Fifty is the number of optimization events Meta says an ad set needs in a seven-day period to leave the learning phase, so it is a reasonable floor for a pattern too. Below it, one lucky ad sets the cell’s CPA.

The output is a ranked list of creative patterns by CPA in your own account. Cells with too few ads are noise and stay out of the briefs.

Step 4: Turn the table into briefs with Claude

Ask for two kinds of brief:

  • Scale briefs: new angles inside the two or three lowest-CPA cells.
  • Gap briefs: combinations the account has never tested, such as a problem hook for product-aware buyers if no ad has tried it.

Every brief should name the product, hook type, awareness stage, format, length, aspect ratio, opening line and CTA. Step 6 checks the creative against exactly these fields.

Step 5: Generate the creatives with Shhots AI

The Shhots AI MCP server makes video ads in seven formats (UGC, cinematic, animated, product speaking, storefront, lifestyle and unboxing ASMR) at 5, 10, 15 or 30 seconds in 9:16, 1:1 or 16:9, plus product photoshoots and image ads in four styles (studio, lifestyle, editorial, bold) from one reference photo. Claude calls it straight from the briefs and shows the credit cost before anything renders. The Claude AI video generator guide walks through a full session.

For scale briefs, the shhots-creative-refresh skill in github.com/shhots/shhots-claude-skills turns one winner into variants that each change a single variable.

Budget the batch before generating. Video is where the money goes.

PlanPriceCredits per month15-second UGC video ads (826 credits each)Product photoshoots (45 credits per 4-image shoot)
Pro$49/mo6,0007133
Scale$99/mo12,00014266

Prices and credit rates checked against the Shhots pricing page on September 21, 2026. The MCP server is available on Pro and Scale only.

Step 6: Pre-flight every creative with Jev

Before anything goes to Ads Manager, give Jev the brief plus the generated script, caption and on-screen text as one state. Ask:

  • Does the opening match the brief’s hook type? (Choice)
  • Is the product named in the first line? (Noul)
  • Does the copy make a before-and-after, health or income claim? (Noul)

Regenerate anything that fails or comes back with low confidence.

Jev checks text. It never sees the pixels, so a person still watches every video before upload.

If your Meta connector supports ad creation with uploaded media, Claude can create the passing creatives as paused ads for your approval. Check that your connector supports this before relying on it, and keep every write behind a manual approval.

What does one run of the loop cost?

StepToolCost
Pull 1,000 adsMeta Ads MCP$0 during the beta
Tag 1,000 adsJevAbout $0.06
JoinCode$0
Write briefsClaudeIncluded in your Claude plan
Generate 6 videosShhots AI4,956 credits, about $40 at the Pro rate
Pre-flight 6 creativesJevUnder $0.01

Jev and Shhots figures are our arithmetic at list prices. The judgment steps cost pennies. Production is the real budget line, which is why the first four steps exist: they decide which six videos are worth making.

What else are people building with Jev?

Six days after launch, a thread by Raksha T on X collected more than 30 Jev demos. These are user-reported builds, not reproduced tests, and the numbers are the builders’ own. The ones a media buyer can borrow from:

BuildWhoWhat Jev decidesReported cost or speed
Meta Ad Library scan: tag every live ad in a category by hook, format, offer and days runningDmitry KorzhovWhich competitor patterns surviveUnder $3 for the category
Ad creative scoring across 100 variationsYum (@yuhasbeentaken)Which hooks, headlines or angles to test firstNot stated
Reddit lead finder in peeklens.ai, 1,511 posts, same prompt as GPT-5.6 Sol and Claude Opus 5ibo (@ibocodes)Real lead or junk96 leads found vs 78 and 72; $0.03 per scan vs $0.20 and $0.28; under 1 s per post
Clipping a 90-minute video by topicBurhanWhere each topic starts and endsUnder 2 s, about 2 cents
Removing negative comments from a live chatDev EdKeep or removeNot stated
Document classification and splitting (DocJev)Jerry LiuCategory and section boundariesNot stated
Malicious link scanner for dub.shSteven TeySafe or abusiveNot stated
Model router: send each task to the cheapest model that can solve itAdam AzzamWhich modelNot stated
”Jev as a judge” for grading agent traces in evalsHarrison ChasePass or fail per traceNot stated

The pattern is the same in every row: a large pile of items, one narrow judgment per item, and code doing the counting. The loop in this post is that pattern pointed at your own ad account.

Where does this loop break?

  • Jev’s accuracy is below frontier models. On TypeSafe’s own four-workflow benchmark, Jev scores 67.8% against 73.1% for Claude Opus 5 and 74.1% for GPT-5.6 Sol. The benchmark measures agreement with frontier models and has not been independently reproduced. Hand-check 20 to 30 tags before trusting the rest.
  • Jev gives no reasons. You get a label and a probability. When a tag looks wrong, you cannot ask why.
  • Video needs a text layer. Tag quality depends on how well Step 1 describes each video’s opening.
  • Small accounts produce noise. With few ads per cell, the CPA ranking reflects luck more than creative.
  • Tags show correlation. A cell can win because of audience, season or budget timing. Treat the table as a list of hypotheses to test with new creative.
  • The Meta connector is still in beta. Tools and access may change.
  • The Jev MCP servers are community code. Review them before connecting a production key.

Next step

Pick the lowest-CPA cell from Step 3 and generate three variants of it with the Shhots AI MCP server. It is included on the Pro and Scale plans, compared on the pricing page.

Common questions

Is Jev AI free?

No. There is no free tier listed. Jev costs $0.042 per 1M input tokens, and output is free.

Is Jev a large language model?

Jev is Transformer-based but deliberately not an LLM. It never outputs a full sentence, only typed answers, choices, scores and probabilities.

Can Jev write ad copy or scripts?

No. Jev only returns typed decisions. Claude writes the briefs and Shhots AI produces the creatives.

Can Jev watch video ads?

No. Its state is text, a JSON object or a JSON array. Describe each video’s opening in text before tagging it.

Does Meta’s Ads MCP show competitor ads?

Its tools cover your own ad accounts: reporting, campaign management, catalog and signal diagnostics. For competitor ads, use the Ad Library website or a scraper. The official Ad Library API returns commercial ads only for EU and UK audiences.

Do I need Claude Code for this?

Any MCP client can call the three servers. Steps 1 and 3 read and write files and run a script, which is why Claude Code is the practical choice.

Sources