Skip to main content
Glama

MotionSpec — web animation accessibility MCP

Server Details

Web animation accessibility MCP: GSAP, static CSS checks, prefers-reduced-motion, WCAG 2.2.2/2.3.3.

Ownership verified
Status
Healthy
Uptime
100.0% over 74 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
MasterPlayspots/motionspec
GitHub Stars
1
Server Listing
motionspec

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation2/5

On paper the names target distinct actions (audit, catalog, compile, stats, validate), but three of them — motion_audit, motion_compile, motion_stats — return the identical PAYWALL payload with unused arguments when unauthenticated. An agent cannot distinguish their real behavior without a key, so selection collapses to guesswork among interchangeable stubs.

Naming Consistency5/5

All five tools use a uniform motion_<verb> pattern (audit, catalog, compile, stats, validate). The convention is predictable and readable, with no mixing of casing or verb styles.

Tool Count4/5

Five tools is a sensible scope for a spec-authoring workflow (catalog, validate, compile, audit, stats). The count itself is fine; the problem is that most of these tools are non-functional rather than that there are too many or too few.

Completeness2/5

The natural lifecycle is catalog → write spec → validate → compile → audit, but only motion_catalog and motion_validate actually execute; compile, audit, and stats dead-end in a paywall on the hosted endpoint. An agent can get a validated spec but cannot complete the core compile/audit workflow through this surface, a significant gap.

Available Tools

5 tools
motion_auditAudit a live URL for motion accessibility (WCAG 2.2.2 / 2.3.3)A
Read-only
Inspect

Requires a Dev Key ($39/mo) or Agency plan ($249/mo) on the hosted endpoint (motionspec.dev/pricing?src=mcp). This unauthenticated call returns access information only; it does not compile code, fetch URLs, run an audit or read usage data. Arguments are optional and unused. Returns isError:true with structuredContent {ok:false, error:'PAYWALL', tool, upgrade} and text guidance. To use motion_audit on the hosted endpoint, connect with an x-motionspec-key header. Run the static URL audit locally for free with 'npx -p motionspec motion audit --json' (MIT).

NameRequiredDescriptionDefault
urlNoThe page URL to audit (http/https).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint true, openWorldHint false), the description discloses the paid-plan requirement, the exact failure payload (isError:true, structuredContent {ok:false, error:'PAYWALL', tool, upgrade}), and that arguments are optional and unused. That is unusually rich behavioral context an agent could not infer from 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?

The paywall/auth constraint is front-loaded and the sentences are dense but purposeful, covering behavior, return shape, and the local alternative. The negative enumeration is slightly padded, keeping it from a perfect score.

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?

There is no output schema, yet the description fully specifies the return payload, the auth prerequisite, and the fallback path. Nothing an agent needs to call this correctly or interpret its failure 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%, so the baseline is 3, and the description adds real meaning by stating 'Arguments are optional and unused' — clarifying that the documented url parameter is effectively ignored. It stops short of 5 because this note somewhat conflicts with the schema's own claim that url is 'The page URL to audit'.

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 explicitly states the tool's real behavior: 'This unauthenticated call returns access information only; it does not compile code, fetch URLs, run an audit or read usage data.' That negative enumeration also distinguishes it from siblings like motion_compile and motion_validate. It loses a point because the name/title promise an audit while the description says no audit occurs, which is an unusual and potentially confusing framing rather than a clean verb+resource statement.

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?

It gives clear preconditions (Dev Key or Agency plan, x-motionspec-key header) and an explicit free alternative ('npx -p motionspec motion audit <url> --json'). It does not, however, explain when to prefer this tool over the sibling tools, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

motion_catalogMotionSpec catalog & authoring rulesA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: it is a bootstrap/discovery call that returns definitions rather than performing work, and it discloses that motion_compile requires the CLI or a hosted key.

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 what is returned, then the call order, then the compile caveat. The trailing promotional URLs (motion-check, pricing) are useful pointers but slightly dilute the definition; the substance is still tight and well ordered.

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 no output schema, the description compensates by enumerating the return contents (names, purpose, schemas, defaults) and the authoring rules. Combined with the sequencing guidance and the compile auth caveat, an agent has everything needed to use it correctly in the workflow.

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 is nothing for the description to document and the baseline of 4 applies. The description correctly implies no input is needed to retrieve the catalog.

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 (returns) and resource (the catalog of verified motion primitives) and enumerates the payload (names, purpose, parameter schemas, defaults) plus the authoring rules for a MotionSpec. It also implicitly distinguishes itself from siblings by naming motion_validate and motion_compile as downstream steps.

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?

Gives an explicit sequencing instruction ('Call this FIRST, then write the spec yourself and validate it with motion_validate') and clarifies where motion_compile actually runs (CLI or hosted endpoint with a key). An agent knows both when to call it and which sibling to use next.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

motion_compileCompile a MotionSpec to GSAP/CSSA
Read-only
Inspect

Requires a Dev Key ($39/mo) or Agency plan ($249/mo) on the hosted endpoint (motionspec.dev/pricing?src=mcp). This unauthenticated call returns access information only; it does not compile code, fetch URLs, run an audit or read usage data. Arguments are optional and unused. Returns isError:true with structuredContent {ok:false, error:'PAYWALL', tool, upgrade} and text guidance. To use motion_compile on the hosted endpoint, connect with an x-motionspec-key header. motion_compile runs locally for free with 'npx -p motionspec motion compile <spec.json>' (MIT).

NameRequiredDescriptionDefault
specNoThe MotionSpec JSON object
specNameNoOptional name used in the artifact header

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnlyHint/openWorldHint annotations by disclosing the auth/pricing requirement, the exact failure shape (isError:true with structuredContent {ok:false, error:'PAYWALL', tool, upgrade}), and that arguments are ignored. This is precisely the behavioral context an agent needs to avoid wasted calls.

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 paywall condition and packs the key facts (unused args, error shape, auth header, free local alternative) into a compact block. Slightly dense with the tracking URL and some redundancy around pricing, but every sentence carries actionable content.

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?

No output schema exists, yet the description explains the return value (structuredContent error shape plus text guidance) and the auth/free-CLI paths, so an agent has everything needed to call it correctly and interpret the result.

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 schema already documents spec and specName (baseline 3). The description adds meaningful value by stating 'Arguments are optional and unused', telling the agent the parameters have no effect here.

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 explicitly states the real behavior: 'This unauthenticated call returns access information only; it does not compile code.' That is a specific, honest statement of what the tool does, even though the name/title ('Compile a MotionSpec') misleadingly suggests compilation. It also differentiates from siblings by negating 'fetch URLs, run an audit or read usage data' (routing away from motion_audit/motion_stats).

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 explicit conditions and alternatives: to actually compile on the hosted endpoint, connect with an x-motionspec-key header; otherwise run locally for free via 'npx -p motionspec motion compile <spec.json>'. The when-to-use and the escape hatch are both spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

motion_statsMotionSpec usage telemetryA
Read-only
Inspect

Requires a Dev Key ($39/mo) or Agency plan ($249/mo) on the hosted endpoint (motionspec.dev/pricing?src=mcp). This unauthenticated call returns access information only; it does not compile code, fetch URLs, run an audit or read usage data. Arguments are optional and unused. Returns isError:true with structuredContent {ok:false, error:'PAYWALL', tool, upgrade} and text guidance. To use motion_stats on the hosted endpoint, connect with an x-motionspec-key header. Read local telemetry for free with 'npx -p motionspec motion stats' (MIT). This reads this machine's local activity, not hosted usage.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations covering only readOnly/openWorld, the description goes well beyond them: it discloses the paywall precondition, that arguments are ignored, and the exact failure shape (isError:true with structuredContent {ok:false, error:'PAYWALL', tool, upgrade}). This is exactly the kind of behavioral detail an agent needs to avoid misusing the call.

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 paywall requirement is stated twice (pricing URL, then again as the x-motionspec-key header), and the negative list 'does not compile code, fetch URLs, run an audit or read usage data' is longer than needed. The information is useful but not tightly front-loaded.

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 no output schema and minimal annotations, the description carries the full burden and does so: auth requirement, argument behavior, error payload, and a free local fallback are all covered. Nothing material is missing for calling it 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?

There are zero parameters, so the baseline is 4. The description reinforces this by stating 'Arguments are optional and unused', which confirms the empty schema is intentional rather than truncated.

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 states the actual function plainly: 'This unauthenticated call returns access information only; it does not compile code, fetch URLs, run an audit or read usage data.' That negative framing usefully separates it from siblings motion_audit and motion_compile, but the positive purpose is buried under the paywall preamble rather than stated up front.

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?

It gives explicit conditions: requires a Dev Key or Agency plan on the hosted endpoint, reached via the x-motionspec-key header, and it names a concrete alternative ('Read local telemetry for free with npx -p motionspec motion stats'). No sibling tool is offered as an alternative for hosted usage data, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

motion_validateValidate a MotionSpec (trust boundary)A
Read-only
Inspect

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.

NameRequiredDescriptionDefault
specYesThe MotionSpec JSON object

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnlyHint and openWorldHint annotations by disclosing fail-closed behavior, the exact return shape, and the non-obvious fact that warnings can be non-empty while ok=true. It also explains the accessibility implication, which is critical for correct agent behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core validation behavior stated first, followed by the return shape and the critical warning caveat. Every sentence earns its place, and the formatting highlights the most important behavioral nuance.

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 single-parameter, read-only validation tool with no output schema, the description fully covers what the tool does, when to use it, what it returns, and the key failure and warning semantics. An agent has sufficient information to select and invoke it correctly without additional context.

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 for the single parameter is 100%, so the baseline is 3. The description adds meaningful semantics by clarifying that the spec parameter is a MotionSpec and by enumerating the validation dimensions applied to it, such as the primitive allow-list and injection rules, which the schema alone does not convey.

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 ('Checks') and a specific resource ('MotionSpec'), then enumerates exactly what it validates against: schema, primitive allow-list, parameter bounds, and injection rules. It clearly distinguishes itself from the sibling motion_compile by positioning validation as a pre-compile safety check.

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 explicitly says 'Use to pre-check a spec before compiling,' which gives clear guidance on when to call this tool. It also explains the important warning behavior so an agent knows this is the right tool for accessibility checks before compilation, though it does not explicitly name or exclude alternatives beyond the pre-compile framing.

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. 3 tool updates
    • Addedmotion_audit
    • Addedmotion_compile
    • Addedmotion_stats
  2. 2 tool updates
    • First observedmotion_catalog
    • First observedmotion_validate

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.