Connect your agent.
One sentence to final animation.
Motion is an MCP server with a render surface attached. Add one endpoint to the agent you already use, say what you want in a line, and watch the frames appear in a browser tab — on your machine, not in somebody’s queue.
MCPhttps://motion.frapea.com/mcp
See all 16 toolsPick yours
Setup, for the client you already have open
Each one is a different file in a different place, and half of them name the same field differently. These are written out per client rather than as one guide with a note, because a note is where a setup goes wrong.
- Claude CodeTerminal agent
One command, no file to find and no editor to restart — and it is already standing in the repository the animation is for.
Set up Claude Code → - Claude DesktopDesktop app
Setup is a dialog rather than a file, which makes it the one to send somebody who has never edited a config in their life.
Set up Claude Desktop → - CursorCode editor
The config can live in the repository rather than in your home directory, which is the difference between setting this up once and setting it up on every machine.
Set up Cursor → - VS CodeCode editor
You pick which of Motion's tools the agent may touch, from Copilot's own tool picker — useful the first time you hand a render surface to an agent.
Set up VS Code → - WindsurfCode editor
Cascade is the most willing of these to take a long brief and keep going, which is what a multi-scene piece actually needs.
Set up Windsurf → - Codex CLITerminal agent
Configured in TOML rather than JSON, and one of three clients here that connect with a single command.
Set up Codex CLI → - Gemini CLITerminal agent
The pairing with the least to pay for: a generous free agent tier driving a tool with no account and no render bill.
Set up Gemini CLI → - WarpTerminal
It will do something with the file afterwards, because it is a terminal — the render becomes a step in a job rather than the end of one.
Set up Warp → - Something elseSame endpoint
Any client that speaks MCP can drive Motion. If yours takes a JSON block, it is the two-line kind — the endpoint is the one above.
What your agent gets
16 tools built for making animation — including one for looking at it
It writes the composition as code rather than filling in a template, renders real frames and checks them, and never receives your photos or footage. That last one is not a policy — the bytes stay in your browser because that is where the render is.
- Does it pick a template, or write one?create_compositionupdate_compositionset_propsget_compositionlist_compositionsRead →
- Can it see what it rendered?inspect_compositionRead →
- What happens to my photos and video?put_mediainspect_medialist_mediaget_mediaorganize_mediaRead →
- How does it know what good looks like?read_skillRead →
- How do I get the file?no tool — you press ExportRead →
- How does it reach my browser?connectcreate_sessionwait_for_tabtell_userRead →
What actually happens
Your agent writes it. Your browser draws it.
It writes a composition
Your agent gets a set of tools and a guide to the runtime, then writes the piece as code — timing, easing, type, the lot. Nothing is picked from a template library, because there is not one.
Your browser renders it
The code runs in a sandboxed tab on your machine and draws every frame there. No upload, no queue, and your photos and clips never leave the laptop they are on.
You keep the file
Export MP4, WebM or a PNG sequence, or hand the whole thing to Frapea as an editable timeline. No watermark on any of them, because there is nothing to upsell you to.
Made this way
Every one of these was a sentence
Rendered by the same runtime your agent would drive. They change as you read. Point at one to play it; the sentence that made it is on its page.











