Skip to main content
Glama

Server Details

Validate AI-made motion graphics and package them as editable HyperCodeMotion projects.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
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

A4.1/5.0

Scored across 10 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
create_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.

NameRequiredDescriptionDefault
jsonYesThe full composition (version, name, width, height, fps, duration, background, layers…), as an object or JSON-encoded string.
nameNoOptional project name.
mediaNoThe 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

NameRequiredDescription
openNo
bytesNo
mediaNo
errorsYes
createdYes
downloadNo
warningsYes
expiresAtNo

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 CapabilitiesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
startNo
screenYes
sourceNo
formatsYes
presetSlotsYes
transitionsNo
userMaterialsNo
fullyValidatedYes
contractVersionYes
layerPropertiesYes
sourceSchemaShaNo
commonPropertiesNo
sourcePresetsShaNo
reservedCodeNamesNo
layerPropertiesNoteNo

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 recipeA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
nameNoRecipe from the index, e.g. riso or look:cartel.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 statusA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
codeYesThe tracking code.

Output Schema

NameRequiredDescription
codeNo
nameNo
errorNo
foundYes
reasonNo
sourceNo
statusNo
studioNo
compareNo
messageNo
officialNo
templateNo
publishedNo

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 briefA
Idempotent
Inspect

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.

NameRequiredDescriptionDefault
urlYesLink of the video's page, such as https://prompt-motion.com/<id> or https://oneshotted.io/v/<slug>.
titleNoThe video's title on the page.
videoNoAddress of the page's video file (.mp4 on media.prompt-motion.com or r2.oneshotted.io), as read on the page.
authorNoThe author's name, only when the page names one.
promptNoThe prompt the page publishes with the video, as read on the page.
adminCodeYesThe moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.
authorUrlNoThe author's profile link, when the page gives one.

Output Schema

NameRequiredDescription
okYes
codeNo
noteNo
briefNo
errorNo
groupsNo
promptNo
sourceNo
statusNo
uploadNo
formatsNo
messageNo
templateNo
needsCodeNo
needsPageNo
referenceNo
maxDurationNo
alreadyExistsNo
promptCompleteNo

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 templateA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
formatNoAspect ratio of the video being made. Defaults to 16:9.
templateYesTemplate id, such as "mix-promo-editorial".

Output Schema

NameRequiredDescription
nameNo
briefNo
errorNo
foundYes
formatNo
scenesNo
templateNo
compositionNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
urlYesLink of the source video's page, the same one given to get_recreation_brief.
cardNoGallery card, in Spanish. Required on a first proposal; a revision keeps the previous one when left out.
codeNoOnly to send a revision after a comparison: the tracking code of the first proposal.
patchNoOnly 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)}.
adminCodeYesThe moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.
compositionsNoThe three compositions, as objects or JSON-encoded strings. Required on a first proposal; a revision may send patch instead.

Output Schema

NameRequiredDescription
codeNo
roundNo
errorsYes
statusNo
messageNo
acceptedYes
templateNo
duplicateNo

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

NameRequiredDescriptionDefault
codeYesThe tracking code.
notesYesUp to 600 characters: what is consciously different from the original and why, or that nothing is.
adminCodeYesThe moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.

Output Schema

NameRequiredDescription
codeNo
errorNo
statusNo
messageNo
acceptedYes
officialNo
templateNo

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
filesYesOne 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

NameRequiredDescription
doneNo
pageNo
partNo
errorNo
scriptNo
statusNo
uploadNo
expiresAtNo
partBytesNo
maxFileBytesNo

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 JSONA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
jsonYesHyperCodeMotion JSON object or JSON-encoded string to validate.
compositionNoOptional original composition used to resolve patch references and timings.

Output Schema

NameRequiredDescription
modeYes
validYes
errorsYes
formatYes
warningsYes
fullyValidatedYes
contractVersionYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 2 tool updates
    • Changedcreate_hcmotion2 fields changed
      • addedInput schema / properties / media
        Added 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"
        +}
      • addedOutput schema / properties / media
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "bytes": {
        +        "type": "number"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Addedstart_media_upload
  2. 1 tool update
    • Changedget_capabilities1 field changed
      • addedOutput schema / properties / reservedCodeNames
        Added value: +{
        +  "properties": {
        +    "codeLayer": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "component": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rule": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  3. 1 tool update
    • Addedget_motion_recipe
  4. 1 tool update
    • Changedget_capabilities4 fields changed
      • addedOutput schema / properties / commonProperties
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / layerPropertiesNote
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / start
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / transitions
        Added value: +{
        +  "type": "object"
        +}
  5. 1 tool update
    • Changedpropose_template4 fields changed
      • changedInput schema / properties / card / description
        Previous 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."
      • changedInput schema / properties / compositions / description
        Previous 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."
      • addedInput schema / properties / patch
        Added 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"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "url",
        -  "adminCode",
        -  "compositions",
        -  "card"
        -]New value: +[
        +  "url",
        +  "adminCode"
        +]
  6. 4 tool updates
    • Changedget_proposal_status1 field changed
      • addedOutput schema / properties / official
        Added value: +{
        +  "type": "object"
        +}
    • Changedget_recreation_brief3 fields changed
      • addedInput schema / properties / adminCode
        Added value: +{
        +  "description": "The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[
        +  "url",
        +  "adminCode"
        +]
      • addedOutput schema / properties / needsCode
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedpropose_template2 fields changed
      • addedInput schema / properties / adminCode
        Added value: +{
        +  "description": "The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "url",
        -  "compositions",
        -  "card"
        -]New value: +[
        +  "url",
        +  "adminCode",
        +  "compositions",
        +  "card"
        +]
    • Changedpublish_template3 fields changed
      • addedInput schema / properties / adminCode
        Added value: +{
        +  "description": "The moderator code the user gave with the link. Required: only moderators can make gallery templates. Never repeat it back.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "code",
        -  "notes"
        -]New value: +[
        +  "code",
        +  "adminCode",
        +  "notes"
        +]
      • addedOutput schema / properties / official
        Added value: +{
        +  "type": "object"
        +}
  7. 1 tool update
    • Changedget_capabilities2 fields changed
      • addedOutput schema / properties / screen
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "contractVersion",
        -  "formats",
        -  "layerProperties",
        -  "presetSlots",
        -  "fullyValidated"
        -]New value: +[
        +  "contractVersion",
        +  "formats",
        +  "layerProperties",
        +  "presetSlots",
        +  "screen",
        +  "fullyValidated"
        +]
  8. 1 tool update
    • Changedget_capabilities1 field changed
      • addedOutput schema / properties / userMaterials
        Added value: +{
        +  "type": "string"
        +}
  9. 1 tool update
    • Changedget_recreation_brief1 field changed
      • addedOutput schema / properties / upload
        Added value: +{
        +  "type": "object"
        +}
  10. 1 tool update
    • Changedget_recreation_brief6 fields changed
      • addedInput schema / properties / author
        Added value: +{
        +  "description": "The author's name, only when the page names one.",
        +  "type": "string"
        +}
      • addedInput schema / properties / authorUrl
        Added value: +{
        +  "description": "The author's profile link, when the page gives one.",
        +  "type": "string"
        +}
      • addedInput schema / properties / prompt
        Added value: +{
        +  "description": "The prompt the page publishes with the video, as read on the page.",
        +  "type": "string"
        +}
      • addedInput schema / properties / title
        Added value: +{
        +  "description": "The video's title on the page.",
        +  "type": "string"
        +}
      • addedInput schema / properties / video
        Added 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"
        +}
      • addedOutput schema / properties / needsPage
        Added value: +{
        +  "type": "boolean"
        +}
  11. 4 tool updates
    • Addedget_proposal_status
    • Addedget_recreation_brief
    • Addedpropose_template
    • Addedpublish_template
  12. 1 tool update
    • Addedget_template
  13. 1 tool update
    • Addedcreate_hcmotion
  14. 2 tool updates
    • First observedget_capabilities
    • First observedvalidate_json

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.