VizX — Claude ↔ Figma MCP Bridge
Chat with Claude and watch your Figma canvas update in real time.
---
How it works
You chat with Claude
→ Claude calls MCP tools
→ MCP server (hosted on Railway) sends commands via WebSocket
→ Figma plugin executes them on the canvas
---
Setup (one time, ~10 minutes)
Step 1 — Deploy to Railway
- Fork or upload this repo to your GitHub account
- Go to railway.app → New Project → Deploy from GitHub
- Select this repo — Railway auto-detects Node.js and deploys
- Once deployed, go to Settings → Networking → Generate Domain
- Copy your public domain — it looks like
your-app.railway.app
Step 2 — Load the Figma plugin
- Open Figma Desktop (must be the desktop app, not browser)
- Go to Plugins → Development → Import plugin from manifest…
- Select
figma-plugin/manifest.jsonfrom this repo - VizX Claude Bridge will appear under Development plugins
Step 3 — Connect the plugin to Railway
- Open any Figma file
- Run: Plugins → Development → VizX Claude Bridge
- Replace
YOUR-APP.railway.appin the URL field with your actual Railway domain - Click Connect
- You should see "Connected — ready for Claude commands"
Step 4 — Register with Claude Desktop
Open (or create): `` ~/Library/Application Support/Claude/claude_desktop_config.json ``
Add this block, updating the path to where you cloned this repo: ``json { "mcpServers": { "figma": { "command": "node", "args": ["/FULL/PATH/TO/figma-mcp/server.js"] } } } ``
Restart Claude Desktop.
Step 5 — Chat
Example prompts to try:
"Create a pitchbook slide called Revenue Growth with the headline '$281M revenue by 2030'"
"Add a stacked bar chart showing LiveWell vs acquired revenue 2026-2030"
"Add stat cards: $45M 2026 revenue, $281M 2030 revenue, 6.2× growth"
"Update the headline to 'Revenue scales 6× through roll-up strategy'"
---
Tools Claude can call
| Tool | What it does | |------|-------------| | ping_figma | Check connection status | | list_frames | List all frames on the page | | create_slide | Create a pitchbook slide frame | | add_stat_cards | Add KPI stat cards to a slide | | add_chart | Add a chart as editable SVG vectors | | add_legend | Add a color legend row | | add_text | Add a text node | | update_text | Edit existing text by name | | delete_node | Remove a node | | focus_frame | Zoom viewport to a frame | | set_fill_color | Change background color | | duplicate_frame | Clone a frame as a template |
Chart types
bar— grouped bar chartstacked_bar— stacked bar chartline— line chart with area fillhorizontal_bar— horizontal bars (tornado, bridge)combo— bars + line on dual axis
All charts render as editable SVG vector paths — not images.
---
Environment variables (Railway)
| Variable | Default | Description | |----------|---------|-------------| | PORT | 3000 | HTTP health check (set automatically by Railway) | | WS_PORT | 9001 | WebSocket port the Figma plugin connects to |
---
Troubleshooting
"Figma plugin is not connected" — Make sure the plugin panel is open in Figma Desktop.
"Connection error" in plugin — Check your Railway domain is correct and the service is awake.
Charts look stretched — Resize the SVG node in Figma; it scales to frame width on import.
Claude doesn't see figma tools — Restart Claude Desktop after editing the config file.
Railway goes to sleep — Disable sleep under Railway → Settings, or upgrade to a paid plan.
---
Copyright © 2026 Vizx Global. All rights reserved.











