Skip to content

Tool catalog

Auto-generated from a live tools/list call against the production MCP server. 24 tools across 7 groups. Last regenerated: 2026-05-07.

How tier gating works

Tools are tagged with the minimum subscription tier required. Admin role bypasses all gates. The MCP server returns a clear error before forwarding the call if your tier doesn't qualify.

Strategist (orchestration)

ToolCostTierDescription
decide_creative_strategy30 crStarterGiven a brief (offer, audience, goal, budget), decide the optimal creative format mix. Returns a manifest with rationale, angles, per-format counts, and total credit cost. Use this BEFORE generate_com
generate_complete_campaignStarterRun a full creative campaign in parallel from a manifest (or directly from a brief). Calls decide_creative_strategy first if no manifest is supplied, then fans out to all child generation tools with c

decide_creative_strategy

Given a brief (offer, audience, goal, budget), decide the optimal creative format mix. Returns a manifest with rationale, angles, per-format counts, and total credit cost. Use this BEFORE generate_complete_campaign to plan first, generate second. Cost: 30 credits (one Claude Opus call). Returns JSON, not pre-generated assets.

Cost: 30 cr · Minimum tier: Starter

Required: brief

Optional: budgetCredits, preferences


generate_complete_campaign

Run a full creative campaign in parallel from a manifest (or directly from a brief). Calls decide_creative_strategy first if no manifest is supplied, then fans out to all child generation tools with concurrency=3 and per-child retry up to 2x. Returns { strategy, campaign: { children, failures, successRate } }. Total cost: sum of child costs + 30 credits if strategy is auto-decided.

Cost: — · Minimum tier: Starter

Required: clientId, businessName, promptContext

Optional: brief, manifest, budgetCredits, offerName, script, narrationScript


Image creative

ToolCostTierDescription
generate_ad_image50 crStarterGenerate ad images (4 variations) for an offer. ASYNC — returns a jobId immediately; poll check_generation_status with this jobId every 2-3 seconds until status='completed', then call get_generated_as
generate_image_variations50 crStarterGenerate variations of an existing ad image — riff on a winning concept across new angles, styles, or audiences without starting from scratch. ASYNC — returns jobId; poll check_generation_status with
analyze_ad_image5 crStarterScore an existing ad image for quality / compliance / persuasiveness using Gemini vision. Pass an image URL (the tool fetches and base64-encodes it for you). Returns

generate_ad_image

Generate ad images (4 variations) for an offer. ASYNC — returns a jobId immediately; poll check_generation_status with this jobId every 2-3 seconds until status='completed', then call get_generated_asset to fetch the image URLs. Cost: 50 credits per call.

Cost: 50 cr · Minimum tier: Starter

Required: promptContext, businessName, offerName, clientId

Optional: imageUrl, imageConcept, model


generate_image_variations

Generate variations of an existing ad image — riff on a winning concept across new angles, styles, or audiences without starting from scratch. ASYNC — returns jobId; poll check_generation_status with jobType='ad-images'. Cost: 50 credits per call.

Cost: 50 cr · Minimum tier: Starter

Required: originalImageUrl, clientId

Optional: variationType, count, originalConcept, promptContext, businessName, userNotes, imageSize, aiModel


analyze_ad_image

Score an existing ad image for quality / compliance / persuasiveness using Gemini vision. Pass an image URL (the tool fetches and base64-encodes it for you). Returns { score, issues[], suggestions[] } — useful as a post-generation QA step before running paid ads, or to evaluate competitor creative. SYNC. Cost: 5 credits.

Cost: 5 cr · Minimum tier: Starter

Required: imageUrl


Video creative

ToolCostTierDescription
generate_doodle_vsl1000 crStarterGenerate a whiteboard-style 'Doodle VSL' explainer video (60-120s). Gemini renders scene illustrations, ElevenLabs generates voiceover, Remotion animates as a stroke-by-stroke drawing. Best for high-t
generate_broll_video~50 crStarterGenerate a 30-120s ad video with AI voiceover laid over stock B-roll footage. Gemini segments the script, ElevenLabs generates voiceover with word-level timestamps, Pexels supplies matching B-roll per
generate_video_reel500 crStarterGenerate a 15-second AI video reel using Google Veo 3.1. Best for scroll-stopping TikTok / Reels / Shorts content. ASYNC — returns jobId; poll check_generation_status with jobType='ai-reels'. Cost: 50
add_video_captions10 crStarterAdd animated captions to an existing video (Doodle VSL, B-roll, or any uploaded MP4). Generates a transcript with word-level timestamps and burns one-word-at-a-time captions into the final MP4. ASYNC

generate_doodle_vsl

Generate a whiteboard-style 'Doodle VSL' explainer video (60-120s). Gemini renders scene illustrations, ElevenLabs generates voiceover, Remotion animates as a stroke-by-stroke drawing. Best for high-ticket and complex pitches. ASYNC — returns jobId; poll check_generation_status with jobType='doodle-vsl'. Cost: 1000 credits (highest in catalog).

Cost: 1000 cr · Minimum tier: Starter

Required: script, clientId

Optional: voiceId, title, aspectRatio, animationStyle, doodleStyle


generate_broll_video

Generate a 30-120s ad video with AI voiceover laid over stock B-roll footage. Gemini segments the script, ElevenLabs generates voiceover with word-level timestamps, Pexels supplies matching B-roll per scene, Remotion composes the final MP4 with subtitles. ASYNC — returns jobId; poll check_generation_status with jobType='broll-video'. Cost: ~50 credits.

Cost: ~50 cr · Minimum tier: Starter

Required: script

Optional: voiceId, clientId, aspectRatio, duration


generate_video_reel

Generate a 15-second AI video reel using Google Veo 3.1. Best for scroll-stopping TikTok / Reels / Shorts content. ASYNC — returns jobId; poll check_generation_status with jobType='ai-reels'. Cost: 500 credits.

Cost: 500 cr · Minimum tier: Starter

Required: promptContext, businessName, clientId

Optional: offerName, templateType, selectedAngle


add_video_captions

Add animated captions to an existing video (Doodle VSL, B-roll, or any uploaded MP4). Generates a transcript with word-level timestamps and burns one-word-at-a-time captions into the final MP4. ASYNC — returns jobId; poll check_generation_status with jobType='add-video-captions'. Cost: 10 credits.

Cost: 10 cr · Minimum tier: Starter

Required: videoUrl

Optional: videoId, style


Copy creative

ToolCostTierDescription
generate_ad_copy20 crStarterGenerate Facebook ad copy variations (5 different angles per call) for an offer. SYNCHRONOUS — full result returned immediately. Cost: 20 credits. Returns { variations: [{ id, style, headline, copy }]
generate_email_campaign25 crStarterGenerate a multi-email launch sequence (5–7 emails) for an offer. SYNC — returns { emails: [{ subject, body }] } immediately. Best for product launches, webinar promotion, retention sequences. Cost: 2
generate_vsl_script30 crStarterGenerate a Video Sales Letter (VSL) script with multiple angle variations for an offer. SYNC — returns { script, angles[] } immediately. Best for high-ticket offers, webinars, long-form sales. Cost: 3
generate_landing_copy25 crStarterGenerate full landing-page body copy (hero, benefits, social proof, CTAs, FAQs) for an offer. SYNC — returns the full copy package immediately. Cost: 25 credits.
generate_carousel20 crStarterGenerate a multi-slide carousel ad (5-10 slides) — copy for each slide tailored to an offer. Best for educational / product-list / step-by-step content on Instagram and Facebook. SYNC — returns { slid
generate_messaging_angles15 crStarterGenerate 5+ creative messaging angles for an offer based on audience pain points, desires, and objections. Use this BEFORE generate_ad_copy or decide_creative_strategy to surface non-obvious angles. S

generate_ad_copy

Generate Facebook ad copy variations (5 different angles per call) for an offer. SYNCHRONOUS — full result returned immediately. Cost: 20 credits. Returns { variations: [{ id, style, headline, copy }] }.

Cost: 20 cr · Minimum tier: Starter

Required: promptContext, businessName, offerName

Optional: imageUrl, imageConcept, model


generate_email_campaign

Generate a multi-email launch sequence (5–7 emails) for an offer. SYNC — returns { emails: [{ subject, body }] } immediately. Best for product launches, webinar promotion, retention sequences. Cost: 25 credits.

Cost: 25 cr · Minimum tier: Starter

Required: promptContext, businessName, offerName

Optional: emailCount


generate_vsl_script

Generate a Video Sales Letter (VSL) script with multiple angle variations for an offer. SYNC — returns { script, angles[] } immediately. Best for high-ticket offers, webinars, long-form sales. Cost: 30 credits.

Cost: 30 cr · Minimum tier: Starter

Required: promptContext, businessName, offerName


generate_landing_copy

Generate full landing-page body copy (hero, benefits, social proof, CTAs, FAQs) for an offer. SYNC — returns the full copy package immediately. Cost: 25 credits.

Cost: 25 cr · Minimum tier: Starter

Required: promptContext, businessName, offerName


Generate a multi-slide carousel ad (5-10 slides) — copy for each slide tailored to an offer. Best for educational / product-list / step-by-step content on Instagram and Facebook. SYNC — returns { slides: [{ headline, body }] } immediately. Cost: 20 credits.

Cost: 20 cr · Minimum tier: Starter

Required: promptContext, businessName

Optional: offerName, slideCount


generate_messaging_angles

Generate 5+ creative messaging angles for an offer based on audience pain points, desires, and objections. Use this BEFORE generate_ad_copy or decide_creative_strategy to surface non-obvious angles. SYNC — returns { angles: [{ name, hook, rationale }] }. Cost: 15 credits.

Cost: 15 cr · Minimum tier: Starter

Required: promptContext, businessName

Optional: offerName, audienceProfile


Intelligence / research

ToolCostTierDescription
scrape_offer5 crStarterScrape a competitor's or your own offer page and return structured data: { title, copy, pricing, cta, headlines[] }. Use this before generation tools to ground them in real offer details. SYNC — retur
pull_reviews15 crStarterPull product / service reviews from the public web for a business. Uses Firecrawl to crawl review sources (Google, Trustpilot, ProductHunt, etc.) and Gemini to extract structured review records. Retur
audience_research20 crStarterRun deep audience research for an offer — surface pain points, desires, objections, demographic patterns. Uses Gemini deep-research with iterative refinement. Pass marketingData (the offer's brief: bu
find_winning_ads20 crProDiscover competitor ads that have been running long enough to be considered 'winning' (still active after N days = passing the spend test). Searches the Facebook Ad Library by keyword, optionally filt

scrape_offer

Scrape a competitor's or your own offer page and return structured data: { title, copy, pricing, cta, headlines[] }. Use this before generation tools to ground them in real offer details. SYNC — returns immediately. Cost: 5 credits.

Cost: 5 cr · Minimum tier: Starter

Required: url


pull_reviews

Pull product / service reviews from the public web for a business. Uses Firecrawl to crawl review sources (Google, Trustpilot, ProductHunt, etc.) and Gemini to extract structured review records. Returns { reviews: [{ text, rating, source, reviewer }] }. SYNC. Cost: 15 credits. Use BEFORE strategist or generation tools to ground them in real customer language.

Cost: 15 cr · Minimum tier: Starter

Required: businessName

Optional: offerName, websiteUrl


audience_research

Run deep audience research for an offer — surface pain points, desires, objections, demographic patterns. Uses Gemini deep-research with iterative refinement. Pass marketingData (the offer's brief: businessName, offerName, niche, customerInfo, etc.). SYNC for the start action — server kicks off the research and returns the initial result. Cost: 20 credits.

Cost: 20 cr · Minimum tier: Starter

Required: marketingData

Optional: interactionId


find_winning_ads

Discover competitor ads that have been running long enough to be considered 'winning' (still active after N days = passing the spend test). Searches the Facebook Ad Library by keyword, optionally filtered to low-ticket offers. Returns ads with copy, image URLs, days active, and pricing inferences. SYNC. Cost: 20 credits. Tier: Pro.

Cost: 20 cr · Minimum tier: Pro

Required: clientId, keywords

Optional: maxAds, minDaysActive, lowTicketOnly, priceRangeMin, priceRangeMax


Async polling

ToolCostTierDescription
check_generation_statusFreeStarterCheck the status of an async generation job. FREE — no credits charged. Returns { status: 'pending'|'processing'|'completed'|'failed', progress: 0-100, statusMessage, outputId, outputTable, error,

check_generation_status

Check the status of an async generation job. FREE — no credits charged. Returns { status: 'pending'|'processing'|'completed'|'failed', progress: 0-100, statusMessage, outputId, outputTable, error, completedAt }. Recommended poll interval: 2 seconds.

Cost: Free · Minimum tier: Starter

Required: jobId, jobType


Account & workflow

ToolCostTierDescription
get_credit_balanceFreeStarterGet the current credit balance for the authenticated organization. Returns { balance, reserved, available, lifetimeGranted, lifetimeUsed }. FREE — no credits charged. Useful as a pre-flight check befo
list_clientsFreeStarterList all clients (saved offer briefs) for the authenticated user. Each client groups a businessName + offerName + research context. Returns [{ id, businessName, offerName, createdAt }]. FREE. Use this
get_clientFreeStarterFetch the full record for a single client by id, including the long-form prompt_context, messaging_angles, audience_research, and other context fields. Companion to list_clients (which returns lightwe
create_clientFreeStarterCreate a new client (saved offer brief) for the authenticated user. Returns the created client { id, businessName, offerName }. The returned id is the clientId other generation tools require. FREE.

get_credit_balance

Get the current credit balance for the authenticated organization. Returns { balance, reserved, available, lifetimeGranted, lifetimeUsed }. FREE — no credits charged. Useful as a pre-flight check before expensive tools like generate_doodle_vsl (1000 cr).

Cost: Free · Minimum tier: Starter


list_clients

List all clients (saved offer briefs) for the authenticated user. Each client groups a businessName + offerName + research context. Returns [{ id, businessName, offerName, createdAt }]. FREE. Use this BEFORE any generation tool that requires a clientId.

Cost: Free · Minimum tier: Starter

Optional: limit


get_client

Fetch the full record for a single client by id, including the long-form prompt_context, messaging_angles, audience_research, and other context fields. Companion to list_clients (which returns lightweight previews only). FREE.

Cost: Free · Minimum tier: Starter

Required: clientId


create_client

Create a new client (saved offer brief) for the authenticated user. Returns the created client { id, businessName, offerName }. The returned id is the clientId other generation tools require. FREE.

Cost: Free · Minimum tier: Starter

Required: businessName

Optional: offerName, promptContext, sourceUrl


Notes

  • All async tools return a { jobId, jobType }. Poll check_generation_status with that pair every 2-3s until status === "completed".
  • All paid tools charge credits on success. Failed calls (Anthropic error, rate limit, etc.) refund the reservation automatically.
  • Free tools (audit-only) don't deduct credits but still write to mcp_audit_logs.
  • Tier blocks fire at the MCP layer in <1s — the underlying edge function is never called when the tier is insufficient.
  • Daily credit cap kicks in at 1500 / 5000 / 15000 credits per 24h for Starter / Pro / Agency.

Ad Command — built on the Model Context Protocol