MotionSpec — verified web motion (reduced-motion / WCAG)

Deterministic motion compiler + validator: reports WCAG 2.2.2 pause-path candidates, fail-closed.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
68%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~960Tokens (tool definitions)
~537 BTypical response size
Moderate attention impact (0.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "motionspec": {
      "command": "npx",
      "args": [
        "motionspec"
      ]
    }
  }
}

Runnable packages

npmmotionspec1.2.7stdio

Remote endpoints

https://api.motionspec.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢motion_catalog

Returns the catalog of verified motion primitives (names, purpose, parameter schemas, defaults) plus the authoring rules for writing a MotionSpec. Call this FIRST, then write the spec yourself and validate it with motion_validate (motion_compile runs in the CLI or with a key on the hosted endpoint). Free motion check: motionspec.dev/motion-check · keys for the hosted endpoint: motionspec.dev/pricing?src=mcp.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢motion_validate(spec)

Checks a MotionSpec against the schema, the primitive allow-list, parameter bounds and injection rules. Fail-closed: returns ok=false with precise errors. Returns {ok, errors, warnings, deprecations, catalogVersion}. IMPORTANT: warnings[] carries the WCAG 2.2.2 / reduced-motion findings and can be non-empty while ok=true — a spec that compiles is not automatically accessible. Use to pre-check a spec before compiling.

Input Schema

{
  "type": "object",
  "properties": {
    "spec": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The MotionSpec JSON object"
    }
  },
  "required": [
    "spec"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢motion_compile(spec, specName)

Requires a Dev Key ($39/mo) or Agency plan ($249/mo) on the hosted endpoint (motionspec.dev/pricing?src=mcp); runs locally for free with 'npx -p motionspec motion compile <spec.json>' (MIT). Validates (fail-closed) and deterministically compiles a MotionSpec into production-ready vanilla-GSAP JavaScript and CSS, with enforced prefers-reduced-motion fallbacks and a performance-budget report. Same spec always yields identical code. Returns {ok, js, css, report} or {ok:false, errors}.

Input Schema

{
  "type": "object",
  "properties": {
    "spec": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "The MotionSpec JSON object"
    },
    "specName": {
      "description": "Optional name used in the artifact header",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢motion_audit(url)

Requires a Dev Key ($39/mo) or Agency plan ($249/mo) on the hosted endpoint (motionspec.dev/pricing?src=mcp). Static motion-a11y checker: fetches a URL's HTML + linked stylesheets and scans the CSS for (1) animation/transition that moves without an effective (cascade-aware) prefers-reduced-motion guard, (2) animated non-transform/opacity properties, (3) infinite animations with no pause path, (4) <marquee>/autoplay >5s. Colour/opacity-only transitions are not motion (WCAG 2.3.3). Same engine and scoring as the free site check at motionspec.dev/motion-check. Returns {ok, score|null, status, findings, groups, summary, badge, disclosures, coverage, markdown}; pages without CSS motion return status 'not-measurable' with score null (runtime motion such as WAAPI/GSAP/WebGL is not audited); loading indicators (spinners, skeletons) are reported as 'review', not as violations. A clean, measurable page earns the badge 'reduced-motion-safe'. Does network I/O (openWorldHint).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The page URL to audit (http/https)."
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢motion_stats

Requires a Dev Key ($39/mo) or Agency plan ($249/mo) on the hosted endpoint (motionspec.dev/pricing?src=mcp). Summary of routing/compile telemetry (counts per outcome). Escalation clusters indicate which new primitive the catalog needs next.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools