figmingo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIGMA_API_KEY | Yes | Your Figma Personal Access Token. Get one from Figma Settings > Security > Personal access tokens. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_design_contextA | Get the simplified design context for a Figma file or node: layout (absolute bounds, auto-layout), fills/strokes/effects, and text styles. Use format=compact for a small token footprint. |
| get_metadataA | Lightweight tree of a Figma file/node (id, name, type, bounds) for orientation before a deep fetch. Output as XML (default) or JSON. |
| get_screenshotA | Render a Figma node to an image via GET /v1/images/:fileKey (scale 0.01–4, png|jpg|svg|pdf). Returns the image inline (base64) and/or saves it to disk. |
| download_assetsA | Batch-export nodes as files (up to N ids, chunked) plus raw image fills from GET /v1/files/:key/images. Saves everything into a directory and returns a manifest. Temp Figma URLs are downloaded immediately and cached. |
| get_variable_defsA | Get design tokens: tries the Enterprise variables/local endpoint first; on 403 falls back to published styles + tokens inferred from node fills/text styles. Every output is marked with source. |
| search_design_systemA | Search the file's design system: components, component sets, and published styles. Local index, no extra API quota beyond one file fetch. |
| get_code_connect_mapB | Read figmingo.components.json (local component→code mapping) and return the code targets for components found in the requested node subtree. |
| whoamiA | Token sanity check via GET /v1/me, plus rate-limit observations and disk-cache status. |
| get_html_replica_specB | Build a replica-optimized spec from a Figma file/node: sections/elements with absolute rects, computed typography (family/style/size/letter-spacing/line-height/text-case), hex+alpha colors, gradient data, and an asset manifest (icons→svg, image fills→urls, logo hints). Output schema matches verify_html_parity input. |
| render_html_screenshotA | Playwright (chromium) screenshot of a local/remote HTML page or an element selector. Waits for images to load, can hide fixed/sticky elements, supports full-page or selector-local captures. |
| verify_html_parityA | The acceptance gate. Compares rendered HTML against a Figma replica spec: content gate (copy/font/color tolerances: font size ±1px, letter-spacing ±0.5px, line-height ±2px, color ±2/255), structural gate (position/size ±4px), visual gate (pixelmatch diff ratio ≤ 1%, 2px crop tolerance). Emits a JSON report + diff images. |
| compare_html_to_imageA | One-shot visual comparison: renders an HTML page/element with Playwright (chromium) and pixel-diffs it against a reference image (e.g. a Figma export). passed = diffRatio <= maxRatio (default 0.01 = 1%; raise maxRatio for rework/triage loops where you only need localization, not a strict gate). Returns diff ratio, anti-alias accounting (see methodology in the response), and per-band diff localization — equal-height bands or custom bandEdges so one band can map to one design element. Replaces the manual render_html_screenshot → write-a-diff-script two-step. |
| bridge_statusA | Is the figmingo companion plugin connected? Reports client info, pending/queued command counts, and the bridge address. |
| execute_plugin_commandA | Send a command envelope to the companion Figma plugin over the local bridge. Commands: create_frame, create_text, create_rectangle, set_fills, set_effects, set_auto_layout, insert_image, move_node, resize_node, delete_node, get_selection, get_file_info, get_page_children, export_node. Use |
| import_html_replicaA | Import an HTML page or a replica spec into Figma as native frames via the plugin bridge. Give it an HTML file (htmlPath) or URL (htmlUrl) and it extracts layout + computed styles with headless Chromium, then rebuilds: main frame → section frames → nested containers / text / image nodes with absolute positions, border-radius, borders, shadows, gradients, and real image bytes. Alternatively pass a ready-made spec (spec/specPath, from get_html_replica_spec or hand-written). All degradations (missing fonts, SVG assets, failed images) are reported in the warnings array. Supports dryRun to preview the command plan. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Each tool targets a distinct aspect of the workflow: fetching Figma data, rendering HTML, performing comparisons, plugin control, and importing. Overlap between compare_html_to_image and verify_html_parity is minimal; the former is a simple pixel-diff while the latter is a comprehensive gate with multiple checks.
Most tools follow a verb_noun pattern (e.g., get_design_context, download_assets, execute_plugin_command). However, bridge_status and whoami are noun_first or single-word, breaking the pattern slightly. Overall, names are clear and consistent.
With 15 tools, the set is well-scoped for the domain of Figma-to-HTML comparison and design system interaction. Each tool serves a clear purpose without unnecessary duplication.
The tool surface covers the full lifecycle: extracting design data (get_design_context, get_metadata, get_variable_defs), rendering (render_html_screenshot, get_screenshot), comparison (compare_html_to_image, verify_html_parity), importing (import_html_replica, get_html_replica_spec), and plugin control (execute_plugin_command). No obvious gaps for the stated purpose.