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)
| Tool | Cost | Tier | Description |
|---|---|---|---|
decide_creative_strategy | 30 cr | Starter | 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_com |
generate_complete_campaign | — | Starter | 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 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
| Tool | Cost | Tier | Description |
|---|---|---|---|
generate_ad_image | 50 cr | Starter | 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_as |
generate_image_variations | 50 cr | Starter | 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 |
analyze_ad_image | 5 cr | Starter | 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 |
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
| Tool | Cost | Tier | Description |
|---|---|---|---|
generate_doodle_vsl | 1000 cr | Starter | 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-t |
generate_broll_video | ~50 cr | Starter | 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 |
generate_video_reel | 500 cr | Starter | 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: 50 |
add_video_captions | 10 cr | Starter | 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 |
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
| Tool | Cost | Tier | Description |
|---|---|---|---|
generate_ad_copy | 20 cr | Starter | 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 }] |
generate_email_campaign | 25 cr | Starter | 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: 2 |
generate_vsl_script | 30 cr | Starter | 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: 3 |
generate_landing_copy | 25 cr | Starter | 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. |
generate_carousel | 20 cr | Starter | 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 { slid |
generate_messaging_angles | 15 cr | Starter | 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. 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_carousel
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
| Tool | Cost | Tier | Description |
|---|---|---|---|
scrape_offer | 5 cr | Starter | 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 — retur |
pull_reviews | 15 cr | Starter | 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. Retur |
audience_research | 20 cr | Starter | 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: bu |
find_winning_ads | 20 cr | Pro | 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 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
| Tool | Cost | Tier | Description |
|---|---|---|---|
check_generation_status | Free | Starter | 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, |
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
| Tool | Cost | Tier | Description |
|---|---|---|---|
get_credit_balance | Free | Starter | 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 befo |
list_clients | Free | Starter | 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 |
get_client | Free | Starter | 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 lightwe |
create_client | Free | Starter | 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. |
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 }. Pollcheck_generation_statuswith that pair every 2-3s untilstatus === "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.