Categories › Media & Design › Design tools (Figma, Canva...)
One sentence to a finished animation: your AI writes motion graphics as code and checks real frames.
Remote server: your requests and data go to motion.frapea.com. Claude Code: claude mcp add --transport http motion-by-frapea https://motion.frapea.com/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
close_composition — Closes a composition and removes it from the user's tabs; its source is not kept. Meant for drafts made along the way. Needs an explicit id connect — Pairs this agent with a Motion browser tab using the eight-character code the user sees under the Connect MCP button (for example K7M4-P2Q9)create_session — Starts a Motion session when the user has no pairing code. Compositions can be created and edited at once; the returned link opens the sessiwait_for_tab — Waits until the user's Motion tab connects to the session, for example after they open the link from create_session. Returns as soon as it ctell_user — Shows one short status sentence in the user's Motion tab while work is in progress, so they can tell progress from a stall. kind 'done' markread_skill — Returns one of Motion's authoring guides as text. 'motion' is the API contract: what compiles, resolves and renders — compositions written wlist_media — Lists the user's media library: folders, and files with id, name, kind, size and folder. `storage` says whether a file is 'linked' (still onput_media — Adds a file to the library as a new item; nothing existing is replaced. With `url`, the user's browser fetches it, so only public https hostget_media — Returns the raw bytes of one file, base64, capped at about 600 KB. For larger files and for video, inspect_media describes the content at a inspect_media — Looks inside an image or video and returns one contact sheet: each requested moment as a labelled cell in a single image. atSec takes up to organize_media — Moves files and manages folders. action: 'move' (ids + toFolder), 'createFolder' (name + optional parent), 'deleteFolder' (folder; the filesdelete_media — Deletes files from the user's media library by id. A copied file is gone from the browser; a linked file stays on the user's disk and only llist_compositions — Lists the compositions open in the session, and which one is on screen.get_composition — Returns one composition in full: manifest, every source file, and current prop values — the state an update_composition edit applies to.create_composition — Creates a new composition from TSX source and opens it as a tab in the user's Motion page. `files` maps path to source and must include the update_composition — Edits an existing composition. Each file sent replaces the file at that path; files not sent are kept. Changing the schema keeps prop valuesset_props — Sets prop values on a composition, the same values the user's controls change. Merged by key; keys sent replace their current values.inspect_composition — Renders frames of a composition in the user's tab and returns them as one labelled contact sheet; nothing is saved or changed. atFrames takecheck_playback — Plays a composition on the user's stage from the first frame to the last, through the same preview a person watches (which inspect_compositiget_problems — Lists what went wrong in the user's tab: frames that failed to render (with the frame and the engine's message), a preview that stopped moviNot tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.