# Agent reference

> Every MCP tool and argument, script directive, style option, music track and limit, generated from Razzle itself.

## How to work with Razzle

1. `list_projects` and pick the brand's project. Ask the person if it's unclear.
2. Make the video with `create_video`: the words (`script`), the files (`clips`: file paths, folders or media ids), and optionally `music` and `style`. Paths are uploaded for you, in order.
3. Give the person the link it returns. They preview, adjust and post in Razzle: agents never post.
4. To change it, `get_video` (to see the video and the edit tools' arguments) then `edit_video` with a list of edits.

For a carousel (a swipe post of still slides): `list_carousel_designs`, then `create_carousel` with the slides (`script`) and a `design`; change it with `get_carousel` and `edit_carousel`. The person checks the slides and posts from the link.

Read the person's brief and taste over these defaults. When unsure what an option does, `read_docs` the topic or ask.

## MCP tools

| Tool | What it does | Arguments |
| --- | --- | --- |
| `list_projects` | The person's projects (brands) and their ids | none |
| `list_media` | Clips and photos already uploaded to a project | `project_id` |
| `list_music` | Built-in tracks with genre and tempo | none |
| `upload_media` | Uploads files or folders from this computer to a project | `project_id`, `paths` |
| `create_video` | Makes a beat-synced video; returns its id and link | `project_id`, `script`, `clips`, `title`, `music`, `style`, `transition`, `aspect`, `punch` |
| `get_video` | A video's script, style, music, elements and clips, and the edit tools' arguments | `video_id` |
| `edit_video` | Runs up to 20 edits on a video in one go, all or nothing | `video_id`, `edits`: `[{ tool, args }]` |
| `list_carousel_designs` | Carousel designs, one per pattern, with what each suits and its own colours and typeface | none |
| `create_carousel` | Makes a carousel from the slides; returns its id and link | `project_id`, `script`, `design`, `look`, `palette`, `font`, `aspect`, `handle`, `title` |
| `get_carousel` | A carousel's slides, design, palette, typeface, size and handle | `carousel_id` |
| `edit_carousel` | Changes any of a carousel's slides, design, palette, typeface, size or handle | `carousel_id`, `script`, `design`, `palette`, `font`, `aspect`, `handle` |
| `read_docs` | These docs: the list of pages, or one page as Markdown | `page` (optional) |

## create_video options

| Option | Values |
| --- | --- |
| `script` | One beat per line, 6 to 12 lines usual, up to 1000 characters. See [the script](#script) |
| `clips` | Up to 40 files, in play order. More clips make faster, better cuts |
| `music` | A track id from [music](#music), or `none`. Default: the project's |
| `style.palette` | A name from [palettes](#palettes) |
| `style.font` | `inter` `anton` `archivo-black` `bebas` `space-grotesk` `playfair` |
| `style.look` | `punch` `editorial` `poster` `keynote` |
| `style.backdrop` | `flat` `glow` `grid` `spot` `hud` |
| `style.pacing` | `chill` `normal` `hype` |
| `transition` | `cut` `mix` `crossfade` `flash` `light-leak` `slide` `whip` `zoom` `zoom-out` `spin` `fade`. `mix` (default) is mostly hard cuts with a zoom, whip, flash or light leak now and then |
| `aspect` | `9:16` `4:5` `1:1` `16:9`. Default `9:16` |
| `punch` | `true` or `false`. On by default with clips: flashes on the hook, colour cuts and quick runs, and a closing web address or @handle in the accent colour |

For action footage (drones, sport, cars, travel): font `anton`, palette `Volt`, backdrop `hud`, pacing `hype`, look `punch`, a fast hard track.

## edit_video tools

| Tool | What it does | Arguments |
| --- | --- | --- |
| `apply_template` | Start from a template: replaces the whole video (script, look, palette, font, music, elements). Use first for a new video, then adjust. | `templateId` |
| `set_script` | Replace the script: one beat per line, at most 16 lines, optional {directives} at the end of a line. | `script` |
| `set_style` | Change any of: format, palette, typeface, look, backdrop and pacing. | `aspect`, `palette`, `font`, `look`, `backdrop`, `pacing` |
| `set_music` | Pick a built-in track (the tempo follows it) or no music. | `track` |
| `add_element` | Add an element on top of the text: price (text = price, sub = old price), counter (value, prefix, suffix, text = label), card (text = title, sub = lines), quote (text, sub = author), badge (text), code (text = file name, sub = code). | `kind`, `text`, `sub`, `value`, `prefix`, `suffix`, `startBeat`, `lengthBeats` |
| `remove_element` | Remove one element by id, the background photo with id "background", or every element and photo with id "all". | `id` |
| `relay_clips` | Cut the video's own clips and photos across the words again, on the beat, in the order they first appear (after the words or music change length). Optional transition. | `transition` |
| `punch` | Add an editor's finishing touches: a flash on the hook and colour cuts, lighter flashes on quick runs of short lines, and a closing web address or handle in the accent colour. | none |

Elements for `add_element`: `price` `counter` `card` `quote` `badge` `code`. Positions and lengths are in beats; `get_video` gives the video's `totalBeats`.

## Script

One line is one text clip, shown long enough to read and rounded to the music. Lines of 1 to 5 words read best. SHOUTED or exclaimed lines become full-frame colour cuts that hide the footage: with clips, use one or two. A smaller support line follows ` // `.

End a line with directives in braces to override the director:

| Directive | Values |
| --- | --- |
| Move | `slam` `zoom` `whip-l` `whip-r` `drop` `rise` `spin` `shake` `pop` `mega` |
| Size | `xxl` `xl` `l` `m` `s` |
| Length in beats | a number, like `0.5`, `1`, `2`, `4` |
| Colour cut | `bg:accent1` to `bg:accent4`; `plain` for none |
| Text colour | `ink:accent1` to `ink:accent4` |
| Colour wipe | `swipe` `swipe-right` `swipe-up` |

```
FPV GRIND {slam 2}
Tiny drones {1}
Whoop parts // frames, motors, props {4}
SEND IT! {zoom 4}
fpvgrind.in {plain ink:accent1}
```

## Carousels

One slide per paragraph, a blank line between slides: 2 to 20, 5 to 8 usual. A paragraph's first line is the headline (90 characters at most), the next lines its body (each under 200). Lines starting `- ` make a list slide; a single quoted line makes a quote slide. The first slide is the cover, the last the call to action. No ` // ` or directives: those are for videos.

```
Founders: social media is your 101st job
(swipe)

You ship, sell, hire and answer support
Posting falls off the list first.

- Write the words
- Pick a design
- Post or schedule

Make your first one free
getrazzle.com
```

| Option | Values |
| --- | --- |
| `design` | One of 160 design ids from `list_carousel_designs`; leave it out for the plain look (a colour per slide) |
| `look` | `brand` (default): the project's colours and typeface over the design, when it has them. `design`: the design's own |
| `palette` | A name from [palettes](#palettes) |
| `font` | `inter` `anton` `archivo-black` `bebas` `space-grotesk` `playfair` |
| `aspect` | `4:5` `1:1` `9:16`. Default `4:5` |
| `handle` | Small line on every slide, like `@brand` or a web address. Default: the project's |

## Palettes

| Palette | Background | Text | Accents |
| --- | --- | --- | --- |
| `Rad FX` | #000000 | #fafafa | #ffe14d #ff7a1a #3de8ff #b8ff3c |
| `Paper` | #f4f1ea | #111111 | #ff4d2e #1f3cff #111111 #ffd23f |
| `Midnight` | #0b1020 | #e8ecff | #7c5cff #ff5ca8 #28d7c4 #ffb547 |
| `Flash Sale` | #0d0d0d | #ffffff | #ff2a2a #ffd400 #ffffff #ff6a00 |
| `Citrus` | #fff7e6 | #141414 | #ff5a1f #00b37e #3a5bff #ffcc00 |
| `Noir Gold` | #0a0a0a | #f5e6c8 | #d4a64a #e63946 #f5e6c8 #d4a64a |
| `Diwali` | #2a0716 | #fff3d6 | #f7b733 #ff7a1a #e0218a #ffd166 |
| `Terracotta` | #f3e9dc | #2b1d14 | #c8553d #588b8b #f28f3b #2b1d14 |
| `Volt` | #0b0b0b | #ffffff | #d4ff00 #ff3d00 #00e5ff #d4ff00 |
| `Mono` | #0a0a0a | #f5f5f5 | #f5f5f5 #9a9a9a #f5f5f5 #5a5a5a |
| `Christmas` | #0f2a1d | #fff8ec | #e63946 #f4c95d #fff8ec #e63946 |
| `Tricolour` | #0b1640 | #ffffff | #ff9933 #138808 #ffffff #ff9933 |
| `Keynote` | #000000 | #f5f5f7 | #ff9f0a #bf5af2 #ff375f #2997ff |
| `Mission` | #05070a | #e8ecf1 | #9fb3c8 #ffffff #5ac8fa #ff453a |
| `Keynote Light` | #fbfbfd | #1d1d1f | #0071e3 #34a853 #a142f4 #ea4335 |

## Music

Built-in tracks are public domain: safe to post anywhere. Agents can't use other music yet.

| Id | Name | Genre | BPM |
| --- | --- | --- | --- |
| `make-funk` | Make Funk | Funk | 99 |
| `hard-mode` | Hard Mode | Gamer beats | 150 |
| `final-level` | Final Level | Gamer beats | 130 |
| `coins` | Coins | Gamer beats | 160 |
| `legends` | Legends | Gamer beats | 130 |
| `retro-soundtrack` | Retro Soundtrack | Retro wave | 140 |
| `drama` | Drama | Retro wave | 115 |
| `cyber-anxiety` | Cyber Anxiety | Retro wave | 160 |
| `day-dreams` | Day Dreams | Retro wave | 130 |
| `sky-fish` | Sky Fish | Sci-fi | 100 |
| `somethings-out-there` | Somethings Out There | Sci-fi | 100 |
| `credit-cards` | Credit Cards | Sci-fi | 90 |
| `sleep` | Sleep | Funk | 120 |
| `breath` | Breath | Funk | 106 |
| `autumn` | Autumn | Chill beats | 130 |
| `opinions` | Opinions | Chill beats | 80 |
| `dancing` | Dancing | Chillout | 99 |
| `sunny-afternoon` | Sunny Afternoon | Chiptune | 100 |
| `everything-you-ever-dreamed` | Everything You Ever Dreamed | Lo-fi | 120 |
| `beginning-6` | Beginning 6 | Title theme | 155 |
| `dreams` | Dreams | Chillout | 90 |

## Templates

For `apply_template` (it replaces the words, look and music; the person's clips stay): `product-drop`, `flash-sale`, `event-teaser`, `manifesto`, `app-launch`, `hiring`, `countdown`, `back-in-stock`, `black-friday`, `menu-special`, `fitness-class`, `open-house`, `podcast`, `giveaway`, `webinar`, `testimonial`, `product-spotlight`, `restock-photo`, `spec-showdown`, `price-drop`, `bundle-deal`, `milestone`, `case-study`, `testimonial-photo`, `maker-intro`, `code-tip`, `before-after-code`, `shipped-this-week`, `app-launch-phone`, `website-launch`, `new-feature-phone`, `diwali-wishes`, `diwali-sale`, `salon-offer`, `jewellery-launch`, `coaching-admissions`, `fashion-drop`, `christmas-sale`, `new-year-wishes`, `new-year-sale`, `republic-day-sale`, `keynote-reveal`, `mission-launch`, `product-keynote`.

## Files and limits

| What | Limit |
| --- | --- |
| Clips | MP4, MOV, WebM; up to 250 MB each |
| Photos | PNG, JPEG, WebP; up to 25 MB each |
| Files per video | 40 |
| Edits per `edit_video` call | 20 |
| Videos and carousels an agent makes | 20 a month on Free (plus 10 for each invite-a-friend reward, that month and the next), unlimited on Pro. Edits don't count |
| Storage | Counts toward the team's plan (2 GB on Free) |
| Razzle mark | On Free, downloads and posts carry a small "Made with Razzle" mark (top centre of a video, bottom centre of a carousel slide); Pro removes it |

## Errors

| Error | What to do |
| --- | --- |
| "That API key doesn't work" | The key was removed, or the password was reset. Ask the person for a new key (Settings → AI agents) |
| "These aren't finished clips or photos in this project" | Use media ids from `list_media` for that project, or pass file paths |
| "Your team's storage is full" | Ask the person to free space on the Media page |
| "…have made all … drafts … this month" | The team's monthly agent drafts are used. Edit an existing one, or the person can upgrade to Pro or make it in Razzle |
| A tool's argument error | Fix the argument the message names; `get_video` lists every edit tool's arguments |

## Not possible yet

- Posting or scheduling: the person posts from Razzle.
- Voice-overs and captions; photos on carousel slides.
- Music other than the built-in tracks.


---
Source: https://getrazzle.com/docs/agent-reference · Markdown: https://getrazzle.com/docs/agent-reference.md · Updated 2026-11-02
