Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Description from the maker (original English)
Motion graphics as code: find, preview and render lower thirds, titles, charts and 3D to video
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"volito": {
"command": "npx",
"args": [
"-y",
"volito",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add volito -- npx -y volito mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"volito": {
"command": "npx",
"args": [
"-y",
"volito",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"volito": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"volito",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account monarcpro, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.1) reached the registry 5 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Volito
Brand-aware, voice-synced motion graphics as code — for developers and AI agents.
Website · Docs · Packs · For agents · npm · Changelog
By MONARC STUDIOS, the team behind MONARC PRO. Volito is the motion graphics engine inside the MONARC PRO video editor, opened up; the name is Latin for “to flutter”. Every graphic is a small program — function frame(t, $) returns the SVG of one frame — so it is readable, diffable, seekable to any frame, and something an AI agent can write and fix. It ships with 107 ready-made graphics in twelve packs (3D, maps, transitions, kinetic type, interactive UI and filter effects among them), 36 brand styles, sixteen animated patterns, a CLI, a Node API, a browser player and an MCP server, and renders to ProRes 4444 or HEVC with alpha, WebM, MP4, GIF, PNG frames or SVG.
DESIGN.md, or a couple of overrides, and the whole pack re-skins.--sound gives any render a sound track Volito synthesises itself — a pop for every spring, a whoosh for every move across the frame, ticks for letters, a hit for a slam, a bed in a key — and a program can design its own cues beside its frames.This intro is a Volito program: kinetic type, a 3D wordmark and an end card, rendered in Node.
npx volito render lower-third \
--prop name="Priya Sharma" --prop role="Product designer" \ --style ember --aspect 16:9 --out priya.mov
npm install volito # or run it with npx, nothing to install
Volito was first published as @monarcpro/motion; that package is deprecated in favour of this one.
Node 20.10 or newer. Video formats need ffmpeg on your PATH (or VOLITO_FFMPEG); stills, contact sheets and PNG frames do not. WebM needs an ffmpeg built with libvpx.
107 graphics in twelve packs. Every one takes any brand style and any aspect, and every part of it takes any move.
| Pack | Items |
|---|---|
| Essentials (14) | lower-third · title-card · headline (kinetic, on the voice) · subscribe · social · callout · stat · bar-chart · steps · quote · banner · end-card · logo-sting · wipe |
| Broadcast (10) | Lower thirds in five looks — lt-bars, lt-reveal (mask reveal), lt-kicker, lt-pill (picture or initials, status dot), lt-news (tight boxes) — ticker (crawl), live-badge (viewers, clock), score-bug (teams, scores, clock, goal flash), location (pin and place card), countdown |
| Social (8) | follow-card (profile, count, Follow press) · notification (phone or desktop) · notifications (a stack that cascades) · comments (typing on) · chat (thread with typing dots) · post (counts and a heart) · now-playing (music card) · rating (stars, score, review) |
| Data (9) | line-chart (draws on, target line) · donut · bar-race (overtaking across periods) · goals (meters) · versus · timeline · funnel · world-map (countries filled by value, regions) · flight (a great-circle route between two places) |
| 3D (7) | logo-3d (extruded wordmark, light sweep) · title-3d (letters flip up) · number-3d (an extruded counter) · card-flip (front and back) · cube (a word prism that rolls) · bars-3d (orbiting camera) · globe (spins to a country, routes arc in) |
| Transitions (11) | Cover the frame by the cut, reveal the next shot: iris (circle, diamond, star, square) · blinds · doors (with a Bauhaus disc) · glitch · ink (wobbly blooms) · clock · tiles (Bauhaus shapes) · pixels · stripes · slices · whip — each with a word at the cut |
| Annotate (10) | Point at things in footage (places in % of the frame): arrow (hand-drawn or clean) · circle · spotlight (feathered dim) · focus (brackets that lock on) · highlight (highlighter, underline, box, strike) · stamp (pressed ink) · reactions (live hearts, likes, fire) · pointer (leader line and card) · emphasis · markers (numbered) |
| Type (10) | Kinetic type: typewriter · word-swap (a word that keeps changing) · split-flap · marquee (tilted scrolling bands) · echo · liquid-fill · decode · word-by-word · key-phrase (marker on *marked* words) · stack (editorial) |
| Backdrops (9) | Moving grounds: pattern (any of the sixteen) · aurora · tiles (Bauhaus field) · retro-grid (synthwave) · blobs (lava goo) · gradient · starfield · bokeh · topo |
| Promo (8) | sale-badge (starburst) · price-card (counts down, strike, click) · coupon (copy the code) · offer-countdown (D:H:M:S) · features (checklist) · cta (button and cursor) · launch · ribbon (crossing tapes) |
| UI (5) | Interactive states (see *Interactive states*): button (idle, hover, press, loading, done) · toggle · like (rolling count) · loader (success or failure) · bell (badge, read) |
| Effects (6) | SVG filters, no GPU: grain (film grain, re-rolled every film frame) · light-leak · glass (frosted card over drifting colour) · chromatic (channels split and snap) · warp (liquid ripple settling) · neon (flickers on) |
volito info lists every prop. To see them all live, serve this package's folder and open examples/gallery.html.
Every item is made of named parts (volito info lower-third lists them: scrim, spine, plate, name, role). Any part takes any move, and the moves combine freely:
volito render lower-third \
--motion name.in=typewriter --motion plate.in=iris --motion "*.ease=bouncy" \ --motion role.emphasis=pulse@2 --motion spine.idle=pulse --out priya.mov
| Setting | Takes |
|---|---|
in, out | 38 moves — rise drop slide smear arc pop zoom push grow wipe iris shutter blinds diagonal blur flip turn spin roll swing skew stretch squash bounce elastic slam tilt float glitch flicker typewriter scramble … An exit plays its move backwards. |
ease | out inOut expo back elastic bounce, springs snappy punchy bouncy calm wobbly, or spring(f,d), steps(n), cubic(x1,y1,x2,y2) |
from, outFrom | the side a move comes from or leaves to (left, right, up, down, diagonals) |
dur, delay, at, outAt, distance, intensity, origin, blur | timing, travel, scale, pivot, motion blur |
idle | a loop while it holds: float bob pulse breathe wiggle sway drift jitter spin heartbeat shimmer |
emphasis | hits at a time, a beat or a spoken word: "shake@1.2, pop@now" (pulse pop shake jump wobble flash spin rubber tada) |
split, order, stagger | text whole, or by lines / words / letters, forward reverse center edges random |
keys | your own keyframes: [{"t":0,"x":-300,"op":0},{"t":0.8,"x":0,"op":1,"ease":"bouncy"}] — any path |
Or let it choreograph itself: --mood energetic | elegant | playful | cinematic | glitchy | minimal | retro | kinetic, and --seed for a new take on every number (the same number always moves the same way). --speed 2 plays it all twice as fast. volito moves lists everything. Programs you write get the same kit: const M = motion($, t); M.part("card", { at, in: "pop", box }, markup).
The 3D items are real geometry, not tricks: meshes are lit, faces turned away are culled, everything is sorted far to near and projected through a perspective camera — then drawn as SVG paths, so 3D renders on any machine with no GPU, at the same speed as the rest. 3D text is extruded from the outlines of the bundled faces (read straight from the font files), so a logo turns in the brand's own type.
function frame(t, $) {
const S = scene3d($, { camera: { yaw: -20 + 40 * (t / $.dur), pitch: -8 } }); S.add(S.text("VOLITO", { face: $.font("display"), size: 220 * $.k, depth: 60 * $.k, color: $.c.fg, side: $.c.accent })); return S.render(); }
Maps use Natural Earth's countries (177, packed into 30 KB): worldMap($, { center, zoom }) projects them flat (Equal Earth), worldGlobe(S, …) puts them on a 3D globe, and worldFind("UK") finds one by name, short name or ISO number. volito api documents both.
Every render can carry sound, and Volito makes it the way it makes pictures: from code, from nothing. No sample library, no files to find. --sound reads the graphic's own motion — every part's move leaves a mark — and gives each its sound: a spring pops, a move across the frame whooshes (louder the further it travels), letters tick, a typewriter types, a slam hits, a glitch zaps, a burst sparkles. --bed Dm lays a pad under it in a key, and it steps back under every hit on its own.
volito render logo-sting --prop wordmark=VOLITO --sound --bed Dm --format mp4 --out sting.mp4
volito sound lower-third --prop name="Priya Sharma" --out priya.wav # the track alone, with its cue list
A program designs its own sound beside its frames — function sound($) runs once with the same $ ($.dur, $.beat, $.at(word), $.data), so cues land on the same beats the picture uses:
function sound($) {
return { cues: [ { at: 0.2, kind: "riser", dur: 1.1 }, { at: $.beat("in", 1.3), kind: "hit", level: 1.1 }, { at: 1.5, kind: "shimmer", dur: 1.2, pan: 0.3 }, { at: -0.6, kind: "ding", note: "A5", level: 0.6 }, // negative counts from the end ], bed: { key: "D", mode: "minor", fr
Only the beginning is shown; read the rest in the repo