Analyze Figma designs for dev & AI readiness. 39 rules, scoring, HTML reports.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Ship your Figma design exactly as you intended β without learning CSS.
Try it in your browser β no install needed.
You designed it in Figma. You know exactly how it should look and behave β but the AI codegen guesses, and half the time it guesses wrong. The cards don't stack on mobile. The hover state disappears. The padding gets normalised. That's not what I designed.
canicode is the pre-implementation interview between your Figma file and AI codegen. It asks the questions a developer would ask before they implement β in plain language you can answer:
"The three cards are side-by-side at desktop width β what should happen when the screen is narrow?"
You answer in plain words ("μ’μμ§λ©΄ ν μ€μ νλμ©" / "stack them vertically"). canicode translates that into the exact technical spec the codegen needs, and writes it back into your Figma file as a structured annotation so the next run no longer has to guess.
You stay in Figma. You never type a CSS selector. The intent ships.
β Full thesis: docs/POSITIONING.md
The linter is deterministic (no LLM tokens consumed for the analysis itself), ablation-validated at 94% pixel accuracy with 5Γ fewer tokens than raw JSON, and calibrated against real Figma designs.
Claude Design launched in April 2026 and covers the prompt β app path beautifully β AI designs from your prompt and hands the result to Claude Code. canicode covers a different workflow:
| Claude Design | canicode | |
|---|---|---|
| Who designs | AI (from a prompt) | The designer (in Figma) |
If you want the AI to design for you, use Claude Design. If you already designed it and want it implemented exactly the way you intended, canicode is for you. The two are not in competition β they assume different things about who owns the design.
See docs/POSITIONING.md for the full thesis (target persona, the workflow assumption, and what canicode is not for).
Skills: canicode-gotchas = survey answers saved locally in SKILL.md only (memo). canicode-roundtrip = same analysis path plus writes to Figma (annotations / properties). Pick gotchas for capture-only; pick roundtrip when the design file should change.
/canicode-roundtrip skill writes answers back via use_figma. Each write shows up in the summary with one of three outcome markers:
allowDefinitionWrite.figma-implement-design β canicode's scope ends at design augmentation. Figma's official code-generation skill takes the now-clean design and produces code.figma-implement-design returns, the roundtrip asks whether the generated code is satisfactory. On y, canicode registers a Code Connect mapping pointing the Figma component at the just-generated code so future roundtrips on screens containing this component reuse the implementation instead of regenerating markup. Skipped if Code Connect is not set up in your repo β the roundtrip warns about this up front, before the gotcha survey, so you can decide whether to install prerequisites first or proceed without mapping.The roundtrip calls the Figma MCP server to read and write your design β install it once with claude mcp add -s project -t http figma https://mcp.figma.com/mcp and restart Claude Code.
Cursor / Claude Desktop / other MCP host: also supported. CLI install path (
npx canicode init --cursor-skills), bare MCP server install, GitHub Action for CI gates, and other channels are listed in the Installation matrix below.
Optional β Code Connect (for the closing Step 6 mapping): install
@figma/code-connectand createfigma.config.jsonat your repo root per Figma's setup guide, then runcanicode doctor. If you skip this, the roundtrip still works β it just does not register the mapping. It warns you up front so you can decide.
| Category | Rules | What it measures |
|---|---|---|
| Pixel Critical | 3 | Can AI read the layout? (Auto Layout, absolute positioning, groups) |
| Responsive Critical | 2 | Will it work at different viewports? (fixed sizing, size constraints) |
| Code Quality | 5 | Is the design efficient for AI context? (components, variants, nesting, Code Connect coverage) |
| Token Management | 2 | Can AI reproduce exact values? (raw values, spacing grid) |
| Interaction | 2 | Can AI know what happens? (state variants, prototypes) |
| Semantic | 3 | Can AI infer meaning? (semantic names, conventions) |
Each issue is classified: Blocking > Risk > Missing Info > Suggestion.
Token safety: never paste your Figma token into Claude / Cursor / agent chat β session logs can retain it. Use the CLI prompt (
npx canicode init),--token, or theFIGMA_TOKEN=β¦env var.
Each row below is a complete install. Don't run more than one β they cover overlapping use cases.
| If you use⦠| Install |
|---|---|
| Claude Code (recommended for the roundtrip workflow) | npx canicode init (interactive prompt for the token in a TTY) or npx canicode init --token figd_xxxxxxxxxxxxx (CI / non-TTY) β saves the token AND drops /canicode, /canicode-gotchas, /canicode-roundtrip skills into ./.claude/skills/. The skills already know how to call canicode via npx canicode β¦, so no canicode MCP install is needed; the Figma MCP is still required for the /canicode-roundtrip apply step β see the prereq below. To rotate the token later without reinstalling skills: npx canicode config set-token. |
| Cursor / Claude Desktop / other MCP host | Add canicode to the hostβs MCP config β see docs/CUSTOMIZATION.md. Example (Cursor project file): npx + canicode-mcp via --package=canicode. |
| OpenClaw / other AgentSkills-compatible host | Manual skill copy β see Other agents (manual install). Best-effort docs, not a support commitment. |
| Just the CLI (CI, scripts) | Nothing. npx canicode analyze "<figma-url>" works directly. Run canicode init --token β¦ once if you want the token persisted to ~/.canicode/config.json. To rotate the token later, use canicode config set-token (no skill reinstall). |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/canicode)<a href="https://allmcps.com/mcp/canicode"><img src="https://allmcps.com/api/badge/canicode?style=directory" alt="Canicode on AllMCPs" /></a>