rivemcp
v1.16.1
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
- 200 MCP tools covering all Rive capabilities, reached through two —
find_toolanduse_tool— plusreport_problem, which sends the team a problem report only after you have seen it and said yes; so an assistant carries every tool's name, not every tool's definition, on each message (about 2,400 tokens instead of 50,000+).POLYMATION_TOOLS=core|standard|fullalso lists a tier directly — use it if your app asks permission for each tool and you want to approve them one by one, since approvinguse_toolapproves every tool it runs - 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
Claude Desktop — one click
- Download
rivemcp.mcpbfrom the latest release. - Claude Desktop → Settings → Extensions → Install from file… and pick it. No Node.js, no JSON.
Any MCP client (Claude Code, Cursor, Windsurf, VS Code…)
{
"mcpServers": {
"polymation": {
"command": "npx",
"args": ["-y", "rivemcp"],
"env": { "POLYMATION_LICENSE_KEY": "your-key" }
}
}
}Installing the package downloads the standalone binary for your platform. The licence key is optional to start: without one, the trial allowance applies. Keys are at polymation.stunning.gg.
Standalone binaries
Windows, macOS (Intel and Apple Silicon) and Linux builds — no Node.js needed — are on the releases page.
Rendering
Previews, GIFs and conversion checks render with Rive's own runtime in a headless Chromium. If a render
tool reports that Chromium is missing, run npx playwright install chromium once.
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 the building blocks
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.
License
Commercial software — see LICENSE. A trial allowance is included; a licence key from polymation.stunning.gg unlocks unlimited use.
