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=facebookand per-creativeutm_contentin the link URL so PostHog can attribute the signup to the right creative. - Structure & budget.
status=PAUSEDat 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_changeHard rules baked into the prompt
- Audit only. The agent is forbidden from calling any
create_*orupload_ad_imagetool. 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_fatigueThe 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.