Figma-Context-MCP
CLAUDE.md16k starsChanged 4 months agoMITView on GitHub
Framelink MCP for Figma is a Model Context Protocol (MCP) server that gives AI coding tools (Cursor, etc.) access to Figma design data. It fetches Figma files/nodes via the Figma API, simplifies the response to include only relevant layout and styling information, and serves it to AI clients. Releases are automated via release-please. On merge to main, release-please reads conventional commit prefixes (fix:, feat:, feat!:) and maintains a release PR. Merging the release PR publishes to npm via OIDC trusted…
- Reads credentials
- Installs packages
We split this CLAUDE.md into the rules it gives an agent
6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 143
Write tests. Not too many.
- Distinctive: line 145
Every test has a cost: maintenance, false positives, slower CI.
- Distinctive: line 153
Don't test what the type system guarantees: If TypeScript enforces it at compile time, a runtime test adds no value.
- Distinctive: line 154
Don't test the framework: Don't verify that Express routes, React renders, or ORM queries work — test _your_ logic.
- Distinctive: line 175
Use the context7 MCP first to gather information on unfamiliar libraries or APIs.
- Distinctive: line 179
When reviewing plans, providing feedback, or analyzing approaches, be genuinely critical.
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Framelink MCP for Figma
Framelink MCP for Figma is a Model Context Protocol (MCP) server that gives AI coding tools (Cursor, etc.) access to Figma design data. It fetches Figma files/nodes via the Figma API, simplifies the response to include only relevant layout and styling information, and serves it to AI clients.
Build & Development Commands
pnpm install # Install dependencies
pnpm build # Build with tsup (outputs to dist/)
pnpm dev # Development mode with watch + auto-restart (HTTP)
pnpm dev:cli # Development mode (stdio)
pnpm test # Run Vitest tests
pnpm type-check # TypeScript type checking only
pnpm lint # ESLint
pnpm format # Prettier formatting
pnpm inspect # Run MCP inspector for debuggingRunning the Server
pnpm start # HTTP mode (default port 3333)
pnpm start:cli # stdio mode for MCP clientsRunning a Single Test
pnpm test -- path/to/test.ts
pnpm test -- --testNamePattern="pattern"Releasing
Releases are automated via release-please. On merge to main, release-please reads conventional commit prefixes (fix:, feat:, feat!:) and maintains a release PR. Merging the release PR publishes to npm via OIDC trusted publishing.
PR Title Convention
PRs are squash-merged, so the PR title becomes the commit message that release-please parses. Always use Conventional Commit prefixes in PR titles.
Architecture
Entry Points
src/bin.ts— CLI entry point, callsstartServer()src/server.ts— Server initialization, handles stdio vs HTTP mode selectionsrc/mcp-server.ts— Library re-exports for external consumers (createServer,startServer, etc.)src/index.ts— Library exports (extractors, types)
Transport Modes
The server supports two transports (configured in src/server.ts):
- stdio — For direct MCP client integration (activated with
--stdioflag orNODE_ENV=cli) - StreamableHTTP — Stateless HTTP transport at
/mcp(also served at/ssefor backward compatibility with existing client configs)
Core Data Flow
MCP Tools (
src/mcp/tools/) — Define tool schemas and handlersget_figma_data— Fetches and simplifies Figma design datadownload_figma_images— Downloads images from Figma
Figma Service (
src/services/figma.ts) — API client for Figma REST API- Handles auth (Personal Access Token or OAuth)
- Methods:
getRawFile(),getRawNode(),downloadImages()
Extractor System (
src/extractors/) — Transforms raw Figma API responsesdesign-extractor.ts— Entry point, parses API response and calls extractorsnode-walker.ts— Recursive traversal applying extractors to each nodebuilt-in.ts— Built-in extractors:layoutExtractor,textExtractor,visualsExtractor,componentExtractor- Extractors are composable;
allExtractorscombines all built-ins
- Transformers (
src/transformers/) — Convert specific Figma propertieslayout.ts— Layout/positioning transformsstyle.ts— Visual styling (fills, strokes)effects.ts— Effects (shadows, blurs)text.ts— Text content and stylingcomponent.ts— Component metadata
Configuration
src/config.ts handles CLI args and environment variables:
FIGMA_API_KEYor--figma-api-key— Personal Access TokenFIGMA_OAUTH_TOKENor--figma-oauth-token— OAuth Bearer tokenPORTor--port— HTTP server port (default: 3333)OUTPUT_FORMATor--format— Output format:tree(default),yaml, orjson--json— Back-compat alias for--format=json--skip-image-downloads— Disable image download tool
Path Alias
The codebase uses ~/ as an alias for src/ (configured in tsconfig.json and vitest.config.ts).
Philosophy
From CONTRIBUTING.md — important context for development:
- Unix Philosophy — Tools should have one job and few arguments. Keep tools simple to avoid confusing LLMs.
- Focused Scope — The server only handles "ingesting designs for AI consumption." Out of scope: image manipulation, CMS syncing, code generation, third-party integrations.
- Project-level Config — Options unlikely to change between requests should be CLI arguments, not tool parameters.
Token Efficiency
The simplified output is consumed by LLMs, so every field costs context budget. Keep it lean:
- Omit default values where LLMs can reliably infer the expectation without explicit data — emit only deviations. (e.g.
strokeAlign: INSIDEmatches the default CSSborderan LLM already produces, so it is dropped; onlyOUTSIDE/CENTERare emitted.)
Quality
This codebase will outlive you. Every shortcut becomes someone else's burden. Every hack compounds into technical debt that slows the whole team down.
For each proposed change, examine the existing system and redesign it into the most elegant solution that would have emerged if the change had been a foundational assumption from the start.
You are not just writing code. You are shaping the future of this project. The patterns you establish will be copied. The corners you cut will be cut again.
Fight entropy. Leave the codebase better than you found it.
Comment Policy
Unacceptable Comments
- Comments that repeat what code does
- Commented-out code (delete it)
- Obvious comments ("increment counter")
- Comments instead of good naming
Great Comments
- Why this exists — what problem does this solve, why is it valuable
- Why it works this way — important design decisions and their rationale
- Why NOT — approaches you considered and rejected, to prevent re-attempting failed ideas
- Warnings — non-obvious gotchas, ordering dependencies, "this must happen before X"
- Domain bridges — when code implements complex domain logic (finance calculations, protocol specs, algorithms) that can't fully express the underlying concept
- Looks wrong — when code appears unused, redundant, or incorrect but exists for a non-obvious reason (e.g., interface contracts for test implementations, load-bearing side effects)
- Negative space — when code deliberately doesn't handle something and that absence is intentional (e.g., "Does not retry—caller handles backoff" prevents someone from "helpfully" adding retry logic that breaks upstream assumptions)
Testing Philosophy
Write tests. Not too many. Mostly integration.
- Every test has a cost: maintenance, false positives, slower CI. Tests must earn their place.
- Most features need 2-5 tests. Some need zero.
- Zero tests is valid for: simple CRUD, styling, config changes, framework-convention code, etc.
- Design for testability using "functional core, imperative shell": keep pure business logic separate from code that does IO.
Principles
- Test behavior, not implementation. Tests should verify what the code does, not how it does it. Only use methods available on the public interface to verify behavior.
- Don't test what the type system guarantees. If TypeScript enforces it at compile time, a runtime test adds no value.
- Don't test the framework. Don't verify that Express routes, React renders, or ORM queries work — test your logic.
- Prefer real implementations over mocks. Mocks couple tests to implementation details and hide real bugs. Only mock at system boundaries (network, filesystem, time).
Only test behavior where:
- A failure would frustrate or block real users
- The behavior is non-obvious and could regress silently
- It's a critical integration point or state transition
Skip testing:
- Implementation details, private methods, trivial code
- Edge cases that won't occur in practice
- Variations that test the same underlying behavior
Error Handling
Trust internal code and framework guarantees. Only validate at system boundaries — user input, external APIs, file I/O. Don't add try/catch, fallbacks, or defensive checks for scenarios that can't happen in practice. Let errors propagate naturally; the caller that knows how to handle them should be the one catching them.
External Libraries
Use the context7 MCP first to gather information on unfamiliar libraries or APIs. If that fails, you may search the code directly or search the web for more detail.
Communication Style
When reviewing plans, providing feedback, or analyzing approaches, be genuinely critical. Flag real risks, tradeoffs, and things that will break rather than being agreeable. Grounded, opinionated analysis is more valuable than polite agreement.
Trending
Steady talk.about the whole repository
Who's talking about GLips/Figma-Context-MCP
- Website Learners“How to Turn Figma Designs into Live Websites in 10 Minutes!”YouTube · Aug 1, 2025 · 235k views
- AI LABS“Figma MCP Tutorial: The Best Way to Clone a Front-End”YouTube · Feb 26, 2025 · 90k views
- 조코딩 AX 파트너스“피그마 MCP로 디자인 딸깍 가능?”YouTube · Apr 24, 2025 · 33k views
- Oleksandr Krasnyk“Figma + Cursor MCP: Transform UI/UX into App”YouTube · Mar 24, 2025 · 17k views
- TechRill Academy“GitHub Copilot Agent + Figma MCP Server: AI-Powered UI Development Demo”YouTube · Mar 25, 2025 · 12k views
The biggest 5 of 79 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 79
Talked about on GitHub, YouTube, Bluesky and the web (79 times).
On GitHub · 46
- Feb 8, 2026AI 新人类 — yinguangyao/blog1 reaction
- Oct 7, 2026[intel] owasp-asi-tracker:oct-2025-framelink-figma-mcp-rce - OWASP ASI tracker: **Framelink Figma MCP RCE** — depalmar/ai-dfir-toolkit0 reactions
- Sep 29, 2026figmaMCP — heraclescorp/litellm0 reactions
- Sep 29, 2026Vote: Figma (Framelink) — StefanKasamakov/ai-compass0 reactions · 1 comment
- Jun 29, 2026[Ticket]: Token-gated opt-in MCP batch — Notion, Figma, Tavily/Exa, Sentry, 21st.dev — ADORSYS-GIS/ai-helm0 reactions · 1 comment
41 more on GitHub
- Jun 5, 2026content(mcp): add Figma Context MCP Server — JSONbored/awesome-claude0 reactions · 3 comments
- May 15, 2026[에이전트 리서치] Figma-Context-MCP — Claude가 Figma 파일을 직접 읽는 MCP 서버 — mlender-ai/simulo0 reactions · 1 comment
- Apr 7, 2026[BUG] MCP server connection issues for Figma server — EliteaAI/elitea_issues0 reactions · 3 comments
- Mar 22, 2026chore(deps): bump figma-developer-mcp from 0.6.6 to 0.7.1 — quantDIY/QuanuX0 reactions
- Mar 8, 2026chore(deps): bump figma-developer-mcp from 0.6.4 to 0.6.6 — quantDIY/QuanuX0 reactions · 2 comments
- Dec 30, 2025Framelink Figma MCP Server fetchWithRetry Command Injection ... — HackTricks-wiki/hacktricks0 reactions · 1 comment
- Dec 29, 2025feat(docker): [BLOCKED] Preinstall Figma Developer MCP server — link-assistant/hive-mind0 reactions · 10 comments
- Dec 29, 2025Preinstall https://github.com/GLips/Figma-Context-MCP in server/docker for claude and agent commands — link-assistant/hive-mind0 reactions · 1 comment
- Nov 26, 2025[BUG] MCP server connection issues for Figma server — ProjectAlita/projectalita.github.io0 reactions · 1 comment
- Oct 13, 2025PRP: Figma-Context-MCP CVE-2025-53967 RCE — google/tsunami-security-scanner-plugins0 reactions · 5 comments
- Sep 30, 2025Bump figma-developer-mcp from 0.2.2 to 0.6.3 in the npm_and_yarn group across 1 directory — enveng-group/dev_greenova0 reactions · 2 comments
- Sep 30, 2025[MCP Catalog] New MCP server candidate: io.github.GLips/Figma-Context-MCP — obot-platform/mcp-catalog0 reactions · 1 comment
- Sep 30, 2025Bump figma-developer-mcp from 0.4.2 to 0.6.3 — Exemplifi/Internal-UI-Components0 reactions
- Sep 30, 2025Bump figma-developer-mcp from 0.5.0 to 0.6.3 — bbalakriz/figma-mcp-server0 reactions
- Sep 10, 2025MCP Integration - Token size issue — Kilo-Org/kilocode0 reactions · 6 comments
- Sep 5, 2025Support dotenv for configuration — umbraco/Umbraco-CMS-MCP-Dev0 reactions · 1 comment
- Aug 15, 2025docs: remove figma MCP from suggested servers — aaif-goose/goose0 reactions · 1 comment
- May 10, 2025merge this into server and plugin readme — eonist/conduit0 reactions · 1 comment
- May 10, 2025Add getCSSAsync() — eonist/conduit0 reactions · 4 comments
- May 8, 2025insert_children — eonist/conduit0 reactions · 2 comments
- May 8, 2025ungroup_nodes — eonist/conduit0 reactions · 1 comment
- May 8, 2025more elaborate convert rectangle to frame — eonist/conduit0 reactions · 1 comment
- May 8, 2025convert a rectangle to a frame — eonist/conduit0 reactions
- May 8, 2025set_auto_layouts — eonist/conduit0 reactions · 1 comment
- May 8, 2025detach_instances — eonist/conduit0 reactions · 2 comments
- May 8, 2025create_bounded_texts — eonist/conduit0 reactions · 1 comment
- May 7, 2025Improve differentiation between text commands — eonist/conduit0 reactions · 2 comments
- May 6, 2025standardize error handling — eonist/conduit0 reactions
- May 6, 2025Add shared utilities — eonist/conduit0 reactions · 1 comment
- May 6, 2025Break up long files — eonist/conduit0 reactions · 2 comments
- May 6, 2025Add design tokens and style libraries feature — eonist/conduit0 reactions · 2 comments
- May 6, 2025Create a New Batch Tool Module — eonist/conduit0 reactions · 1 comment
- May 6, 2025Add Smart Components feature — eonist/conduit0 reactions · 1 comment
- May 5, 2025`group_nodes` Feature — eonist/conduit0 reactions · 1 comment
- May 5, 2025New feature addition suggestions — eonist/conduit0 reactions · 1 comment
- May 2, 2025Add get_pages command — eonist/conduit0 reactions · 4 comments
- Apr 9, 2025Screenshot tool? — BrowserMCP/mcp0 reactions · 3 comments
- Mar 24, 2025Test the MCP servers (1/6) — microsoft/vscode0 reactions · 4 comments
- Mar 18, 2025MCP Add Server fails to create API keys and apply stdio flag — microsoft/vscode0 reactions
- Mar 14, 2025Figma MCP server issues — VikashLoomba/copilot-mcp0 reactions · 1 comment
- Mar 7, 2025Error when adding SSE server — VikashLoomba/copilot-mcp0 reactions · 2 comments
On YouTube · 23
- Aug 1, 2025How to Turn Figma Designs into Live Websites in 10 Minutes! — Website Learners235k views · 110 comments
- Feb 26, 2025Figma MCP Tutorial: The Best Way to Clone a Front-End — AI LABS90k views · 142 comments
- Apr 24, 2025피그마 MCP로 디자인 딸깍 가능? — 조코딩 AX 파트너스33k views · 109 comments
- Mar 24, 2025Figma + Cursor MCP: Transform UI/UX into App — Oleksandr Krasnyk17k views · 15 comments
- Mar 25, 2025GitHub Copilot Agent + Figma MCP Server: AI-Powered UI Development Demo — TechRill Academy12k views · 15 comments
18 more on YouTube
- Apr 26, 2025피그마 디자인을 리액트 코드로 자동변환! MCP + CursorAI로 개발 시간 단축하기 — 제주코딩베이스캠프12k views · 11 comments
- Jul 20, 2025Essa ferramenta é INCRÍVEL: Figma MCP para criação de sites — Dev Lucenna9.5k views · 21 comments
- Dec 22, 2025How to Add Figma MCP in Cursor | Setup Figma MCP in Cursor | Enable Figma MCP in Cursor — Success Minder6.8k views · 4 comments
- Apr 22, 2025Convert Figma to ReactJS Code Instantly with Cursor AI + MCP (Complete Guide) — I Dev3.9k views · 9 comments
- May 1, 2025Design Login Pages 10x Faster with Cursor + Framelink Figma MCP 🚀 — Rayan Abidsays it tested it3.2k views · 12 comments
- Apr 6, 2025How to Convert Figma to Code with Cursor (MCP) and AI | React Native #cursor #reactnative #ai — I Dev3.2k views · 23 comments
- Mar 11, 2025Figma to Code with one Prompt - New Figma MCP - Cursor AI Tutorial — Furqan2.8k views · 17 comments
- Mar 17, 202510x Your Developer Productivity with MCP & Cursor: Convert Figma Design to React app in 5 minutes — The Fine Qubit2.4k views · 40 comments
- Jun 1, 2025Figma → Code in ONE CLICK (Hit Easy Mode with MCP!) — AI for Work2.2k views · 9 comments
- Jun 22, 2026Figma to code in one shot - the MCP that fixes AI design builds #Shorts — PeterTamAI1.6k views
- Mar 30, 2025Building a Website from Figma Context MCP with Cursor: First Result and Comparison — nullmicgo1.4k views · 2 comments
- Feb 27, 2025Figma Context MCP 从设计到代码 — 二师兄AI1.3k views · 5 comments
- Sep 3, 2025Figma AI Tutorial: Clone Any Front-End & Convert Figma to Code with Cursor — Harshith Poojary690 views · 7 comments
- Apr 4, 2025Figma MCP Tutorial: The Best Way to Clone a Front-End — Developer Vivek649 views · 1 comment
- Jun 21, 2025피그마를 HTML, CSS로 1분만에 코딩하기! Figma-Context-MCP — 밤코딩 밤치390 views
- Jul 26, 2025Model Context Protocol Tutorial: Connect Atlassian + Figma with AI Tools | MCP Guide — MrDhamani343 views
- Aug 2, 2025Build Websites from Figma to Live in Minutes | Figma MCP + Cursor — Explore With Me188 views · 1 comment
- Jun 16, 2026Claude Code e Cursor — figma-context-mcp leva designs ao código #Claude #Shorts — RepoShots18 views · 1 comment
On Bluesky · 8
- Apr 9, 2025Mevcut :) github.com/GLips/Figma-... — @emrecakmak.me4 likes and reposts · 1 reply
- Mar 18, 2025Like, this Figma MCP server just converts figma projects into MVPs. wild stuff github.com/GLips/Figma-... — @michaelmclean.me3 likes and reposts
- May 20, 2025📦 GLips / Figma-Context-MCP ⭐ 6,965 (+61) 🗒 TypeScript MCP server to provide Figma layout information to AI coding agents like Cursor — @github-trending-js.bsky.social2 likes and reposts
- Mar 26, 2025I love the idea of connecting Figma to Cursor 1. Design in Figma 2. Tell cursor to build it 3. ... 4. Profit github.com/GLips/Figma-... — @tomelliot.net2 likes and reposts · 1 reply
- Feb 28, 2025“When Cursor has access to Figma design data, it's way better at one-shotting designs accurately than alternative approaches like pasting… — @wolfr.bsky.social2 likes and reposts · 1 reply
3 more on Bluesky
- Jun 5, 2025📦 GLips / Figma-Context-MCP ⭐ 7,695 (+58) 🗒 TypeScript MCP server to provide Figma layout information to AI coding agents like Cursor — @github-trending-js.bsky.social1 likes and repost
- Apr 6, 2025github.com/GLips/Fi... yug1224 starred GLips/Figma-Context-MCP - Figmaのレイアウト情報をAIに提供するMCPサーバー - CursorなどのAIがFigmaファイルにアクセス可能に - Figma… — @yug1224.com1 likes and repost
- Jun 17, 2025GitHub repo →github.com/GLips/Figma... — @arindam-1729.bsky.social0 likes and reposts · 1 reply
On the web · 2
- Oct 5, 2026Cursor with Figma and GitHub MCP Servers: Setup Guide - Zest — meetzest.com
- Mar 18, 2025MCP Add Server fails to create API keys and apply stdio flag — google.com
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

