Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for Storybook design systems — extract component HTML, styles and metadata.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
STORYBOOK_URL, NODE_TLS_REJECT_UNAUTHORIZED, DEBUGต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"design-system-extractor": {
"command": "npx",
"args": [
"-y",
"mcp-design-system-extractor"
],
"env": {
"STORYBOOK_URL": "ใส่ค่าของคุณ",
"NODE_TLS_REJECT_UNAUTHORIZED": "ใส่ค่าของคุณ",
"DEBUG": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add design-system-extractor --env STORYBOOK_URL='ใส่ค่าของคุณ' --env NODE_TLS_REJECT_UNAUTHORIZED='ใส่ค่าของคุณ' --env DEBUG='ใส่ค่าของคุณ' -- npx -y mcp-design-system-extractorเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"design-system-extractor": {
"command": "npx",
"args": [
"-y",
"mcp-design-system-extractor"
],
"env": {
"STORYBOOK_URL": "ใส่ค่าของคุณ",
"NODE_TLS_REJECT_UNAUTHORIZED": "ใส่ค่าของคุณ",
"DEBUG": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"design-system-extractor": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-design-system-extractor"
],
"env": {
"STORYBOOK_URL": "ใส่ค่าของคุณ",
"NODE_TLS_REJECT_UNAUTHORIZED": "ใส่ค่าของคุณ",
"DEBUG": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
STORYBOOK_URL envNODE_TLS_REJECT_UNAUTHORIZED envDEBUG envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub freema ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.3.0) เข้า registry วันนี้
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Figma Context MCP, Claude Real Video, Figma MCP Server
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
server ทางการของ Figma ส่งข้อมูลงานออกแบบให้ AI อ่าน เพื่อเปลี่ยนแบบเป็นโค้ดหรืออธิบายแบบได้ตรงขึ้น ต่อผ่านคลาวด์ของ Figma
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A Model Context Protocol (MCP) server that extracts component information from Storybook design systems. Connects to Storybook instances and extracts HTML, styles, and component metadata.
claude mcp add design-system npx mcp-design-system-extractor@latest \
--env STORYBOOK_URL=http://localhost:6006
With self-signed certificate:
claude mcp add design-system npx mcp-design-system-extractor@latest \
--env STORYBOOK_URL=https://my-storybook.example.com \ --env NODE_TLS_REJECT_UNAUTHORIZED=0
npm install -g mcp-design-system-extractor
Then configure in your MCP client (see Environment Variables).
git clone https://github.com/freema/mcp-design-system-extractor.git
cd mcp-design-system-extractor npm install && npm run build npm run setup # Interactive setup for Claude Desktop
| Variable | Description | Default |
|---|---|---|
STORYBOOK_URL | URL of your Storybook instance | http://localhost:6006 |
NODE_TLS_REJECT_UNAUTHORIZED | Set to 0 to skip SSL certificate verification (for self-signed certs) | 1 |
Example with self-signed certificate:
{
"mcpServers": { "design-system": { "command": "node", "args": ["/path/to/dist/index.js"], "env": { "STORYBOOK_URL": "https://my-storybook.example.com", "NODE_TLS_REJECT_UNAUTHORIZED": "0" } } } }
See DEVELOPMENT.md for detailed setup instructions.
compact: true for minimal output (reduces response size)category parameterpage and pageSize (default: 20)job_id, use job_status to poll for resultsasync: false for synchronous mode (uses timeout parameter)variantsOnly: true to get list of available variants (sync, fast)includeStyles: true for CSS extraction (Storybook CSS filtered out)"component-name--story-name" or just "component-name" (auto-resolves to default variant)query: Search term (use "*" for all)purpose: Find by function ("form inputs", "navigation", "feedback", "buttons", etc.)searchIn: "name", "title", "category", or "all" (default)page and pageSize"component-name--story-name"includeAll: true for all CSS variablesincludeFullCSS: true only when you need full CSS contentstatus, result (when completed), error (when failed)get_component_html in async modestatus: "all" (default), "active" (queued/running), "completed"// List all components (compact mode recommended)
await list_components({ compact: true });
// Search for components await search_components({ query: "button", searchIn: "name" });
// Find components by purpose await search_components({ purpose: "form inputs" });
// Get variants for a component await get_component_html({ componentId: "button", variantsOnly: true }); // Returns: { variants: ["primary", "secondary", "disabled"] }
// Get HTML (async mode - default) await get_component_html({ componentId: "button--primary" }); // Returns: { job_id: "job_xxx", status: "queued" }
// Poll for result await job_status({ job_id: "job_xxx" }); // Returns: { status: "completed", result: { html: "...", classes: [...] } }
// Get HTML (sync mode) await get_component_html({ componentId: "button--primary", async: false, timeout: 30000 }); // Returns: { html: "...", classes: [...] }
// Get HTML with styles await get_component_html({ componentId: "button--primary", async: false, includeStyles: true });
// Check all running jobs await job_list({ status: "active" });
// Extract theme info await get_theme_info({ includeAll: false });
// Get design tokens from CSS await get_external_css({ cssUrl: "https://my-storybook.com/assets/main.css" });
list_components with compact: trueget_component_html with variantsOnly: truesearch_components with purpose parameterOnce connected, you can use natural language prompts with Claude:
Component Discovery:
Show me all available button components in the design system
Building New Features:
I need to create a user profile card. Find relevant components
from the design system and show me their HTML structure.
Design System Analysis:
Extract the color palette and typography tokens from the design system.
I want to ensure my new component matches the existing styles.
Component Migration:
Get the HTML and styles for the "alert" component. I need to
recreate it in a different framework while keeping the same look.
Multi-Tool Workflow:
First list all form-related components, then get the HTML for
the input and select components. I'm building a registration form.
Connects to Storybook via /index.json and /iframe.html endpoints. Uses Puppeteer with headless Chrome for dynamic JavaScript rendering. Long-running operations use an in-memory job queue with max 2 concurrent jobs and 1-hour TTL for completed jobs.
STORYBOOK_URL is correctlist_components first to see available componentsjob_status/index.json endpoint directly in browserNODE_TLS_REJECT_UNAUTHORIZED=0 for self-signed certificatesStorybook 7, 8, 9 and 10. The server reads the story index from /index.json, falling back to /stories.json, and renders stories through /iframe.html?id= — endpoints that have been stable across all four major versions.
Storybook 6 and earlier are not supported: they predate /index.json and use a different story-id scheme.
Both a dev server (npm run storybook) and a built static Storybook served over HTTP will work.
See DEVELOPMENT.md for detailed development instructions.
Created by Tomáš Grasl
MIT