Free, editor-less MCP server for Rive: create, edit, inspect, render and live-preview .riv animations from Claude or any MCP client
rive-mcp has 4 tools with clear action verbs (riv_list, riv_inspect, riv_render_frame, riv_render_gif). Descriptions are present and moderately detailed (100-300 chars), exceeding the 20-char minimum. Input schemas are visible with type definitions. However, riv_render_gif lacks a complete input schema in the provided source, and parameter descriptions are sparse or missing for several inputs (e.g., riv_render_frame's 'width', 'height', 'background' lack constraint details). Output schemas are not documented. Error handling returns structured text but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Extract full metadata from a .riv file: artboards, animations (duration/fps/loop), state machines and their inputs (name/type/initial value). Uses the official Rive runtime. Also decodes Data Binding (ViewModel) structure when present — ViewModel definitions and their properties, ViewModelInstances with resolved property values (including enum/nested-viewmodel/list references), enums, converters, and DataBind wiring (which target object/property each bind writes to) — via direct binary parsing (returned as `dataBinding`, omitted when the file has none).
Recursively find .riv files under a directory and report size and format version for each.
Render one frame of a .riv animation or state machine to PNG. Returns the image inline and saves it to disk.
Render a .riv animation to GIF
riv_render_gif has no visible input schema in source code. Description is minimal ('Render a .riv animation to GIF'). Cannot verify parameter types, constraints, or defaults.
riv_render_frame parameters lack constraint documentation. 'width' and 'height' state 'max 4096' but no minimum or typical range. 'background' accepts 'CSS color' but no format examples or validation rules. LLMs cannot infer valid inputs.
No output schemas documented for any tool. Callers cannot know what fields to expect (e.g., does riv_inspect return a flat object or nested structure? What are the field names for animations, state machines, data binding?). Breaks tool chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk metadata. riv_render_frame and riv_render_gif are marked WRITE; riv_list and riv_inspect are READ_ONLY. Annotations enable safer agent planning.
Error handling returns plain text ('Error: <message>') without recovery guidance. No categorization of retryable vs. fatal errors. LLMs cannot determine next steps after failure.