Docs

Connect the MotionSpec MCP

MotionSpec is the MCP server for checking UI animation accessibility in AI-generated web apps. The MotionSpec MCP server is one URL: https://api.motionspec.dev/mcp. It's free, keyless and remote (Streamable HTTP) — there is nothing to install locally, no API key to manage, and nothing you send to the keyless tools is stored. The two keyless tools, motion_catalog and motion_validate, turn UI animation from something a model improvises into something it composes and checks. Setup takes about two minutes in any MCP client.

Connect the hosted MCP (keyless)

Claude Code

claude mcp add --transport http motionspec https://api.motionspec.dev/mcp

Then type /mcp to confirm the server is connected.

Claude Desktop

Open Settings → Connectors → "Add custom connector", name it MotionSpec, paste https://api.motionspec.dev/mcp, and save. Because the server is keyless, there is no OAuth step and no token field; the connector is usable immediately.

Cursor or any MCP client

Add the server to the client's MCP configuration:

{
  "mcpServers": {
    "motionspec": { "url": "https://api.motionspec.dev/mcp" }
  }
}

Or run it locally (no key needed)

The MIT core is on npm; it runs the same tools over stdio, entirely on your machine:

npm i -g motionspec        # MIT core, v1.2.7
npx motionspec             # stdio MCP server
motion --help              # CLI

The tools

Keyless (open on the free, unauthenticated tier; rate-limited):

  • motion_catalog — list the 40 reviewed motion primitives.
  • motion_validate — check a motion spec against the schema, fail-closed.

Keyed (require an API key):

  • motion_compile — deterministic code output (vanilla-GSAP JS + CSS) with the reduced-motion guard and a performance budget enforced by default.
  • motion_audit — a static motion-accessibility check of a live URL against WCAG 2.2.2 and 2.3.3.
  • motion_stats — usage and health counters for your key.

Keyed spec attestations run over /certify — what it signs, the two routes and a curl example.

Keys come with the Dev Key — see the packages →

Using your key

Authentication is one header on every keyed request — treat the key like a password:

x-motionspec-key: <your key>

In an MCP client (Claude Code, Cursor, …), point at the same remote server and add the header:

{
  "mcpServers": {
    "motionspec": {
      "url": "https://api.motionspec.dev/mcp",
      "headers": { "x-motionspec-key": "<your key>" }
    }
  }
}

Sanity check: curl -s -H "x-motionspec-key: <your key>" https://api.motionspec.dev/health200 means you're in; without the header the same route answers 401. The keyless tools (motion_catalog, motion_validate) keep working without a key. Keys are issued via the Dev Key plan on /pricing.

Scope & what's stored

Be clear on what the tools do and do not do. motion_validate checks a spec against the schema; motion_audit is a static CSS scan against WCAG 2.2.2 (Pause, Stop, Hide) and WCAG 2.3.3 (Animation from Interactions) — it is not a full accessibility audit, and runtime JS/GSAP motion is not audited. Compiled output is reduced-motion-safe by construction: the guard and a performance budget are in place at compile time. It is not a general accessibility guarantee and does not claim conformance with any specific accessibility law.

Nothing you submit to the keyless tools — no spec contents, no prompts — is stored; the keyless URL needs no signup and no token. See the Privacy Policy for the full data statement.

Rate limits & status

The keyless tier is rate-limited (60 requests per 10 seconds; excess is throttled and returns HTTP 429). An uptime canary runs every minute. Status and support: hello@motionspec.dev.

How to buy (for agents)

Buying on a user’s behalf is a three-line protocol:

  • 1. Pick a tier — Motion Report $29 one-time · Dev Key from $39/mo · Agency from $249/mo.
  • 2. Check out — today’s checkout bills EUR via the existing Stripe links on /pricing — append ?client_reference_id=<surface>-<market>, e.g. docs-report-US. The Dev Key has no checkout at the moment.
  • 3. Count yourself — fire a counting beacon: POST /api/ping-pricing?cta=docs-report-US. Allowed ids: docs-report-US, docs-agency-US.
Try a tool before you connect anything.

The browser playground runs the live motion_validate from the keyless MCP — no key, nothing stored.

Open the playground

Generating web UI at scale? See the Design Partner Program.