Figma to pixel-perfect code: deterministic HTML/React, then a render + pixel-diff verify loop.
MCPpedia last refreshed this data
io.github.Mehmoodqureshi/figma-mcp is an MCP server that figma to pixel-perfect code: deterministic HTML/React, then a render + pixel-diff verify loop. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 85/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"figma": {
"env": {
"FIGMA_TOKEN": "figd_REPLACE_WITH_YOUR_TOKEN"
},
"args": [
"-y",
"@mehmoodqureshi/figma-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Figma to pixel-perfect code: deterministic HTML/React, then a render + pixel-diff verify loop.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@mehmoodqureshi/figma-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @mehmoodqureshi/figma-mcp against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in design
AI-native design editor. Open-source Figma alternative.
Draw and visually collaborate with your agents on tldraw's canvas.
MeiGen-AI-Design-MCP — Turn Claude Code / OpenClaw into your local Lovart. Local ComfyUI, 1,400+ prompt library, multi-direction parallel generation.
A mcp server to allow LLMS gain context about shadcn ui component structure,usage and installation,compaitable with react,svelte 5,vue & React Native
MCP Security Weekly
Get CVE alerts and security updates for io.github.Mehmoodqureshi/figma-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Upgrading from an earlier package name: replace the package in your MCP client command with npx -y figma-codekit-mcp@latest. Existing environment settings and saved data remain compatible.
Figma → code that is actually checked against the design.
Most Figma-to-code tools stop at the moment of generation: they hand you JSX and walk away. Nobody ever renders the output and compares it to the frame, so the result stalls at "90% there" and you spend the afternoon nudging padding by eye.
This MCP server closes that loop. It converts a frame to self-contained HTML deterministically (no LLM, no hallucinated layout), then renders your code in Chromium, pixel-diffs it against the Figma reference, measures every element's box, and tells the agent exactly what is missing or misplaced. The agent edits, calls verify again, and repeats until the diff is at the anti-aliasing floor.
| Figma reference | First pass — 5.18% off | Pixel diff | Converged — 0.00% |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Those are real artifacts from npm run example, which runs the loop end to end
with no API key. The generate callback in that demo is a scripted stand-in
for an LLM, so it shows the loop mechanics honestly — the measuring is real, the
"model" is not.
A Figma node tree tells you what the designer declared. It does not tell you what a browser will do with your CSS. Those diverge constantly — a flex gap that collapses, a font that falls back, an absolute child that escapes its parent. The only way to know is to render it and look.
figma_verify gives the agent three independent signals per pass:
data-ir-id, measured in
the live DOM, and matched against its Figma box. This is what turns "the
bottom-left looks off" into "the CTA button is missing" or "the price label is
40px too low".elementsFromPoint over a sample grid
gives the rendered order wherever two elements actually overlap. This catches
the class of bug the other two signals are blind to by construction: elements
present, in exactly the right box, stacked the wrong way round — or cut off by
an ancestor's overflow where the design lets them overhang. Neither moves a
box, and on a tall frame neither moves the diff ratio much, but a decorative
overlay drawn over a photo instead of under it is the first thing a person
sees. Reported as WRONG STACKING / OVER-CLIPPED, and reported even when the
pixel diff has converged.| Tool | What it does | Network |
|---|---|---|
figma_convert | Fetch a frame → self-contained HTML + ir.json + assets as data URIs + reference.png. Optional react: true (component + the components/ it imports) and next: true (a runnable App Router project), plus a responsive variant. | Figma API (cached) |
figma_verify | Render HTML in Chromium, pixel-diff vs the reference, IoU-check every element, check paint order and clipping, return targeted fix instructions. | none |
figma_inspect | Print the IR as an indented outline (role, box, layout, text, tokens), filterable — read the structure without dumping raw Figm |