HyperCodeMotion MCP
by jasp402 · remote · no sign-in to list tools · v0.8.0 · published by GitHub user jasp402
Validate AI-made motion graphics and package them as editable HyperCodeMotion projects.
8 tools: 1 do something that can't be undone, 4 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things4Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http hypercodemotion https://mcp.hypercodemotion.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "get_proposal_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_proposal_status" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Can't be undone 1Claude Code: ask
publish_templatePublish a compared Community template in the HyperCodeMotion Studio gallery, marked «Community», once its comparison with the original looks faithful.No findings
Why it is in this group
- The name "publish_template" says "publish": a word for a change that another call does not undo.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Publish a compared Community template in the HyperCodeMotion Studio gallery, marked «Community», once its comparison with the original looks faithful. Takes the tracking code and notes on what is consciously different from the original and why. Its gallery videos are rendered and it then appears without manual review; get_proposal_status tells when.
Annotations the server declares
- title: Publish a Community template
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 4Claude Code: ask
create_hcmotionValidate a finished HyperCodeMotion composition and package it as a .hcmotion project file, the format HyperCodeMotion Studio opens.No findings
Why it is in this group
- The name "create_hcmotion" says "create": a word for a change.
Description, as the server wrote it Validate 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.
Annotations the server declares
- title: Create HyperCodeMotion project file
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
get_proposal_statusReturn the status of a Community template proposal by the tracking code propose_template gave: comparing (it waits a little while the comparison renders), review (with the comparis…1 finding
Why it is in this group
- The name "get_proposal_status" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_proposal_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_proposal_status" says "get": a word for reading.
Description, as the server wrote it Return the status of a Community 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, published, failed (with the reason) or retired, and its template id, which get_template accepts once it is published.
Annotations the server declares
- title: Get Community template status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_recreation_briefStart turning a public motion video into a HyperCodeMotion Studio gallery template.No findings
Why it is in this group
- The name "get_recreation_brief" says "get": a word for reading.
- The description's first verb is "start": a word for a change.
Description, as the server wrote it Start turning a public motion video into a HyperCodeMotion Studio gallery template. Takes the link of the video's page (prompt-motion.com or oneshotted.io) 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 Community template, says so with its status instead.
Annotations the server declares
- title: Get template recreation brief
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
propose_templateSubmit a recreated video as a HyperCodeMotion Studio gallery template: the source link, its three compositions (cuadrado 1080×1080, vertical 1080×1920, horizontal 1920×1080) and th…No findings
Why it is in this group
- The description's first verb is "submit": a word for a change.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Submit a recreated video as a HyperCodeMotion Studio gallery template: 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 stores nothing. 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). Nothing is published until publish_template. A video that is already a template is not stored twice.
Annotations the server declares
- title: Propose a Community template
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 3Claude Code: allow
get_capabilitiesList 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, t…No findings
Why it is in this group
- The name "get_capabilities" says "get": a word for reading.
Description, as the server wrote it List 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, and the Studio contract revision they come from.
Annotations the server declares
- title: HyperCodeMotion Capabilities
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_templateReturn 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 …No findings
Why it is in this group
- The name "get_template" says "get": a word for reading.
Description, as the server wrote it Return 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.
Annotations the server declares
- title: Get HyperCodeMotion template
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
validate_jsonCheck a composition (layers), design (elements), or improvement patch (add/change/remove/sfx) and return actionable errors and warnings.No findings
Why it is in this group
- The name "validate_json" says "validate": a word for reading.
Description, as the server wrote it Check 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.
Annotations the server declares
- title: Validate HyperCodeMotion JSON
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.8.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http hypercodemotion https://mcp.hypercodemotion.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__hypercodemotion__get_capabilities",
"mcp__hypercodemotion__get_template",
"mcp__hypercodemotion__validate_json"
],
"ask": [
"mcp__hypercodemotion__create_hcmotion",
"mcp__hypercodemotion__get_recreation_brief",
"mcp__hypercodemotion__propose_template",
"mcp__hypercodemotion__get_proposal_status",
"mcp__hypercodemotion__publish_template"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as hypercodemotion. Review it before you use it.
