Skip to main content

figma-context-mcp

Expert guide for using the Figma Context MCP (Framelink) efficiently while avoiding 429 rate-limit errors. Activate when: (1) using Framelink Figma MCP tools (get_figma_data, download_figma_images), (2) fetching Figma designs for code generation, (3) user hits 429 rate limits from Figma API, (4) extracting design tokens or component data from Figma, (5) downloading Figma assets/images, (6) any design-to-code workflow involving Figma URLs. Covers metadata-first fetching, depth-limited node trees, batch image downloads, rate-limit diagnostics, and plan-tier awareness.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
vladmdgolam/agent-skills
آخر نشاط في المصدر
١٥ مارس ٢٠٢٦ في ١٥:٤٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٨
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
figma-context-mcp
description
Expert guide for using the Figma Context MCP (Framelink) efficiently while avoiding 429 rate-limit errors. Activate when: (1) using Framelink Figma MCP tools (get_figma_data, download_figma_images), (2) fetching Figma designs for code generation, (3) user hits 429 rate limits from Figma API, (4) extracting design tokens or component data from Figma, (5) downloading Figma assets/images, (6) any design-to-code workflow involving Figma URLs. Covers metadata-first fetching, depth-limited node trees, batch image downloads, rate-limit diagnostics, and plan-tier awareness.
# Figma Context MCP Expert guide for the [Figma Context MCP](https://github.com/GLips/Figma-Context-MCP) (also known as Framelink). Teaches efficient API usage patterns that prevent 429 rate-limit lockouts. ## Tools | Tool | Purpose | API Tier | |------|---------|----------| | `get_figma_data` | Fetch file/node structure, layout, components | Tier 1 (most restricted) | | `download_figma_images` | Export PNG/SVG renders of specific nodes | Tier 2-3 | ## Critical: Rate Limits Figma enforces per-plan rate limits. Limits apply based on the **file owner's plan**, not yours: | Tier | Starter | Pro | Org | |------|---------|-----|-----| | Tier 1 (files) | 10/min | 15/min | 20/min | | Tier 2 (images) | 25/min | 50/min | 100/min | | Tier 3 | 50/min | 100/min | 150/min | View/Collab seats get only **6 Tier-1 calls/month**. If accessing files owned by someone on a Starter/free plan, their limits apply to you. 429 lockouts can last **4-5 days**. Prevention is essential. ## Workflow: Metadata-First Pipeline **Never fetch everything upfront.** Adopt this pipeline to keep most jobs under 2-3 API calls and <500 KB: ### 1. Start with a targeted node, not the whole file When a user provides a Figma URL like `figma.com/design/FILEKEY/Name?node-id=123-456`, always extract and pass the `nodeId`. Never fetch the entire file when a specific node is available. ``` get_figma_data(fileKey="ABC123", nodeId="123-456", depth=2) ``` ### 2. Use minimal depth Always set `depth` to limit tree traversal: - **depth=1**: Top-level frame only (layout structure, component names) - **depth=2**: Frame + direct children (usually sufficient for code generation) - **depth=3**: Maximum recommended — only when nested auto-layouts require it **Default if omitted: the API returns the ENTIRE subtree** — often megabytes for complex frames with 50-200+ children. This is the #1 cause of 429 errors. ### 3. Analyze locally before fetching more After receiving the initial response: - Identify which child nodes actually need detail (skip hidden, decorative, or library-referenced nodes) - Extract design tokens (colors, spacing, typography) directly from the response — no extra calls needed - Build your component structure from what you already have ### 4. Fetch deeper nodes only if necessary If a specific child node needs more detail, fetch just that node: ``` get_figma_data(fileKey="ABC123", nodeId="child-node-id", depth=1) ``` ### 5. Download images last, in small batches Only request images for the **final deduplicated set** of visual assets you actually need: - Deduplicate by `imageRef` — multiple nodes can reference the same fill image - Batch into groups of **5-10 nodes** per call - Use `pngScale=1` unless the user specifically needs @2x/@3x assets ``` download_figma_images( fileKey="ABC123", nodes=[{nodeId: "1:2", fileName: "hero", ...}], # max 5-10 per call localPath="./assets", pngScale=1 ) ``` ## When You Hit a 429 See [references/rate-limit-recovery.md](references/rate-limit-recovery.md) for diagnostics and recovery steps. Quick checklist: 1. **Stop all Figma API calls immediately** — additional calls extend the lockout 2. Check if the file is owned by a Starter/free-plan user (limits are per-owner) 3. If the user has a Pro/Org plan, suggest duplicating the file into their own workspace 4. Wait for `Retry-After` header duration before retrying 5. When retrying, use the minimal-depth pipeline above ## Common Patterns ### Design-to-code (single component) 1. `get_figma_data` with specific `nodeId` + `depth=2` (1 call) 2. Generate code from response — no image calls unless the component contains raster assets 3. If images needed: `download_figma_images` for just the raster fills (1 call) 4. **Total: 1-2 API calls** ### Design-to-code (full page) 1. `get_figma_data` with page `nodeId` + `depth=1` to get frame list (1 call) 2. Identify the 2-3 key frames that matter 3. `get_figma_data` for each key frame with `depth=2` (2-3 calls) 4. Extract tokens locally, download only unique raster assets (1 call) 5. **Total: 4-5 API calls** ### Extract design tokens only 1. `get_figma_data` with `nodeId` + `depth=2` (1 call) 2. Parse colors, typography, spacing from the response — no image calls needed 3. **Total: 1 API call** ## Anti-Patterns | Pattern | Problem | Fix | |---------|---------|-----| | Omitting `depth` | Returns entire subtree (MB of data) | Always set `depth=2` or less | | Omitting `nodeId` | Fetches entire file | Always extract `nodeId` from URL | | Downloading all images upfront | Bursts of image requests hit Tier 2 limits | Download only final deduplicated set | | Retrying on 429 | Extends lockout duration | Stop, wait for `Retry-After`, then resume with minimal calls | | Fetching library components | Remote library nodes trigger extra API calls | Use local component data from initial response |
عرض على GitHub