@echobt/figma-mcp
Provides tools for parsing, analyzing, and exporting assets from local .fig files, including page listing, node details, text extraction, color extraction, image and vector export, and design spec generation, enabling AI agents to work with Figma design data offline without API access.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@echobt/figma-mcplist pages in /path/to/design.fig"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@echobt/figma-mcp
Complete fork of bilalba/fig-mcp — local MCP server for reading and rendering .fig files offline (no Figma API, no PAT, no rate limits).
Maintained at echobt/figma-mcp.
Why this fork
Upstream is a solid fig-kiwi parser + experimental SVG renderer. This fork hardens it for agent design-to-code workflows on large local archives (hundreds of MB, 100k+ nodes):
Area | Improvement |
File reading | Lazy ZIP |
Screenshots |
|
Agent assets |
|
Images |
|
INSTANCE | Expand symbol children even when overrides are empty (was incorrectly skipped) |
Typography | Letter-spacing units ( |
Tests | node:test suite + TAOSCAN smoke harness |
Verified against a large real file (TAOSCAN - Mockups.fig, ~391MB, 23 pages, ~229k nodes, 1219 images).
Related MCP server: figmad-mcp
Install
npm install -g @echobt/figma-mcp
# or
npx @echobt/figma-mcp --helpBinaries (identical): figma-mcp, fig-mcp.
Quick start (Claude / Cursor / OpenCode)
# Claude Code
claude mcp add figma-mcp -- npx @echobt/figma-mcp
# Or pin a local path
claude mcp add figma-mcp -- node /path/to/figma-mcp/dist/index.jsExample prompts:
Parse
/path/to/design.fig, list pages, then export a design spec for the Home frame and take a pixelPerfect screenshot to/tmp/home.png.
CLI
Command | Description |
| Start MCP server (stdio) + optional image HTTP sidecar |
| Web viewer (default port 3000) |
|
|
| Help / version |
MCP tools
Document structure
Tool | Description |
| Simplified document tree |
| Paginated text tree |
| Hierarchical drill-down |
| All canvases |
| Contents of one page |
Nodes
Tool | Description |
| By type or name |
| By path |
| By GUID |
| Inferred flex-like layout |
Content
Tool | Description |
| Extract text |
| Unique solid colors |
| Nodes with fills |
Images & rendering
Tool | Description |
| Image inventory (lazy metadata) |
| MCP image content + JSON meta; optional |
| Document thumbnail as MCP image |
| PNG of node; default |
| Export real geometry SVG/PDF/PNG — prefer |
Agent copy (fork)
Tool | Description |
| Read first. Full rules + UCs ( |
| Primary implement tool. Writes |
| CSS + layout + tokens + tree + text for a node (JSON, optional |
| Write real images + true-geometry SVG + PNG for one node to a directory |
Debug
Tool | Description |
| Kiwi schema meta |
| Raw decoded message (truncated) |
| ZIP entries |
| Drop parsed cache + inflated image LRU |
Agent guide (required reading)
Canonical rules + use cases: MCP_GUIDE.md, or call get_mcp_guide / read resource figma-mcp://guide.
Server initialize also sends short instructions pointing agents at that guide.
Agent workflow (recommended)
Golden rule: never invent SVG d paths or re-draw icons. Always use exported files.
get_mcp_guide— hard rules + UC catalog (once per session)list_pages/get_tree_summary— map the filefind_nodesorget_node_by_id— pick a frame (session:local)export_asset_packwithoutputDir— dumps real assets +AGENTS.mdpolicyRead
MANIFEST.jsonand opennodes/*/node.svg,vectors/*.svg,images/*export_design_specfor exact text/CSS tokensImplement with HTML/CSS + file references (img/src or copied SVG files)
Optional
render_screenwithtrueGeometry: true(default) +outputPathfor visual QA
get_vector also exports real baked geometry — prefer outputPath and open the file.
Node IDs look like 3779:22748 (from the web viewer or any tool that returns id / nodeId).
How it works
.figfiles are ZIP archives (canvas.figfig-kiwi binary,meta.json,thumbnail.png,images/).Schema embedded in each file is decoded with kiwi.
Flat
nodeChangesare rebuilt into a tree.Images stay in the archive until requested (
ImageStore).Subtrees render to SVG → PNG via
@resvg/resvg-js.
Develop
npm install
npm run build
npm test
FIG_MCP_TAOSCAN="/path/to/file.fig" npm run smoke:taoscanSmoke writes evidence under /tmp/opencode/fig-mcp-work/qa-out/ when available.
Requirements
Node.js 18+
Limitations
.figformat is undocumented and may changeLocal files only (use official Figma MCP for cloud files)
Vector export uses Figma baked
fillGeometry/strokeGeometry(true path data from the file). Screenshots use that SVG via resvg — not hand-approximated icons. Complex blend modes / full BOOLEAN merge may still be incomplete.Agents must use
export_asset_packfiles, not recreated path strings.Very large files still keep the ZIP buffer in memory (images are lazy; canvas decode can still be multi‑GB on enormous docs)
License
MIT — see LICENSE.
Upstream credit: bilalba/fig-mcp by bilal; kiwi by Evan Wallace; MCP TypeScript SDK.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/echobt/figma-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server