HyperCodeMotion MCP
Server Details
Validate AI-made motion graphics and package them as editable HyperCodeMotion projects.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
- Repository
- jasp402/HyperCodeMotion-MCP
- GitHub Stars
- 1
- Server Listing
- HyperCodeMotion MCP
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 10 tools
Most tools have clearly distinct roles across composition creation, validation, media upload, and the template proposal/publish workflow. There is some overlap between validate_json and the validation performed by create_hcmotion/propose_template, but the descriptions clarify when each should be used.
All tool names use a consistent snake_case verb_noun pattern such as create_hcmotion, get_template, propose_template, publish_template, and start_media_upload. The convention is predictable throughout the set.
Ten tools is well-scoped for a server covering composition packaging, validation, media upload, reference material, and a multi-step gallery template workflow. Each tool appears to earn its place without excessive surface area.
The surface covers the main lifecycle: capabilities discovery, recipes, validation, packaging, media upload, template retrieval, recreation brief, proposal, status, and publishing. Minor gaps remain, such as listing/searching gallery templates, checking upload status, or retiring/removing proposals.
Available Tools
10 toolscreate_hcmotionCreate HyperCodeMotion project fileAInspect
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. Pass the user's images, videos and audio in media (public https links, or files sent with start_media_upload) and they travel inside the file, so the project opens complete. It does not render video or generate media.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | The full composition (version, name, width, height, fps, duration, background, layers…), as an object or JSON-encoded string. | |
| name | No | Optional project name. | |
| media | No | The user's images, videos, audio or fonts to pack inside the file (binary, max 200 MB in total). Each item: {id, url} with a public https link the server downloads, or {id, upload} with the upload code from start_media_upload once the file was received. Layers use it as props.asset = id (image, video, audio) or <img src="asset:id"> in an HTML scene. |
Output Schema
| Name | Required | Description |
|---|---|---|
| open | No | |
| bytes | No | |
| media | No | |
| errors | Yes | |
| created | Yes | |
| download | No | |
| warnings | Yes | |
| expiresAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply the generic mutation/safety flags (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description carries the real disclosure and does it well: failure returns created:false with errors and stores nothing, success stores the file temporarily, and both open/download links expire after 24 hours. It also discloses that media binaries travel inside the packaged file and are capped, plus the 24-hour lifetime constraint an agent must communicate to the user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the failure path, then output/lifetime, then media — a logical order an agent can parse quickly. The media sentence partially duplicates the schema's own media description, which is the only real waste across three otherwise dense sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter packaging tool with an output schema, the agent has everything needed to call it correctly: input expectations, success and failure shapes, link lifetime, media capacity constraints, and the explicit non-goal of rendering. The output schema covers return structure, so the description does not need to enumerate fields further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents json, name and the media item shape, and the description largely restates it ('public https links, or files sent with start_media_upload'). It does add the integration point with the start_media_upload sibling and the layer reference convention, which is genuinely useful cross-tool context. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource pair: 'Validate a finished HyperCodeMotion composition and package it as a .hcmotion project file, the format HyperCodeMotion Studio opens.' This clearly separates it from validate_json (validation only) and start_media_upload (media intake) among the siblings, and the trailing 'It does not render video or generate media' rules out the most likely confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is the terminal step for a finished composition and explicitly excludes rendering/generation, which routes the agent away from a wrong expectation. It also implies the companion workflow by naming start_media_upload for files not yet hosted. It stops short of naming validate_json as a cheaper pre-check, so no explicit alternative is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesHyperCodeMotion CapabilitiesARead-onlyIdempotentInspect
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, scene transitions (field transitions), a short start guide (field start), the names code layers and components must not redeclare (field reservedCodeNames), and the Studio contract revision they come from. Call it before designing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| start | No | |
| screen | Yes | |
| source | No | |
| formats | Yes | |
| presetSlots | Yes | |
| transitions | No | |
| userMaterials | No | |
| fullyValidated | Yes | |
| contractVersion | Yes | |
| layerProperties | Yes | |
| sourceSchemaSha | No | |
| commonProperties | No | |
| sourcePresetsSha | No | |
| reservedCodeNames | No | |
| layerPropertiesNote | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds useful content context such as the contract revision and specific rules/fields, but does not disclose additional behavioral traits like caching, version compatibility handling, or auth requirements beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with 'List the HyperCodeMotion...', which is good, but it continues as a single long run-on sentence with many comma-separated clauses. Every listed item is relevant, but the structure could be significantly clearer with bullets or shorter sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, a rich annotation set, and an existing output schema, the description is largely complete: it states what the tool returns and when to call it. It could be improved by briefly clarifying that this is a static reference endpoint, but no critical information needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain; the baseline for zero-parameter tools is 4. The description's references to fields like screen, transitions, start, and reservedCodeNames describe returned content, not input arguments, and do not create ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool lists HyperCodeMotion capabilities, including formats, layer types, presets, reference conventions, screen rules, runtime layers, transitions, start guide, reserved names, and contract revision. The specific verb 'List' and detailed content make the purpose unambiguous, but it does not explicitly distinguish itself from sibling tools such as get_template or get_motion_recipe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing instruction 'Call it before designing' gives clear timing and context for using the tool. It does not name alternatives or state when not to use it, but for a prerequisite capabilities-reference endpoint this is adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_motion_recipeGet motion recipeARead-onlyIdempotentInspect
Real, 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, professional glitch. Without name: the index.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Recipe from the index, e.g. riso or look:cartel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world behavior, so the description need not repeat safety facts. It adds the useful claims that results are 'real, validated' and that omitting the name returns the index, but leaves out size, pagination, or output-shape context for a lookup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key claim — validated patterns for looks the basics do not give — is front-loaded, and the fallback behavior is stated last without preamble. The long keyword enumeration is dense but serves as discoverability, though it could be more cleanly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single optional parameter with full schema coverage, strong annotations, and no output schema, the description covers what the tool provides and both invocation modes. It is nearly complete, missing only output volume or listing details that an agent might want before calling it blind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains that name is drawn from the index with examples. The description goes beyond the schema by stating what happens when the optional parameter is omitted ('Without name: the index'), which is genuine semantics the schema does not supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — validated JSON/HTML/CSS recipe patterns — and enumerates the distinct looks it covers, which is more specific than the title alone. It does not explicitly differentiate itself from siblings such as get_template or get_capabilities, so an agent must infer that this is the recipe catalog rather than a generic template fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete usage rule: without a name you get the index, with a name you get a specific recipe. It never says when to prefer this over get_template or when it is the wrong tool, leaving the main routing decision implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_proposal_statusGet template statusARead-onlyIdempotentInspect
Return 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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The tracking code. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| name | No | |
| error | No | |
| found | Yes | |
| reason | No | |
| source | No | |
| status | No | |
| studio | No | |
| compare | No | |
| message | No | |
| official | No | |
| template | No | |
| published | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavior beyond annotations: the 'comparing' state blocks briefly while the comparison renders, and each terminal state carries specific payload implications (comparison image, template id plus PR link, failure reason). Annotations already cover read-only/idempotent/closed-world, so this extra latency and per-state detail is real added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence, front-loaded with the core purpose and then the status enumeration, with no filler. It is slightly run-on across the parenthetical state explanations, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple read-only status check: output schema covers return fields, annotations cover safety, and the description supplies prerequisite, latency caveat, and state semantics. Nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented, so the baseline is 3; the description adds provenance the schema lacks by naming propose_template as the origin of the tracking code, which materially helps an agent supply the right value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return the status of a gallery template proposal') and ties the input to the sibling tool that produces it (propose_template). The enumerated status values further distinguish it from sibling tools like get_template or get_recreation_brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly implies the usage context: call it with the tracking code returned by propose_template, and it explains how to interpret each possible status. It doesn't explicitly say when not to use it or name alternatives for other template queries, but the prerequisite is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recreation_briefGet template recreation briefAIdempotentInspect
Start 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Link of the video's page, such as https://prompt-motion.com/<id> or https://oneshotted.io/v/<slug>. | |
| title | No | The video's title on the page. | |
| video | No | Address of the page's video file (.mp4 on media.prompt-motion.com or r2.oneshotted.io), as read on the page. | |
| author | No | The author's name, only when the page names one. | |
| prompt | No | The prompt the page publishes with the video, as read on the page. | |
| adminCode | Yes | The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back. | |
| authorUrl | No | The author's profile link, when the page gives one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| code | No | |
| note | No | |
| brief | No | |
| error | No | |
| groups | No | |
| prompt | No | |
| source | No | |
| status | No | |
| upload | No | |
| formats | No | |
| message | No | |
| template | No | |
| needsCode | No | |
| needsPage | No | |
| reference | No | |
| maxDuration | No | |
| alreadyExists | No | |
| promptComplete | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only declare that it is not read-only, is open-world, is idempotent, and is non-destructive. The description adds substantial behavioral context beyond that: the first call starts frame extraction and may return reference.status: preparing, the caller must supply page metadata because the source sites often refuse this server, upload.script may be required, and an idle unfinished proposal can be discarded after 20 minutes with a restarted brief.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and most sentences carry necessary workflow or state information. It is a dense single paragraph that could be made more scannable with structure, but there is little obvious filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the complex asynchronous workflow: extraction states, upload branch, the need to repeat calls until reference frames are ready, already-template handling, stale-proposal restart, and invalid-code handling. Since an output schema exists, the description need not explain the full return shape, and nothing critical for correct invocation appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful context about why the caller supplies title, video, author, and prompt: those values must be read from the page because the source sites often refuse this server. It also emphasizes that adminCode is a moderator code that is required and must never be repeated back, though it does not explain authorUrl.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: starting the process of turning a public motion video into an official HyperCodeMotion Studio gallery template. It explains what the tool takes in and returns, and differentiates the step from the later upload and build steps by saying to run upload.script only in the upload state and not to build before seeing the reference frames.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: use it whenever the user sends a prompt-motion.com or oneshotted.io link together with a moderator code, with or without other words. It also describes the repeat-call loop, when to run upload.script, and what happens when the video is already a template or the moderator code is invalid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateGet HyperCodeMotion templateARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Aspect ratio of the video being made. Defaults to 16:9. | |
| template | Yes | Template id, such as "mix-promo-editorial". |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| brief | No | |
| error | No | |
| found | Yes | |
| format | No | |
| scenes | No | |
| template | No | |
| composition | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds value by confirming no creation/storage side effects and by sketching the shape of the returned design artifact, which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and resource before the enumerated return contents. The parenthetical/list detail is dense but each item is informative, so it earns its space; minimal trimming would be possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description need not detail return fields, yet it still summarizes them, and annotations carry the safety contract. For a two-parameter read tool this leaves nothing an agent needs missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (template id with example, format enum with default) are fully documented in the schema. The description only restates 'by its id and format' without adding format/default or id-resolution semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return'), resource ('template from the HyperCodeMotion Studio gallery'), and lookup keys ('by its id and format'), then enumerates exactly what is returned (brief, scenes, composition, HTML docs, layers). The closing 'it does not create or store anything' cleanly separates it from the create_hcmotion sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use condition: 'Use it as the design reference when asked to follow a template', plus an explicit negative ('does not create or store anything'). It stops short of naming an alternative sibling (e.g. create_hcmotion) as the thing to reach for when you do want to create, so it is clear context without full routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_templatePropose a gallery templateAInspect
Submit 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Link of the source video's page, the same one given to get_recreation_brief. | |
| card | No | Gallery card, in Spanish. Required on a first proposal; a revision keeps the previous one when left out. | |
| code | No | Only to send a revision after a comparison: the tracking code of the first proposal. | |
| patch | No | 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)}. | |
| adminCode | Yes | The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back. | |
| compositions | No | The three compositions, as objects or JSON-encoded strings. Required on a first proposal; a revision may send patch instead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| round | No | |
| errors | Yes | |
| status | No | |
| message | No | |
| accepted | Yes | |
| template | No | |
| duplicate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false; the description adds the real behavioral detail: on failure it keeps a draft with code and returns accepted:false with errors, text overflows are warnings only, up to 3 comparisons, and duplicates are not stored twice. That is substantial context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then the revision workflow, then the publish caveat, so an agent can stop reading early. Some sentences are long with embedded parentheticals ('estimated text overflows are only warnings', the 1080x1080 dimension list) that slow scanning, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex open-world mutation with nested compositions, patch semantics and an output schema, the description covers validation outcome shape, failure recovery, revision limits, dedup and the follow-up tool. Return values are delegated correctly to output_schema and get_proposal_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by stating the conditional contract: code+patch replaces the three full compositions, card may be omitted on revision, and patch applies to stored compositions. It does not add format detail for url or adminCode beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Submit a recreated video as an official ... gallery template') and names the three artifacts required (source link, three compositions, gallery card). It is immediately distinguishable from publish_template, validate_json and get_proposal_status, all of which are named and given a role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Do not call validate_json first: this runs the same checks', tells the agent to re-call with the same code for revisions (up to 3 comparisons), to prefer patch over full compositions unless redesigning, and that nothing is published until publish_template. When-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_templatePublish a gallery templateAInspect
Publish 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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The tracking code. | |
| notes | Yes | Up to 600 characters: what is consciously different from the original and why, or that nothing is. | |
| adminCode | Yes | The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| error | No | |
| status | No | |
| message | No | |
| accepted | Yes | |
| official | No | |
| template | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that gallery videos are rendered, code is committed to a branch, and a pull request is opened for moderator approval or discard — significant, non-obvious side effects and a human review gate. Given a three-parameter mutation with openWorldHint=true, a note on timing or whether the call blocks until rendering finishes would have completed it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph that front-loads the action, then the required inputs, then the downstream effects. Almost every clause carries a distinct fact, though the run-on syntax where rendering, branching, and PR approval are strung together costs a little readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the safety profile, so the description only needs to explain the human-facing lifecycle — which it does: inputs, rendering, branch/PR, moderator merge-or-discard, and where to check status. Nothing an agent needs before calling is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented with meaning and constraints (600-char notes, moderator-only adminCode, never repeat it). The description restates the parameter roles in prose but adds no syntax or format detail beyond the schema, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Publish a compared template as an official ... gallery template', which sets it apart from ordinary template creation. It does not explicitly frame the boundary with the sibling propose_template (presumably the earlier comparison step), so differentiation is implied by the word 'compared' rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition for use ('once its comparison with the original looks faithful') and routes to get_proposal_status for the pull request link. It stops short of stating when NOT to use it or naming propose_template as the alternative for an un-compared template.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_media_uploadSend files for a projectAInspect
Open an upload for the user's own images, videos, audio or fonts that are not at a public https link (attachments, files in your sandbox), so create_hcmotion can pack them inside the .hcmotion (binary, max 150 MB per file, 200 MB per project). Takes the files' ids (the ones layers will use as props.asset) and returns: script, a shell function to send each file in parts with curl (needs network access to mcp.hypercodemotion.com); part and done, the endpoints it uses (POST raw bytes of up to partBytes per part, then done); page, a link where the user drops the files in a browser; and upload, the code to put in create_hcmotion media as {id, upload}. Try the script first; if your shell cannot reach the host, give the user page and wait until they say the files are in. The upload lasts 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | One entry per file: id (letters, digits, . - _; what layers use as props.asset) and optional name (what the user calls it, shown on the drop page). |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | No | |
| page | No | |
| part | No | |
| error | No | |
| script | No | |
| status | No | |
| upload | No | |
| expiresAt | No | |
| partBytes | No | |
| maxFileBytes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses file size limits (150 MB per file, 200 MB per project), the 24-hour upload lifetime, the network requirement for the curl script, the fallback browser workflow, and the exact shape of returned values. The annotations are consistent with an upload-initialization operation that is not read-only, destructive, idempotent, or open-world in the sense of arbitrary external fetching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and largely front-loaded, with no filler sentences. It is slightly lengthy for a single paragraph, and breaking the return values and fallback workflow into clearer segments would improve scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers what the tool does, how to invoke it, what it returns, size limits, network requirements, fallback behavior, and upload duration. An output schema exists, but the description still gives enough context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% description coverage for the files parameter and its id/name fields. The description nevertheless adds useful meaning by explaining that ids are what layers will use as props.asset and by providing file-size constraints not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: opening an upload for the user's own images, videos, audio, or fonts that are not at a public https link. It explains the downstream purpose, packing files inside the .hcmotion via create_hcmotion, which clearly distinguishes it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use this tool: files not at a public https link, such as attachments or sandbox files. It also gives a clear operational sequence, trying the script first and falling back to the page if the shell cannot reach the host, and notes the downstream create_hcmotion usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_jsonValidate HyperCodeMotion JSONARead-onlyIdempotentInspect
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. Warns when a code layer or component declares a name the engine already provides (RESERVED_NAME_DECLARED). This is not proof of a successful render.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | HyperCodeMotion JSON object or JSON-encoded string to validate. | |
| composition | No | Optional original composition used to resolve patch references and timings. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| valid | Yes | |
| errors | Yes | |
| format | Yes | |
| warnings | Yes | |
| fullyValidated | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description adds real behavioral context — the specific rejection rules (text overflow, crossing canvas, line-height below 1) and the RESERVED_NAME_DECLARED warning. It also discloses the important limitation that passing validation does not guarantee a successful render.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and payload types, then enumerates rules compactly in three sentences with zero filler. Slightly dense with rule specifics but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description supplies the validation rules and a key limitation. Nearly complete for an agent to call it correctly; only workflow placement (when in the pipeline to call it) is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'json' and 'composition'. The description adds no format or syntax detail beyond restating that patches/designs are accepted, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('Check/validate') over three named payload types (composition, design, improvement patch) with parenthetical contents, making it clearly distinct from siblings like create_hcmotion. An agent can tell exactly what this operation does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage (validate a payload before rendering) and adds the useful caveat 'This is not proof of a successful render', but never states when to choose this over alternatives or any prerequisites/workflow ordering. Guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
create_hcmotion2 fields changed- added
Input schema / properties / mediaAdded value: +{ + "description": "The user's images, videos, audio or fonts to pack inside the file (binary, max 200 MB in total). Each item: {id, url} with a public https link the server downloads, or {id, upload} with the upload code from start_media_upload once the file was received. Layers use it as props.asset = id (image, video, audio) or <img src=\"asset:id\"> in an HTML scene.", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "upload": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "maxItems": 40, + "type": "array" +} - added
Output schema / properties / mediaAdded value: +{ + "items": { + "properties": { + "bytes": { + "type": "number" + }, + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +}
- Added
start_media_upload
1 tool update
- Changed
get_capabilities1 field changed- added
Output schema / properties / reservedCodeNamesAdded value: +{ + "properties": { + "codeLayer": { + "items": { + "type": "string" + }, + "type": "array" + }, + "component": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rule": { + "type": "string" + } + }, + "type": "object" +}
1 tool update
- Added
get_motion_recipe
1 tool update
- Changed
get_capabilities4 fields changed- added
Output schema / properties / commonPropertiesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / layerPropertiesNoteAdded value: +{ + "type": "string" +} - added
Output schema / properties / startAdded value: +{ + "type": "string" +} - added
Output schema / properties / transitionsAdded value: +{ + "type": "object" +}
1 tool update
- Changed
propose_template4 fields changed- changed
Input schema / properties / card / descriptionPrevious value: -"Gallery card, in Spanish."New value: +"Gallery card, in Spanish. Required on a first proposal; a revision keeps the previous one when left out." - changed
Input schema / properties / compositions / descriptionPrevious value: -"The three compositions, as objects or JSON-encoded strings."New value: +"The three compositions, as objects or JSON-encoded strings. Required on a first proposal; a revision may send patch instead." - added
Input schema / properties / patchAdded value: +{ + "description": "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)}.", + "items": { + "properties": { + "find": { + "type": "string" + }, + "op": { + "enum": [ + "replace", + "add", + "remove", + "edit" + ], + "type": "string" + }, + "path": { + "type": "string" + }, + "replace": { + "type": "string" + }, + "value": {}, + "variants": { + "items": { + "enum": [ + "cuadrado", + "vertical", + "horizontal" + ], + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "op", + "path" + ], + "type": "object" + }, + "type": "array" +} - changed
Input schema / requiredPrevious value: -[ - "url", - "adminCode", - "compositions", - "card" -]New value: +[ + "url", + "adminCode" +]
4 tool updates
- Changed
get_proposal_status1 field changed- added
Output schema / properties / officialAdded value: +{ + "type": "object" +}
- Changed
get_recreation_brief3 fields changed- added
Input schema / properties / adminCodeAdded value: +{ + "description": "The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "url" -]New value: +[ + "url", + "adminCode" +] - added
Output schema / properties / needsCodeAdded value: +{ + "type": "boolean" +}
- Changed
propose_template2 fields changed- added
Input schema / properties / adminCodeAdded value: +{ + "description": "The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "url", - "compositions", - "card" -]New value: +[ + "url", + "adminCode", + "compositions", + "card" +]
- Changed
publish_template3 fields changed- added
Input schema / properties / adminCodeAdded value: +{ + "description": "The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "code", - "notes" -]New value: +[ + "code", + "adminCode", + "notes" +] - added
Output schema / properties / officialAdded value: +{ + "type": "object" +}
1 tool update
- Changed
get_capabilities2 fields changed- added
Output schema / properties / screenAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "contractVersion", - "formats", - "layerProperties", - "presetSlots", - "fullyValidated" -]New value: +[ + "contractVersion", + "formats", + "layerProperties", + "presetSlots", + "screen", + "fullyValidated" +]
1 tool update
- Changed
get_capabilities1 field changed- added
Output schema / properties / userMaterialsAdded value: +{ + "type": "string" +}
1 tool update
- Changed
get_recreation_brief1 field changed- added
Output schema / properties / uploadAdded value: +{ + "type": "object" +}
1 tool update
- Changed
get_recreation_brief6 fields changed- added
Input schema / properties / authorAdded value: +{ + "description": "The author's name, only when the page names one.", + "type": "string" +} - added
Input schema / properties / authorUrlAdded value: +{ + "description": "The author's profile link, when the page gives one.", + "type": "string" +} - added
Input schema / properties / promptAdded value: +{ + "description": "The prompt the page publishes with the video, as read on the page.", + "type": "string" +} - added
Input schema / properties / titleAdded value: +{ + "description": "The video's title on the page.", + "type": "string" +} - added
Input schema / properties / videoAdded value: +{ + "description": "Address of the page's video file (.mp4 on media.prompt-motion.com or r2.oneshotted.io), as read on the page.", + "type": "string" +} - added
Output schema / properties / needsPageAdded value: +{ + "type": "boolean" +}
4 tool updates
- Added
get_proposal_status - Added
get_recreation_brief - Added
propose_template - Added
publish_template
1 tool update
- Added
get_template
1 tool update
- Added
create_hcmotion
2 tool updates
- First observed
get_capabilities - First observed
validate_json
Related MCP Connectors
One sentence to a finished animation: your AI writes motion graphics as code and checks real frames.
Video production studio for AI agents: AI media, motion graphics as code, timeline and export.
AI/VFX, CGI, motion & animation production preflight by objekts: locks, continuity, PoCs, estimates.
AI video editor: create projects, edit timelines, add captions and effects, and render videos.
Related MCP Servers
- AlicenseCqualityAmaintenanceEnables AI agents to turn natural-language creative direction, transcripts, and source media into fully structured, editable video projects, then verify and render delivery files.254MIT

DT.ly MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI agents to author and refine JSON-based motion-graphics compositions by editing layers, keyframes, easing curves, text animators, masks, effects, and other animation properties, then previewing rendered frames or video output.1,137 npmMIT
surehand-mcpofficial
AlicenseAqualityBmaintenanceLets your AI app work inside Adobe After Effects and prove what it did: an exact change report for every edit, pixel-proven restructures, delivery checks against your own spec, template stress tests and verified farm renders.4295MIT- AlicenseNot gradedqualityCmaintenanceEnables Claude to create, edit, validate, and animate video projects through structured project files, including rendering frames or exports, inspecting previews, and applying themes, templates, effects, and subtitles.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.