HyperCodeMotion MCP
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Validate AI-made motion graphics and package them as editable HyperCodeMotion projects.
| Author | io.github.jasp402 |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 655 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"HyperCodeMotion MCP": {
"url": "https://mcp.hypercodemotion.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (9)
get_capabilitiesread-onlyList the HyperCodeMotion JSON formats, layer types and properties, and effect presets that HyperCodeMotion Studio supports, how to reference files the user keeps in Studio by id, the screen rule that decides type size (field screen: the canvas wins over a requested size), a runtime layer that keeps an existing Lottie, glTF or GSAP file and seeks it, scene transitions (field transitions), a short start guide (field start), and the Studio contract revision they come from. Call it before designing.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_motion_reciperead-onlyReal, validated JSON/HTML/CSS patterns for looks the basics do not give: riso print, choreography, audio, camera, code textures, UI mockups, per-scene backgrounds, 13 style looks. Without name: the index.
Parameters:
name— string — Recipe from the index, e.g. riso or look:cartel.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_hcmotionValidate a finished HyperCodeMotion composition and package it as a .hcmotion project file, the format HyperCodeMotion Studio opens. If the composition has problems, returns created: false with the errors to fix and stores nothing. On success, stores the file temporarily and returns an `open` link (opens the project in HyperCodeMotion Studio) and a `download` link; both expire 24 hours after creation. It does not render video or generate media.
Parameters:
json(required) — The full composition (version, name, width, height, fps, duration, background, layers…), as an object or JSON-encoded string.name— string — Optional project name.
Hints: read-only no · destructive no · idempotent no · open-world no
get_templateread-onlyReturn the full design of a template from the HyperCodeMotion Studio gallery, by its id and format: brief (palette, fonts, frame, rhythm), scenes with timings, and the composition with its HTML scene documents and layers. Use it as the design reference when asked to follow a template; it does not create or store anything.
Parameters:
template(required) — string — Template id, such as "mix-promo-editorial".format— string — Aspect ratio of the video being made. Defaults to 16:9.
Hints: read-only yes · destructive no · idempotent yes · open-world no
validate_jsonread-onlyCheck a composition (layers), design (elements), or improvement patch (add/change/remove/sfx) and return actionable errors and warnings. Rejects measurable text that cannot fit the canvas safe area, text that crosses the canvas, and line-height below 1. This is not proof of a successful render.
Parameters:
json(required) — HyperCodeMotion JSON object or JSON-encoded string to validate.composition— object — Optional original composition used to resolve patch references and timings.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_recreation_briefStart turning a public motion video into an official HyperCodeMotion Studio gallery template. Use it whenever the user sends the link of a prompt-motion.com or oneshotted.io video together with a moderator code, with or without other words: that means publish it as a template. Takes that link and code (adminCode) and what that page shows (its video file, prompt, title and author, read by the caller, since the source sites often refuse this server) and returns the source details (title, author, and the published prompt when the page shows it), the brief (how to recreate it in three formats with the HyperCodeMotion signature, and the gallery card to fill in) and reference frames of the original video as images, labelled with their times. The first call starts extracting those frames and may answer reference.status: preparing; call it again until it is ready, and do not build before seeing them. When it answers reference.status: upload (prompt-motion.com refuses servers), run upload.script in a code or shell tool to send the video, then call it again. If the video is already a template, says so with its status instead; an unfinished proposal left idle for 20 minutes (another session) is discarded and the brief starts over (field restarted). Without a valid moderator code it answers needsCode.
Parameters:
url(required) — string — Link of the video's page, such as https://prompt-motion.com/<id> or https://oneshotted.io/v/<slug>.adminCode(required) — string — The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.title— string — The video's title on the page.video— string — Address of the page's video file (.mp4 on media.prompt-motion.com or r2.oneshotted.io), as read on the page.author— string — The author's name, only when the page names one.prompt— string — The prompt the page publishes with the video, as read on the page.authorUrl— string — The author's profile link, when the page gives one.
Hints: read-only no · destructive no · idempotent yes · open-world yes
propose_templateSubmit a recreated video as an official HyperCodeMotion Studio gallery template, with the moderator code: the source link, its three compositions (cuadrado 1080×1080, vertical 1080×1920, horizontal 1920×1080) and the gallery card. It checks the source, the compositions and the card; if anything fails it returns accepted: false with the errors to fix and keeps it as a draft with a code, to be fixed with patch (estimated text overflows are only warnings). Do not call validate_json first: this runs the same checks. When accepted, the composition in the original's format is rendered with the Studio engine and compared with the original frame by frame; get_proposal_status returns that comparison. To send fixes after a comparison, call it again with the same code (up to 3 comparisons): send only patch (the changes, applied to the stored compositions; card may be left out) instead of the three full compositions, unless you are redesigning. Nothing is published until publish_template. A video that is already a template is not stored twice.
Parameters:
url(required) — string — Link of the source video's page, the same one given to get_recreation_brief.adminCode(required) — string — The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.card— object — Gallery card, in Spanish. Required on a first proposal; a revision keeps the previous one when left out.code— string — Only to send a revision after a comparison: the tracking code of the first proposal.patch— array — Only with code, instead of compositions: the changes to the stored compositions. Each item {op: replace|add|remove|edit, path: JSON pointer such as /layers/3/props/fontSize or /docs/s1, value (replace, add), find and replace (edit: changes one exact piece of a text such as a doc's HTML or CSS; find must appear once), variants: which of cuadrado, vertical, horizontal (default all three)}.compositions— object — The three compositions, as objects or JSON-encoded strings. Required on a first proposal; a revision may send patch instead.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_proposal_statusread-onlyReturn the status of a gallery template proposal by the tracking code propose_template gave: comparing (it waits a little while the comparison renders), review (with the comparison sheet as an image: original and recreation side by side at the same moments), rendering (its media are rendered and it is being committed to the Studio code), published (with its template id and the link of its pull request, whose preview shows it in the gallery), failed (with the reason) or retired.
Parameters:
code(required) — string — The tracking code.
Hints: read-only yes · destructive no · idempotent yes · open-world no
publish_templatePublish a compared template as an official HyperCodeMotion Studio gallery template once its comparison with the original looks faithful. Takes the tracking code, the moderator code and notes on what is consciously different from the original and why. Its gallery videos are rendered and the template is committed to the Studio code on its own branch, with a pull request whose preview shows it in the gallery: a moderator approves (merges) or discards it there. get_proposal_status gives the pull request link.
Parameters:
code(required) — string — The tracking code.adminCode(required) — string — The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.notes(required) — string — Up to 600 characters: what is consciously different from the original and why, or that nothing is.
Hints: read-only no · destructive no · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.