rivemcp
v1.13.2
Published
Polymation — the multi-format AI animation MCP. Author Rive (.riv/.rev) and Spline (.splinecode/.spline) scenes from scratch and convert Rive↔Spline, validated on the real runtime. The most complete Rive MCP, now multi-format.
Maintainers
Readme
Polymation
The multi-format AI animation MCP — one MCP for every animation format. Polymation is the most complete Rive MCP (it generates binary .riv runtime and .rev editor files from scratch via a high-level builder API), authors Spline 3D scenes (.splinecode / .spline), and converts between Rive, Spline, Lottie, Figma and After Effects — with an honest per-decision loss report and real-runtime validation before you ship. Exposed as MCP tools for LLM-driven animation authoring.
Format support
| Format | Author | Convert | Status |
|--------|:------:|:-------:|--------|
| Rive — .riv / .rev | ✅ | ↔ Spline, ↔ Lottie, → Figma | Live |
| Spline — .splinecode / .spline | ✅ | ↔ Rive, ↔ Lottie, → Figma | Live |
| Lottie — .lottie / .json | — | ↔ Rive, ↔ Spline, → Figma | Live |
| Figma | — | → Rive / Spline / Lottie | Live |
| After Effects — .aep | edit only | → Rive / Lottie / Spline / Figma | Live |
Every conversion crosses a model boundary, so every one is lossy — the report says what came across
clean, what was reconstructed, what was dropped and what needs your call. After Effects is read
natively (no After Effects install, no plugin) and can be edited and saved back; writing a .aep
from scratch is not offered, because without After Effects there is no way to check such a file
would open.
Features
- 193 MCP tools covering all Rive capabilities (55 in the
coretier, 116 instandard; setPOLYMATION_TOOLS=core|standard|full) - 290 Rive runtime types — full coverage of the Rive binary format
- Spline 3D authoring — generate
.splinecode(runtime) and.spline(editor) scenes from scratch - Cross-format conversion — Rive ↔ Spline ↔ Lottie, plus Figma and After Effects in, each with a per-decision loss report (clean / reconstructed / dropped / needs-your-call) and runtime validation
- After Effects projects read natively —
.aepcompositions, layer timing and parenting, keyframes with AE's own ease curves, shapes, paths, masks, gradients, text and effects;edit_aepwrites changes back - Import + roundtrip — load existing
.rivfiles, modify, re-export - Edit tools — query, update, and delete objects after creation
- 14 easing presets — ease, spring, bounce, material design, and more
- Physics engine — compile-time gravity, bounce, wind, and spring forces
- Prefab library — rocks, dust, sparks, rain, snow, leaves, backgrounds
- Scene composer — describe a full animated scene in JSON, get a
.rivin one call
Quick Start
One-click install for Claude Desktop (recommended)
- Download
rivemcp-<version>.mcpbfrom the Releases page. - Open Claude Desktop → Settings → Extensions → Install from file...
- Select the
.mcpbfile. Done — no Node.js, no JSON editing, no path setup.
Manual install (other MCP clients)
npm install
npm run buildAdd to your MCP client configuration:
{
"mcpServers": {
"rivemcp": {
"command": "node",
"args": ["dist/mcp/server.js"]
}
}
}Or run in development mode:
npm run devBuilding the .mcpb bundle yourself
npm run build:mcpbProduces rivemcp-<version>.mcpb in the repo root (~7 MB). Distribute that single file for one-click install.
Tool Categories
| Category | Tools | Description |
|----------|-------|-------------|
| Artboard | 3 | Create projects, artboards, list objects |
| Shapes | 9 | Rectangles, ellipses, triangles, paths, groups |
| Style | 7 | Fills, strokes, gradients, trim paths, dash paths, feather |
| Edit | 6 | Query, update, and delete shapes/groups/text |
| Animation | 3 | Keyframe animation with 14 easing presets |
| State Machine | 12 | Layers, states, transitions, conditions, listeners |
| Events | 3 | Custom events, open-URL events, custom properties |
| Text | 3 | Text objects with styled runs |
| Images | 2 | Embedded image assets |
| Nested | 4 | Nested artboards for component reuse |
| Bones | 6 | Bones, IK constraints, skinning |
| Mesh | 1 | Mesh deformation |
| Constraints | 1 | Transform constraints |
| Scroll | 2 | Scroll and scroll-bar constraints |
| ViewModel | 12 | Data enums, view models, instances, data binding |
| Advanced | 44 | Layout, assets, scripting, organization, draw order |
| HLAPI | 8 | Physics baking, prefabs, particles, scene composition |
| Import/Export | 2 | Load existing .riv, export with validation |
Easing Presets
The add_keyframe tool accepts an easing parameter for named presets:
| Preset | Curve | Use Case |
|--------|-------|----------|
| linear | Constant speed | Rotation, continuous motion |
| ease | Gentle S-curve | General purpose |
| ease-in | Slow start | Elements leaving view |
| ease-out | Slow end | Elements entering view |
| ease-in-out | Slow both ends | Symmetric transitions |
| material-standard | Material Design | Navigation transitions |
| material-decelerate | Material decel | Incoming elements |
| material-accelerate | Material accel | Outgoing elements |
| spring | Overshoot | Playful interactions |
| bounce-out | Settle bounce | Landing, drop effects |
| snap | Fast then hold | Toggle, switch states |
| anticipate | Pull-back start | Button press, launch |
| smooth | Smooth S-curve | UI transitions |
| smooth-out | Smooth decel | Fade-in |
| smooth-in | Smooth accel | Fade-out |
High-Level Animation API (HLAPI)
Three abstraction layers for complex animations:
Layer 3: Scene Composer compose_scene
"Rockslide with mountains, 20 falling rocks, dust"
Layer 2: Prefabs spawn_prefab, emit_particles
"Spawn 20 rocks with random size/position"
Layer 1: Physics Bakers bake_motion, bake_shake
"Apply gravity, bounce at ground, wind gusts"
Layer 0: Core Tools 132 MCP tools
Shapes, fills, keyframes, state machines...Physics Forces
- Gravity — constant downward acceleration
- Ground bounce — collision with restitution and squash/stretch
- Wind — horizontal force with sinusoidal gusting
- Spring — Hooke's law oscillation toward an anchor point
Physics runs at compile time. Dense per-frame snapshots are compressed to sparse keyframes via Douglas-Peucker simplification (180 frames typically compress to 5-10 keyframes).
Prefab Library
Shapes: rock, dust_cloud, debris, spark, raindrop, snowflake, leaf, bubble Backgrounds: sky_gradient (day/dusk/night/storm), mountain_range, ground_plane, starfield
Edit Tools
Six tools for iterative design after initial creation:
| Tool | Description |
|------|-------------|
| get_object_info | Query any object's transform, geometry, fills, strokes |
| update_object | Modify position, size, rotation, scale, opacity |
| update_fill | Change fill color by index |
| update_stroke | Change stroke color, thickness by index |
| remove_object | Delete a shape, group, or text |
| update_text | Update text content on a run |
Import / Roundtrip
load_riv → modify with tools → export_rivThe load_riv tool imports existing .riv files into the builder scene graph. Unmodified artboards are preserved byte-for-byte on re-export.
Demo Files
| File | Description |
|------|-------------|
| sample.riv | Basic shapes + keyframe animation |
| expand-rect.riv | State machine click interaction |
| ui-buttons.riv | Full UI dashboard: gradients, elastic easing, blend states, feather, trim paths |
| flag-wave.riv | Mesh deformation + embedded image |
| confetti-twist.riv | Mesh corner spiral animation |
| rockslide-hlapi.riv | HLAPI physics, prefabs, and scene composition |
| character-demo.riv | Bones, IK constraints, skinning |
| data-bind-demo.riv | Toggle switch with cross-object color theme change |
Generate demos with:
npx tsx scripts/generate-sample.ts
npx tsx scripts/generate-ui-buttons.ts
npx tsx scripts/generate-data-bind-demo.tsViewer
Open viewer.html in a browser (via HTTP server) to preview .riv files. Supports drag-and-drop upload and a batch test grid for all demo files.
npx serve .
# Open http://localhost:3000/viewer.htmlDevelopment
npm test # Run all tests
npm run build # TypeScript compile
npm run dev # Run MCP server with tsx
npm run extract-defs # Regenerate rive-defs.json from rive-cppArchitecture
src/
core/ Binary .riv reader/writer, LEB128 encoding
defs/ Rive type registry (from rive-cpp source)
builder/ High-level scene graph API
hlapi/ Physics engine, prefab library, scene composer
mcp/ MCP server + 132 toolsLicense
All rights reserved. Commercial license required for use.
