Krust MCP
Drive your Krust account from Claude Code, Claude Desktop, Cursor or any MCP client: read products and facts, write briefs, film ads, remake statics, edit finished ads in words. Ads and statics made this way spend your credits exactly like the app.
The overview, example prompts and FAQ are on Make UGC ads from Claude, ChatGPT or Cursor. Plans are on Pricing.
Connect
Sign in (recommended). Add the server and, on first use, allow it in the browser window that opens. The server supports OAuth 2.1 with dynamic client registration and PKCE, so Claude Code, Claude Desktop, claude.ai connectors and Cursor all work without a key.
claude mcp add --transport http krust https://www.trykrust.com/api/mcp # then in Claude Code: /mcp → krust → Authenticate
Or a key (scripts, agents): create one under Settings → Integrations → Krust MCP, then:
claude mcp add --transport http krust https://www.trykrust.com/api/mcp --header "Authorization: Bearer krust_live_…"
Tools
| Tool | Spends credits | What it does |
|---|---|---|
| get_account | No | The active brand, its markets/language, the credit balance and the list of brands on the account. Check the balance here before make_ad or make_statics. |
| list_products | No | Products with their context score (0–100, how well Krust knows the product; below 40 means ads may show it wrong). |
| get_product_context | No | The fact sheet the writers and generators read (form, contents, usage, label, claims), the open questions with their ids, and the score. Drafts the facts from the product photo first if none exist (~30 s). |
| add_product_fact | No | Free text: an answer to an open question, a correction, a fact ("the can is 330 ml, the drink is clear and fizzy"). Krust reads it and updates the fact sheet; returns what changed. Use questionId to answer a specific open question. |
| set_product_notes | No | Replaces the product's notes (up to 2,000 characters): the catch-all every writer reads, such as brand no-gos, the words the brand always uses and the moments ads must show. |
| list_templates | No | The video-ad templates this account can run: id, name, family, what it films, length, credits (what one ad costs) and Keep/Skip stats. Use an id with draft_brief and make_ad. |
| list_audiences | No | The confirmed audiences for a product (who, worry, messenger) and each one's angles (id, name, hook, claim). Drafts them first if there are none. |
| draft_brief | No | Writes the ad the way make_ad would (personas and script for template × product × audience/angle) without filming. Read it, then pass it to make_ad as `brief` to film exactly this, or adjust it with your own wording. |
| make_ad | Yes | Queues a template ad for a product and spends credits: the template's price (credits in list_templates), charged when it queues and refused with a reason when the balance is short. count (1–5, at most the number of angles the audience has) queues one ad per angle of the audience, the chosen angle first, after checking that the balance covers all of them. Returns the ad ids; poll get_ad. Pass the brief from draft_brief (edited or not) to film that exact script (with count, the first ad films it); otherwise Krust writes one. |
| get_ad | No | Status (pending · rendering · awaiting · ready · failed), the playable URL and poster when ready, the hook line, template and product. |
| list_ads | No | The account's recent template ads, newest first, with status and URLs. |
| edit_ad | Only for re-filmed takes | Ask for an edit in plain language ("cut the second sentence", "swap the second shot for a product close-up", "subtitles off"). Without apply, Krust proposes the edit ops and says what re-filming would cost. Call again with the same instruction and apply=true to re-cut the ad with that proposal (free when nothing re-films; re-filmed takes spend credits). Returns the proposal and, if applied, the render status. |
| list_scenes | No | The account's filmed scenes (silent clips and takes) that the editor and templates reuse. |
| list_static_layouts | No | The static-ad layouts Krust can remake for a product: id, name, category, aspect ratio, the layout brief. |
| make_statics | Yes | Queues one static remake per layout id for the product, in the brand's language (or the given market). Spends credits for each image. Returns what started; poll list_static_remakes. |
| list_static_remakes | No | Recent static remakes with status and image URLs. |
A typical session
- get_account, list_products
- get_product_context; fix anything wrong with add_product_fact
- list_templates (each template's credits), list_audiences
- draft_brief; edit the script in the conversation
- make_ad with that brief (or count up to 5 for one ad per angle); get_ad until ready
- edit_ad for changes in words