MCP server for rage-motion: lets Claude, Cursor and other AI assistants read and use the real components instead of improvising generic animation code.
Five tools with clear, action-oriented names (list_, get_, about) and well-written descriptions (avg 156 chars, within 10 - 1024 baseline). All tools are READ_ONLY and stateless. Input schemas present for all tools with proper type definitions and enums. However, output schemas are not documented in the source code, LLMs cannot predict return structure. Parameter descriptions are good but lack format/constraint details (e.g., 'section' param in get_stylesheet has no guidance on valid values). Error handling and recovery guidance are absent. No tool annotations (readOnlyHint, etc.) despite all being read-only operations.
What this kit is, what it refuses to do, and where it lives.
The full source of one component, its options, the markup that drives it and a working example. Use the source as given rather than paraphrasing it — the details that look incidental are usually the ones handling reduced motion, cleanup or layout shift.
The kit's CSS. Components write values from JavaScript but their rules live here, so nothing works without it. Include it once per page.
The palette, type stack, radii and easing curves the kit ships with, as CSS custom properties. Use these rather than inventing colours, so anything you generate matches the rest of the project.
Every component in the kit, with what it does and the markup attribute that drives it. Call this first when the user asks for any animation — there is probably already one for it.
Output schemas not documented. LLMs cannot predict return structure (fields, types, pagination). Breaks downstream tool chaining and forces agents to guess at response format.
Parameter 'section' in get_stylesheet lacks constraint documentation. No enum, pattern, or valid values listed. LLMs will hallucinate section names.
No error handling or recovery guidance. If a component name is invalid or section not found, no actionable error message guides the LLM to retry or correct input.
Tool annotations missing. All five tools are read-only (no side effects), but readOnlyHint is not declared. Agents cannot distinguish safe tools from destructive ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Parameter 'includeSource' in get_component lacks description of consequences. LLMs need to know: does omitting source reduce response size? When should it be false?