rive-analyzer

rive-analyzer

Enables AI assistants to inspect, validate, control, and ship Rive animation files with 11 tools for parsing, scanning, generating types, comparing files, and more.

Category
Visit Server

README

Rive Playground

v1.1.0 — "Living Canvas"

Where your animation goes from a file to a living product.

Inspect, validate, control, and ship Rive .riv animation files — from the terminal, AI assistants, or a visual playground. The complete toolchain for teams that build with Rive at scale.


What's New in v1.1.0 — "Living Canvas"

Area Feature
Parser Animation loopType — oneShot / loop / pingPong
Parser workStart / workEnd frame range per animation
Parser ViewModel extraction — real data from viewModelCount() / getProperties()
Parser DataEnum extraction — full enum names and values
CLI list-assets — enumerate embedded/CDN images, fonts, audio
CLI init — scaffold .rive-playground/ project directory
CLI contract-generate — generate .rive-contract.yaml from .riv
CLI contract-validate — validate .riv against contract (CI-friendly)
CLI generate-platform — codegen for Swift, Kotlin, JSON Schema, Zod, Dart
CLI compare — diff two .riv files, detect breaking changes
MCP 5 new tools: list-rive-assets, generate-rive-contract, validate-rive-contract, generate-platform-types, compare-rive-files
Playground Events Log Panel — real-time Rive event stream
Playground Preset Library — save/load/apply named configurations
Playground URL deep-linking — ?file=<url>&artboard=Main&sm=...
Playground Keyboard shortcuts — Space play/pause, R reset, Ctrl+S save preset
Playground Error toasts — surface silent failures visually
Infra Vitest test suite (16 tests)
Infra .rive-playground/ project config directory

Overview

rive-analyzer CLI     Terminal-first inspection, codegen, validation
MCP Server            AI assistant integration (Claude, OpenCode)
Rive Playground       Visual editor + preset library + event log
.rive-playground/     Project config — presets, contracts (git-trackable)

Installation

cd /path/to/rive-mcp-analyzer
npm install
npm run build
npm link           # optional: global CLI install

CLI Reference

inspect

rive-analyzer inspect ./animation.riv
rive-analyzer inspect ./animation.riv --json

scan

rive-analyzer scan ./public/

validate

rive-analyzer validate ./animation.riv ./src/constants/rive.ts

generate-types

rive-analyzer generate-types ./animation.riv -o ./src/rive-generated.ts

generate-platform

rive-analyzer generate-platform ./animation.riv --target swift
rive-analyzer generate-platform ./animation.riv --target kotlin -o RiveConstants.kt
rive-analyzer generate-platform ./animation.riv --target json-schema
rive-analyzer generate-platform ./animation.riv --target zod
rive-analyzer generate-platform ./animation.riv --target dart

contract-generate

rive-analyzer contract-generate ./animation.riv -o .rive-playground/contracts/animation.yaml

Contract example:

version: 1.1.0
file: animation.riv
artboard: Main
stateMachine: Main SM
inputs:
  speed:
    type: number
    min: 0
    max: 10
    description: "Animation speed multiplier"
  isVisible:
    type: boolean
  RESET:
    type: trigger

contract-validate

rive-analyzer contract-validate ./animation.riv ./animation.rive-contract.yaml
# Exits 1 if: input removed, type changed, artboard renamed

compare

rive-analyzer compare ./animation-v1.riv ./animation-v2.riv
# Exits 1 on breaking changes — CI-safe

list-assets

rive-analyzer list-assets ./animation.riv

export-fields

rive-analyzer export-fields ./animation.riv --json

init

rive-analyzer init
# Creates: .rive-playground/{presets,contracts,schedules,config.json}

watch

rive-analyzer watch "./public/**/*.riv"

MCP Server (11 tools)

node dist/mcp.js

Add to Claude Desktop:

{
  "mcpServers": {
    "rive-analyzer": {
      "command": "node",
      "args": ["/absolute/path/to/rive-mcp-analyzer/dist/mcp.js"]
    }
  }
}
Tool Description
inspect-rive Parse .riv — artboards, SMs, animations
scan-rive-files Scan directory recursively
validate-rive-config Check JS/TS config against .riv
generate-rive-types TypeScript constants
watch-rive-files Watch for changes
export-rive-fields Deep extract ViewModels, DataEnums
list-rive-assets Enumerate embedded/CDN assets
generate-rive-contract Generate .rive-contract.yaml
validate-rive-contract Validate .riv against contract
generate-platform-types Swift/Kotlin/JSON Schema/Zod/Dart
compare-rive-files Diff two files, detect breaking changes

Playground

cd playground
npm install
npm run dev
# Open http://localhost:5173

Panels

Panel What it does
Artboard Select artboard and animation
State Machine Live boolean/number/trigger controls
ViewModel All property types with live editing
Text Runs Edit text content, auto-discover from VMs
Events Real-time Rive event log
Presets Save / load / apply named configurations
Export JSON + Markdown export

Keyboard Shortcuts

Key Action
Space Play / Pause
R Reset animation
Ctrl/Cmd + S Save current state as preset
Ctrl + Scroll Zoom canvas
Alt + Drag Pan canvas
Alt + Double-click Reset view

URL Deep-linking

http://localhost:5173?file=https://cdn.example.com/animation.riv&artboard=Main&sm=Main+SM

Rive Contract System

The safety net between designers and developers. Define constraints on inputs — validate on every CI run.

# 1. Generate contract scaffold from .riv
rive-analyzer contract-generate hero.riv -o .rive-playground/contracts/hero.yaml

# 2. Edit: add min/max, required, descriptions
# 3. Validate in CI
rive-analyzer contract-validate hero.riv .rive-playground/contracts/hero.yaml

Project Structure

src/
  cli.ts                      CLI (Commander + Clack, banner + NhoNH signature)
  mcp.ts                      MCP server (11 tools)
  parser/riveParser.ts        WASM headless parser
  tools/
    contract.ts               Contract system (YAML + Zod)
    compareFiles.ts           Breaking change detection
    generateMultiplatform.ts  Swift/Kotlin/JSON Schema/Zod/Dart codegen
    listAssets.ts             Asset enumeration
    exportFields.ts           ViewModel/DataEnum extraction
    [inspect, scan, validate, generateTypes, watch].ts
  ui/theme.ts                 CLI design system
  ui/banner.ts                ASCII art + NhoNH signature

playground/src/
  hooks/useRivePlayground.ts  Core state + event capture
  hooks/usePresets.ts         localStorage preset library
  components/panels/
    EventsPanel.tsx           Real-time event log
    PresetsPanel.tsx          Save/load configurations
  components/Toast.tsx        Error notifications
  types.ts                    RiveEvent, Preset, PlaygroundState

.rive-playground/             Git-trackable project config
  presets/                    Named configuration snapshots
  contracts/                  .rive-contract.yaml files
  schedules/                  (v1.2.0)

Roadmap

Version Theme Highlights
v1.1.0 Living Canvas Contract system, multi-platform codegen, preset library, events
v1.2.0 Living Server LiveConfig HTTP+WS, Config Scheduler, MCP-Playground bridge
v1.3.0 Intelligence AI Narrator, AI Config Assistant (opt-in), SM Visual Graph

Built by NhoNH · rive-analyzer · github.com/hoainho

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured