Audit your Meta plan against a real media buyer’s rulebook.

The MCP wrappers around create_campaign /create_adset / create_ad will happily publish anything Meta accepts. Meta accepts a lot that a media buyer never would. This workflow lets Claude read your drafted plan back through BrandMov’s ad-brain rulebook and hand you a go/no-go report — with concrete rewrites for each violation — before anything hits your account.

What you’ll need

  • A BrandMov account with an MCP key (sign up free)
  • An MCP client: Claude Desktop, Cursor, Cline, or the Claude API
  • A drafted plan — whatever you have. Copy alone, a link URL alone, a full launch config — the audit only checks what you supply

One prompt to invoke

In Claude Desktop or Claude Code, hit the slash menu and pick/mcp__brandmov__ad-brain-audit. In any other client, paste the intent and the plan into one message:

Audit this Meta ad plan against BrandMov’s ad brain before I create anything.

Primary text: Track 10,000 brands — $19 lifetime.
Headline: Every winning Meta ad, in one feed
Link URL: https://brandmov.com/swipe/go/?utm_source=facebook
Placements: facebook feed + instagram feed
Daily budget: $8
Optimization goal: LINK_CLICKS
Status: ACTIVE

The agent knows the drill: consult the rulebook, run the applicable validators, print one merged report. Nothing gets created — this workflow is audit-only.

What the audit checks

Every rule is a lesson from a real launch that went wrong once, codified so it never wastes anyone’s spend again. Four surfaces get checked:

  • Copy. Em dashes (AI tell), the words “Meta” / “Facebook” / “FB” in creative (trademark risk), personal sign-offs in ad text, colon-elaboration construction, missing price on a cheap offer.
  • Tracking. utm_source=facebook and per-creative utm_content in the link URL so PostHog can attribute the signup to the right creative.
  • Structure & budget. status=PAUSED at creation, feed-only placements for v1 (no Audience Network / Reels / Stories until the creative is validated), CBO off for small tests, LPV-not-Purchase optimization under ~$10/day, pixel attached at ad level.
  • Budget changes. Raises capped at min(+20%, 2x current) so learning phase isn’t reset by an overnight one-day-fluke double.

What you get back

One structured report, always in the same shape:

  • Hard violations. Rule id, what tripped, and the concrete rewrite — for copy, the agent rewrites the offending line in place, not “remove the em dash.”
  • Warnings. Advisory rules the agent flags and explains, but leaves to your judgement.
  • Passed. The rules that were checked and cleared.
  • Verdict. A single line: AUDIT: PASS — safe to launch. or AUDIT: BLOCK — N hard violations, fix before launch.

The tools the agent calls

ad_brain_consultad_brain_check_ad_copyad_brain_check_link_urlad_brain_check_launch_configad_brain_check_budget_change

Hard rules baked into the prompt

  • Audit only. The agent is forbidden from calling any create_* or upload_ad_image tool. When the report is clean, pair this workflow with Clone a winning ad or drive the writes yourself.
  • No invented rules. Every citation has to come from a validator response or from ad_brain_consult. The agent cannot paraphrase or reason its way to a new rule.
  • No bypass advice. If you push back on a hard violation, the agent re-reads the rule and quotes the why. It won’t suggest a workaround.
  • Omit ≠ assume. Fields you didn’t supply are not evaluated — the agent never substitutes a default and then judges you against it.

Beyond pre-launch: the brain runs continuously

The audit workflow is the pre-launch consult. Once your ads are live, four more brain tools apply the same rulebook mid-flight — called from a nightly agent, they classify performance, catch delivery pauses that aren’t incidents, warn on edits that would reset learning phase, and flag creative fatigue before spend follows CTR down.

ad_brain_classify_adset_performancead_brain_diagnose_zero_deliveryad_brain_check_learning_reset_riskad_brain_check_creative_fatigue

The classifier returns canonical buckets — winner, dead_on_arrival, spend_skew, wasted, learning, watch — so the morning digest reads the same every day, not whatever the model decided to call things this run.

Why this exists

Any MCP server can POST to the Graph API. Ours launches campaigns the way a good media buyer would — because every rule in the brain came from a real “why is this wrong out of the box” moment while dogfooding. The audit workflow is how you consult that expertise before every launch, without having to remember any of it.

Next