Motion by Frapea
com.frapea/motion · v1.0.0
One sentence to a finished animation: your AI writes motion graphics as code and checks real frames.
MCPremoteno credentialsFiles & storageWeb search & scraping
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 19 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
B 79/100
What it does: 19 tools · 9 read, 6 write · Files & storage, Web search & scraping
No tool could be tested safely. Only read-only tools that need no input are called.
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +6
- Read/write annotations: 0
- Safe test call: +8
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://motion.frapea.com/mcpTools
19 tools listed at last check
close_compositionCloses a composition and removes it from the user's tabs. Use it to clear up attempts you made along the way — an agent that leaves ten of them behind has handed the user the tidying. Needs an explicit id; it will never guess the active one.connectPairs you with a Motion browser tab. The user has an eight-character code on screen, under the Connect MCP button — something like K7M4-P2Q9. Call this once at the start. It returns a session token; pass that token to every other tool. The code itself stops working the moment it is used, so keep thecreate_sessionStarts a Motion session WITHOUT the user having a tab open. Use this when they have no pairing code — you can create and edit compositions immediately, and give them the returned link when they want to watch. Anything needing to SEE the result (inspect_composition) or touching their media still requwait_for_tabWAIT UNTIL THEY HAVE MOTION OPEN. Everything that has to SEE a composition — inspect_composition, and anything touching their media — runs in their browser, so it needs the tab. Ask them to open the session link, then call this instead of asking them to tell you when it is ready. It returns as soontell_userPUT A SENTENCE ON THEIR SCREEN, as you work. They are watching the Motion tab while you build, and between your tool calls it shows nothing — a busy agent and a hung one look identical from there. Call this at every step that takes more than a few seconds: what you are about to do, what just landed,read_skillMotion's authoring guides. Read {topic:'motion'} first — it is the API contract: what compiles, what resolves, what renders. Then {topic:'motion-craft'} ALWAYS before writing a line, because the API guide alone produces compositions that render correctly and look generated. 'motion-text' for typogralist_mediaThe user's media library: folders, and files with id, name, kind, size and folder. `storage` says whether a file is 'linked' (still on their disk) or 'copied' (held by the browser) — a linked file can need the user to re-grant access after a reload.put_mediaAdds a file to the library from a URL — the BROWSER fetches it, so nothing travels through this connection, but it only works on https hosts that send CORS headers. TO UPLOAD A FILE YOU ALREADY HAVE ON DISK, DO NOT USE THIS: run `curl -X POST --data-binary @FILE 'BRIDGE/media/upload?token=TOKEN&nameget_mediaThe raw bytes of one file, base64. Capped at about 600 KB — for anything larger, and for every video, use inspect_media instead: it answers what is IN the file for a fraction of the size.inspect_mediaLooks INSIDE a file. Returns ONE contact sheet — every requested moment as a labelled cell in a single grid image. Pass atSec (up to 12 timestamps, seconds); omit it for an even spread across the whole clip. This is how you analyse a video second by second without paying for a dozen separate images.organize_mediaLibrary housekeeping. action: 'move' (ids + toFolder), 'delete' (ids), 'createFolder' (name + optional parent), 'deleteFolder' (folder — the files inside move up one level, nothing is lost).list_compositionsThe compositions open in the tab, and which one is on screen.get_compositionOne composition in full: manifest, every source file, and current prop values. Read this before update_composition so you edit what is actually there.create_compositionWrites a new composition and opens it as a tab in front of the user. `files` maps path to TSX source and must include the entry (default composition.tsx). Read read_skill {topic:'motion'} and {topic:'motion-craft'} first — this API is not guessable and the craft guide is what stops the result lookinupdate_compositionEdits an existing composition. `files` is MERGED by path, so send only what changed. Changing the schema keeps any prop values that still have a home.set_propsSets prop values on a composition — the same values the user's controls change. Merged, so you can send one key.inspect_compositionLOOK AT WHAT YOU MADE. Renders frames of a composition and returns them as one labelled contact sheet. Pass atFrames (up to 12), or omit them: the sheet is then an even spread PLUS the joins between your scenes (labelled "end of a scene", "start of a scene", "mid transition") — where a card caught hcheck_playbackPLAY IT THROUGH. Puts the composition on the user's stage and plays it from frame 0 through the real preview — the path a person watches, which inspect_composition does not take — from the first frame to the last. Buffering is fine; any error ends it. Answers within about 20 s: {status:"running", atget_problemsWHAT WENT WRONG in the user's tab: frames that failed to render (with the frame and the engine's own words), a preview that stopped moving (and at which frame, and why), compositions that would not load, clips that will not decode, missing footage, failed exports, a page the browser killed — plus wa
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/com.frapea/motion)