# HyperCodeMotion MCP

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

- name: io.github.jasp402/hypercodemotion-mcp
- version: 0.7.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.jasp402%2Fhypercodemotion-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.jasp402%2Fhypercodemotion-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "hypercodemotion-mcp": {
      "type": "http",
      "url": "https://mcp.hypercodemotion.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-0d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,027 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 6 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 2,027 tokens to load them all
- tool set hash: 574071ed07a0bbb7b711044a5eaf0931
- tools last changed: 2026-10-20T10:03:50.850Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.jasp402/hypercodemotion-mcp.svg)](https://protogrid.dev/servers/io.github.jasp402/hypercodemotion-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `get_capabilities` changed (description, outputSchema)
  - before: List the HyperCodeMotion JSON formats, layer types and properties, and effect presets that HyperCodeMotion Studio supports, with the Studio contract revision they come from.
  - after: 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, and the Studio contract revision they come from.
- 2026-10-20 `get_recreation_brief` changed (description, outputSchema)
  - before: Start turning a public motion video into a HyperCodeMotion Studio gallery template. Takes the link of the video's page (prompt-motion.com or oneshotted.io) and what that page shows (its video file, prompt, title and author, read by the caller, since the source sites often refuse this server) and returns the source details (title, author, and the published prompt when the page shows it), the brief (how to recreate it in three formats with the HyperCodeMotion signature, and the gallery card to fill in) and reference frames of the original video as images, labelled with their times. The first call starts extracting those frames and may answer reference.status: preparing; call it again until it is ready, and do not build before seeing them. If the video is already a Community template, says so with its status instead.
  - after: Start turning a public motion video into a HyperCodeMotion Studio gallery template. Takes the link of the video's page (prompt-motion.com or oneshotted.io) and what that page shows (its video file, prompt, title and author, read by the caller, since the source sites often refuse this server) and returns the source details (title, author, and the published prompt when the page shows it), the brief (how to recreate it in three formats with the HyperCodeMotion signature, and the gallery card to fill in) and reference frames of the original video as images, labelled with their times. The first call starts extracting those frames and may answer reference.status: preparing; call it again until it is ready, and do not build before seeing them. When it answers reference.status: upload (prompt-motion.com refuses servers), run upload.script in a code or shell tool to send the video, then call it again. If the video is already a Community template, says so with its status instead.
- 2026-10-19 `publish_template` added
  - Publish a compared Community template in the HyperCodeMotion Studio gallery, marked «Community», once its comparison with the original looks faithful. Takes the tracking code and notes on what is consciously different from the original and why. Its gallery videos are rendered and it then appears without manual review; get_proposal_status tells when.
- 2026-10-19 `get_proposal_status` added
  - Return the status of a Community template proposal by the tracking code propose_template gave: comparing (it waits a little while the comparison renders), review (with the comparison sheet as an image: original and recreation side by side at the same moments), rendering, published, failed (with the reason) or retired, and its template id, which get_template accepts once it is published.
- 2026-10-19 `propose_template` added
  - Submit a recreated video as a HyperCodeMotion Studio gallery template: the source link, its three compositions (cuadrado 1080×1080, vertical 1080×1920, horizontal 1920×1080) and the gallery card. It checks the source, the compositions and the card; if anything fails it returns accepted: false with the errors to fix and stores nothing. When accepted, the composition in the original's format is rendered with the Studio engine and compared with the original frame by frame; get_proposal_status returns that comparison. To send fixes after a comparison, call it again with the same code (up to 3 comparisons). Nothing is published until publish_template. A video that is already a template is not stored twice.
- 2026-10-19 `get_recreation_brief` added
  - Start turning a public motion video into a HyperCodeMotion Studio gallery template. Takes the link of the video's page (prompt-motion.com or oneshotted.io) and what that page shows (its video file, prompt, title and author, read by the caller, since the source sites often refuse this server) and returns the source details (title, author, and the published prompt when the page shows it), the brief (how to recreate it in three formats with the HyperCodeMotion signature, and the gallery card to fill in) and reference frames of the original video as images, labelled with their times. The first call starts extracting those frames and may answer reference.status: preparing; call it again until it is ready, and do not build before seeing them. If the video is already a Community template, says so with its status instead.
- 2026-10-18 `get_template` added
  - 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.
- 2026-10-17 `validate_json` changed (annotations)
- 2026-10-17 `create_hcmotion` changed (description, annotations) **meaning changed**
  - before: REQUIRED final step. Turn a finished HyperCodeMotion composition JSON into a .hcmotion project file (the only format HyperCodeMotion Studio opens). Validates it first: if created is false, fix every error and call again. On success give the user the `open` link (opens it in Studio) and the `download` link; both expire after 24 hours. Never paste the JSON to the user instead.
  - after: Validate a finished HyperCodeMotion composition and package it as a .hcmotion project file, the format HyperCodeMotion Studio opens. If the composition has problems, returns created: false with the errors to fix and stores nothing. On success, stores the file temporarily and returns an `open` link (opens the project in HyperCodeMotion Studio) and a `download` link; both expire 24 hours after creation. It does not render video or generate media.
- 2026-10-17 `get_capabilities` changed (description, annotations) **meaning changed**
  - before: List HyperCodeMotion JSON formats, supported layer properties, effects, and Studio contract revisions before creating animations.
  - after: List the HyperCodeMotion JSON formats, layer types and properties, and effect presets that HyperCodeMotion Studio supports, with the Studio contract revision they come from.

Full history: https://api.protogrid.dev/v1/servers/io.github.jasp402%2Fhypercodemotion-mcp/changes

## Remotes

- https://mcp.hypercodemotion.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `create_hcmotion`: Validate a finished HyperCodeMotion composition and package it as a .hcmotion project file, the format HyperCodeMotion Studio opens. If the composition has problems, returns created: false with the errors to fix and stores nothing. On success, stores the file temporarily and returns an `open` link (opens the project in HyperCodeMotion Studio) and a `download` link; both expire 24 hours after creation. It does not render video or generate media.
- `get_capabilities`: 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, and the Studio contract revision they come from.
- `get_proposal_status`: Return the status of a Community template proposal by the tracking code propose_template gave: comparing (it waits a little while the comparison renders), review (with the comparison sheet as an image: original and recreation side by side at the same moments), rendering, published, failed (with the reason) or retired, and its template id, which get_template accepts once it is published.
- `get_recreation_brief`: Start turning a public motion video into a HyperCodeMotion Studio gallery template. Takes the link of the video's page (prompt-motion.com or oneshotted.io) and what that page shows (its video file, prompt, title and author, read by the caller, since the source sites often refuse this server) and returns the source details (title, author, and the published prompt when the page shows it), the brief (how to recreate it in three formats with the HyperCodeMotion signature, and the gallery card to fill in) and reference frames of the original video as images, labelled with their times. The first call starts extracting those frames and may answer reference.status: preparing; call it again until it is ready, and do not build before seeing them. When it answers reference.status: upload (prompt-motion.com refuses servers), run upload.script in a code or shell tool to send the video, then call it again. If the video is already a Community template, says so with its status instead.
- `get_template`: 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.
- `propose_template`: Submit a recreated video as a HyperCodeMotion Studio gallery template: the source link, its three compositions (cuadrado 1080×1080, vertical 1080×1920, horizontal 1920×1080) and the gallery card. It checks the source, the compositions and the card; if anything fails it returns accepted: false with the errors to fix and stores nothing. When accepted, the composition in the original's format is rendered with the Studio engine and compared with the original frame by frame; get_proposal_status returns that comparison. To send fixes after a comparison, call it again with the same code (up to 3 comparisons). Nothing is published until publish_template. A video that is already a template is not stored twice.
- `publish_template`: Publish a compared Community template in the HyperCodeMotion Studio gallery, marked «Community», once its comparison with the original looks faithful. Takes the tracking code and notes on what is consciously different from the original and why. Its gallery videos are rendered and it then appears without manual review; get_proposal_status tells when.
- `validate_json`: Check a composition (layers), design (elements), or improvement patch (add/change/remove/sfx) and return actionable errors and warnings. This is preliminary validation, not proof of a successful render.
