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)
Turn a script into a narrated product tour video: real browser, captions, voice, MP4.
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.
TOURWRIGHT_API_URL, TOURWRIGHT_API_TOKENValues marked secret are keys to your account. Never share them or paste them into a chat.
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": {
"tourwright": {
"command": "npx",
"args": [
"-y",
"tourwright",
"mcp"
],
"env": {
"TOURWRIGHT_API_URL": "your-value",
"TOURWRIGHT_API_TOKEN": "your-value"
}
}
}
}Run this in your terminal
claude mcp add tourwright --env TOURWRIGHT_API_URL=your-value --env TOURWRIGHT_API_TOKEN=your-value -- npx -y tourwright mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"tourwright": {
"command": "npx",
"args": [
"-y",
"tourwright",
"mcp"
],
"env": {
"TOURWRIGHT_API_URL": "your-value",
"TOURWRIGHT_API_TOKEN": "your-value"
}
}
}
}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": {
"tourwright": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"tourwright",
"mcp"
],
"env": {
"TOURWRIGHT_API_URL": "your-value",
"TOURWRIGHT_API_TOKEN": "your-value"
}
}
}
}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.
TOURWRIGHT_API_URL envThese 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 CXmiloxx, 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.
You need to fill in: TOURWRIGHT_API_TOKEN
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 (2.6.1) reached the registry today.
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.
Narrated product tours and how-to videos, without editing. Click through your app once, or ask your AI agent for the video: Tourwright writes the script, films a real browser in a studio frame, guides the eye to each element, speaks with a natural voice and delivers an .mp4 with captions, chapters and a thumbnail. When the UI changes, you render again. Built for people *and* AI agents, on any server, from a laptop to a cluster.
*Leer en español*
Made by Tourwright from examples/app.yaml , with nobody at the keyboard. ▶ Watch it with sound (77 s)
# tour.yaml
title: Your first invoice voice: lessac baseUrl: https://app.example.com steps:
tourwright render tour.yaml # → videos/tour/tour.mp4 (+ captions.srt/.vtt, .jpg, .json)
Screen recorders (Loom) and click-through demo tools (Arcade, Supademo, Scribe) need a person to record, and every redesign means recording again. Tourwright videos are code:
| Screen recorder | Demo SaaS | Tourwright | |
|---|---|---|---|
| Re-record after a UI change | by hand | by hand | tourwright render |
| Knows when a video went stale | no | no | tourwright check in CI names the broken step and the fix |
| Narration | your voice, retakes | none or extra | text-to-speech in many voices, offline or online |
| Same tour for 50 customers or languages | 50 recordings | 50 demos | one script with {{variables}} |
| Personal data on screen | edit it out | edit it out | mask replaces it with invented data |
| Lives in | a vendor's cloud | a vendor's cloud | your git repo, your servers; MIT |
| AI agents can make one | no | no | MCP server and a Claude Code plugin |
2/4 badge explains it and the camera pushes in, right on the word the voice is saying.tourwright install --pocket), Piper (offline, open source, light), Microsoft Edge neural voices, any OpenAI-compatible TTS server (OpenAI, Kokoro, LocalAI…), or your own command. Every sentence is cached: re-rendering never re-synthesizes.[[1s]]), a pronunciation dictionary, sound presets (warm, radio, podcast…), click, typing and other sound effects, music with fades.{{name}}, also from the CLI or the API), reusable blocks, repeats, conditions and steps that may fail. One script, many videos..mp4 with chapters and the captions drawn on it, .srt, .vtt, thumbnail and a JSON manifest (duration, chapters, captions) for automation.docker run --rm -v "$PWD:/work" -w /work ghcr.io/cxmiloxx/tourwright render examples/slides.yaml --out videos/
A full service (API + 2 workers + Redis):
cp .env.example .env # set TOURWRIGHT_API_TOKENS
docker compose up -d --build docker compose up -d --scale worker=6
Node.js 22+, on Linux, macOS or Windows:
npm install -g tourwright
tourwright install # ffmpeg, Piper + voices, edge-tts, Chromium (no root) tourwright install --plan # only show what it would use from this PC and what it would download tourwright config set quality fullhd # your own defaults: quality, voice, fps… (tourwright config lists them) tourwright record https://app.example.com --out tour.yaml # do the tour by hand: you get the script and the video tourwright guide tour.yaml --open # the same tour as a step-by-step guide with screenshots (HTML, PDF, Markdown) tourwright narrate tour.yaml --write # your AI (Claude, OpenAI, Ollama) rewrites the narration from the screens tourwright translate tour.yaml --to en # the same video in English (or pt, fr, de, it): tour.en.yaml tourwright check videos/*.yaml # which videos broke after a deploy, at which step, and the fix tourwright fix tour.yaml --write # puts the new targets in the script tourwright render tour.yaml --step 7 # film one step with its voice, without the whole video tourwright install --pocket # + Pocket TTS: natural offline voices (about 1 GB) tourwright clean # what each part takes on disk; removes downloads and leftovers tourwright doctor # what works on this machine
Without installing anything globally: npx tourwright . With pnpm: pnpm add -g tourwright (on 2.0.0, add --no-optional).
The Redis queue and Claude for narrate are optional: install bullmq ioredis or @anthropic-ai/sdk next to Tourwright when you use them (npm install -g bullmq ioredis). The Docker image already has them.
Node.js 22+. tourwright install puts ffmpeg, Piper, voices, edge-tts and Chromium in TOURWRIGHT_HOME, with no root or admin rights; what the system already has is kept.
git clone https://github.com/CXmiloxx/tourwright && cd tourwright
./scripts/install.sh # Linux / macOS (Windows: powershell -ExecutionPolicy Bypass -File scripts\install.ps1) node bin/tourwright.js doctor # what works on this machine npm link # optional: the tourwright command
Each piece is looked for on the PC first and only downloaded when it is missing:
| Linux (x64, arm64) | macOS (Intel, Apple Silicon) | Windows 10/11 (x64, ARM) | |
|---|---|---|---|
| Chromium | Chrome, Edge or Chromium (apt, dnf, pacman, Raspberry Pi OS), else downloaded | Chrome, Edge or Chromium, else downloaded | Chrome or Edge, else downloaded |
| ffmpeg | PATH, Homebrew, Nix, else downloaded | Homebrew, MacPorts, Nix, else brew install ffmpeg | PATH, winget, scoop, Chocolatey, C:fmpeg, else downloaded |
| Piper (offline voices) | PATH, pip, pipx, conda, else downloaded | PATH, pip, pipx, conda, else piper-tts | PATH, pip, pipx, conda, else downloaded |
| Piper voices | Hugging Face cache, TOURWRIGHT_PIPER_VOICE_DIRS, else downloaded | same | same |
| edge-tts (Microsoft voices) | PATH, pip, pipx, conda, else installed | same | same |
| Python (for edge-tts, Pocket, Whisper) | the system's 3.10–3.13, else 3.12 is downloaded | same | same (not the Microsoft Store stub) |
| Capture | screen with Xvfb (sharpest), else screencast | screencast | screencast |
Also reused: a Chromium left by another Playwright or Puppeteer version, and CHROME_PATH, CHROME_BIN or PUPPETEER_EXECUTABLE_PATH. Snap and Flatpak browsers are skipped (their sandbox blocks Playwright). TOURWRIGHT_SYSTEM_BROWSER=0 always uses Playwright's own Chromium. tourwright doctor shows what was found.
Nothing is installed on the system: what is downloaded lives in one folder (TOURWRIGHT_HOME), and the Python packages run in a virtual environment, so yours is never changed. To uninstall, delete that folder.
Xvfb (apt install xvfb, Linux only) gives the sharpest capture; without it Tourwright records headless (screencast), which works everywhere Chromium runs. Clients of the HTTP API or MCP can be on any system.
From a site to a video, without writing selectors by hand:
tourwright explore https://app.example.com/login --draft app.yaml # asks for the login, writes the script
tourwright render app.yaml --dry-run # checks every step in seconds tourwright render app.yaml --open # the video, in ./videos/app/
The draft goes through every section of the site with narration taken from its pages; edit it in your words. Credentials are asked for once, never shown and never written in the script (tourwright secret list; tourwright forget deletes them).
tourwright init video.yaml # an example script
tourwright validate video.yaml tourwright render video.yaml --dry-run # runs every step fast: tests selectors, no voice/video tourwright render video.yaml --safe # the same, pressing nothing: no real sign-up, payment or SMS tourwright render video.yaml --keep # keeps the recording: tourwright recompose videos/video remakes it without the browser tourwright render video.yaml --quality fullhd --voice salome --out out/ tourwright voices # voices available here tourwright install-voice en_GB-alba-medium # any voice from huggingface.co/rhasspy/piper-voices tourwright say "Hello there" --voice lessac --out hello.wav
The script format, every action and the voices: [docs/SCRIPTS.md](docs/SCRIPTS.md). JSON Schema for editors and agents: schema/script.schema.json.
TOURWRIGHT_API_TOKENS=secret tourwright serve --worker --port 4700
curl -X POST localhost:4700/v1/jobs -H 'authorization: Bearer secret' -H 'content-type: application/json' \ -d '{"script": {"type": "slides", "slides": [{"title": "Hello", "say": "Hello from the API."}]}}' curl localhost:4700/v1/jobs/ -H 'authorization: Bearer secret' # → status, result, download links
Endpoints, assets, webhooks: docs/API.md.
Claude Code, as a plugin (the MCP server plus a skill that writes, checks and renders the script):
/plugin marketplace add CXmiloxx/tourwright
/plugin install tourwright@tourwright
Any other MCP client (Claude Desktop, Cursor, VS Code…):
{ "mcpServers": { "tourwright": { "command": "tourwright", "args": ["mcp"] } } }
Tools: tourwright_guide, tourwright_voices, tourwright_validate, tourwright_check, `tourwr
Only the beginning is shown; read the rest in the repo