
Figma Mcp Rs
io.github.jirayusuebPublished by GitHub account jirayusuebv0.1.0Updated Oct 24, 2026
Figma/FigJam MCP server with read/write via plugin — no API token, no limits. 78 tools.
The publisher's own server: Figma MCP Server
Overview
A local MCP server that gives an assistant read and write access to Figma and FigJam files through a plugin bridge, without a Figma API token.
- What you can do
- Read document structure, pages, selection, nodes, text, styles, variables, components and annotations, and export design tokens or screenshots and PDFs of frames. Create and modify frames, shapes, text, images, components, sections, layout, fills, strokes, effects and z-order, and delete nodes. Manage prototype reactions, local styles and variables, including modes and bindings. Work with FigJam boards: sticky notes, connectors, shapes, tables, code blocks and auto-arrange. Run arbitrary Plugin API JavaScript through escape-hatch tools for anything the named tools do not cover.
- When to use it
- Useful when you want an assistant to inspect, generate or bulk-edit designs in an open Figma or FigJam file, or to turn designs into code and text into layouts, especially on free plans where REST API quotas are tight.
- Requirements
- Runs as a local process, typically via npx or Docker, on a desktop with Figma Desktop. The bundled plugin must be imported once in Figma and run inside the target file; it connects to the server over a local WebSocket (default 127.0.0.1:1998). No API token or environment variables are declared.
Installation
In SourceWeft
- Open Figma Mcp Rs in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
figma-mcp-rs
Figma/FigJam MCP server in Rust — free, no rate limits. Rust port of vkhanhqui/figma-mcp-go with a rewritten SolidJS plugin and FigJam support.
Open-source MCP server with full read/write access to Figma and FigJam via plugin — no REST API, no rate limits. Turn text into designs and designs into real code. Works with Claude, Cursor, GitHub Copilot, and any MCP-compatible AI tool.
Highlights
- No Figma API token required
- No rate limits — free plan friendly
- Read and Write live Figma/FigJam data via plugin bridge — 87 tools total (73 from the Go reference, plus
get_status,execute_code, eight FigJam tools, theuse_figmaescape hatch, and four design-system tools:update_style,update_variable,set_variable_mode,bind_variable_to_style) - Full design automation — styles, variables (values, aliases, scopes, modes), components, prototypes, and content
- Colors accepted anywhere as hex,
rgb(),hsl(), oroklch();get_stylesandexport_tokensemit any of them viacolorFormat - Design strategies included — 12 MCP prompts built in
- Native binary, fast startup, low memory
- Plugin bundled in the binary — the server self-installs it on first run, no download step
- Built on rmcp 3.2; negotiates MCP protocol revision with each client
Why this exists
The official Figma MCP servers go through the REST API, which is rate limited per plan:
This server never calls the REST API. It talks to a plugin running inside Figma Desktop over a local WebSocket, so every read and write is unlimited and free — and unlike REST, the plugin can write to the open file.
Performance
Measured on Apple M4 Pro: ~6 MB RSS idle, ~7 MB with a plugin connected during tool round trips; startup < 10 ms. The Go reference runs ~15–25 MB.
Installation & Setup
1. Configure your AI tool
Claude Code CLI
Or build from source:
Codex CLI
Claude Code plugin marketplace (also installs the 15 skills)
.mcp.json (Claude and other MCP-compatible tools)
.vscode/mcp.json (Cursor / VS Code / GitHub Copilot)
Docker
.mcp.json with Docker:
The image listens on 0.0.0.0:1998 (baked into the default CMD), so the Figma plugin connects to ws://127.0.0.1:1998 as usual through the port mapping — keep the host port at 1998 or update the host in the plugin UI. Run one container per plugin connection; for multiple simultaneous MCP clients on one machine prefer the native binary, whose leader election shares a single plugin connection. The self-installed plugin path inside the container is not host-accessible — import the plugin from this repo's plugin/ directory or the release plugin.zip instead.
Server flags: --ip (default 127.0.0.1), --port (default 1998).
2. Install the Figma plugin
The plugin is bundled inside the server binary — no download or build step.
- Start the server once (any method above). On startup it writes
manifest.json,dist/code.js, anddist/index.htmlto~/.figma-mcp-rs/plugin/(Windows:%USERPROFILE%\.figma-mcp-rs\plugin\) and logs the path. - In Figma Desktop: Plugins → Development → Import plugin from manifest → select
~/.figma-mcp-rs/plugin/manifest.json - Run the plugin inside any Figma or FigJam file — it connects to the server over
ws://127.0.0.1:1998(host/port configurable in the plugin UI)
If a tool fails with plugin not connected, call get_status — it diagnoses the bridge and returns setup instructions.
Multiple server instances are safe: the first to bind the port becomes leader and owns the plugin connection; others become followers that proxy tool calls and take over automatically if the leader dies.
FigJam & Slides support
The plugin loads in every editor (editorType: ["figma", "figjam", "slides", "dev"]):
- Reads work in both:
get_document/get_design_contextserialize FigJam node types (STICKER, CONNECTOR, MARKER, WIDGET, EMBED, MEDIA…) - FigJam writes are eight named tools:
create_sticky,create_stickies,create_connector,create_shape_with_text,create_table,create_code_block,auto_arrange,get_board_contents - Figma-only tools (styles, variables, components, prototype reactions, auto-layout) return a clear error in FigJam files
- Remaining gaps — Slides, team-library variables/styles (
figma.teamLibrary.*,importVariableByKeyAsync), and anything else unwrapped: useuse_figma
Available Tools
Status
Escape hatch
Write — Create
Write — Modify
Write — Prototype (Figma only)
Write — Styles (Figma only)
Write — Variables (Figma only)
Write — Pages
Write — Components & Navigation
Read — Document & Selection
Read — Styles & Variables
Export
FigJam
MCP Prompts (12)
read_design_strategy, design_strategy, text_replacement_strategy, annotation_conversion_strategy, swap_overrides_instances, reaction_to_connector_strategy, style_audit_strategy, bulk_rename_strategy, design_token_generation_strategy, generate_color_palette, generate_type_scale, generate_component_variants
Claude Skills (15)
skills/ ships the 12 prompts as Claude Code skills plus bridge-troubleshooting (connection diagnostics), figjam-boards (FigJam stickies, shapes, tables, connectors, auto-arrange), and editor-compatibility (Figma/FigJam/Slides tool matrix). Installed automatically via the plugin marketplace; otherwise copy skills/ into your project's .claude/skills/.
Development
-
CI: fmt + clippy + tests (linux amd64/arm64, windows, macos) + plugin typecheck/test/build on every PR.
-
Releases: conventional commits (
feat:,fix:) on main → release-please opens a version-bump PR (Cargo.toml, Cargo.lock, npm/package.json, CHANGELOG); merging it tagsvX.Y.Zand the same workflow builds the five binaries + plugin.zip, publishes npm, and pushes the multi-arch image toghcr.io/jirayusueb/figma-mcp-rs. Re-run a release build for an existing tag withgh workflow run "Release please" -f tag=vX.Y.Z. -
Server: Rust (tokio, axum, rmcp). Plugin: TypeScript + SolidJS, built with Vite (UI inlined to
dist/index.html, core IIFEdist/code.js). -
Toolchain: Bun 1.4.2, TypeScript 7.
-
The wire protocol (bridge WebSocket frames, follower
/rpc) is kept compatible with the Go reference, so this server also works with the original figma-mcp-go plugin.
Credits
Fork of the architecture and tool design of figma-mcp-go by vkhanhqui — ported to Rust with a SolidJS plugin and FigJam support.
Related Projects
- vkhanhqui/figma-mcp-go — the Go reference this port follows
- alvinindra/figma-mcp-rust — another Rust port of the same server
- grab/cursor-talk-to-figma-mcp — the plugin-bridge approach this lineage comes from
- gethopp/figma-mcp-bridge — alternative plugin bridge
License
MIT
Source: README.md at commit 0c41a94
Tools
0Version history
1- v0.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Figma integrations

Figma MCP Server
com.figma.mcpOfficial publisher
Figma's remote MCP server that gives AI coding agents design context from Figma files so they can generate and update code.

Figma Vector MCP
Published by GitHub account workingmodel
Local MCP server plus Figma plugin that lets an assistant create and edit fully editable vector nodes, shapes, text and components on the Figma canvas.

Figma CodeKit MCP
Published by GitHub account Mehmoodqureshi
Converts a Figma frame into HTML, React or Next.js code and pixel-diffs the rendered result against the design until it converges.

figma-mcp
Published by GitHub account Mehmoodqureshi
Converts a Figma frame into deterministic HTML, React or Next.js code, then renders it in Chromium and pixel-diffs it against the design until it matches.

figma-vault
Published by GitHub account NBhey
A local MCP server that lets an assistant read Figma designs pulled once into a vault, offline and without a Figma token or rate limits.