Skip to main content
Glama
wenym8

figmingo-mcp

by wenym8

import_html_replica

Import HTML pages or replica specs into Figma as native frames, extracting layout and computed styles via headless Chromium.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNoMain frame landing X on the canvas (default 0).
yNoMain frame landing Y on the canvas (default 0).
specNoInline spec JSON.
scaleNo
dryRunNoReturn the command plan without executing.
htmlUrlNohttp(s) URL to extract and import (mutually exclusive with spec/specPath/htmlPath).
htmlPathNoPath to a local .html file to extract and import (mutually exclusive with spec/specPath/htmlUrl).
parentIdNoTarget parent node id (default: current page).
specPathNoPath to a replica spec JSON.
timeoutMsNoBridge timeout for the whole batch (default 120000).
outSpecPathNoWrite the extracted spec JSON to this path for inspection.
rootSelectorNoExtraction root element (default body).
includeImagesNoDownload asset bytes and insert real images (default true).
mainFrameNameNo
maxImageBytesNoPer-image byte cap (default 5MB).
viewportWidthNoExtraction viewport width (default 1440).
viewportHeightNoExtraction viewport height (default 900).
sectionSelectorNoSplit the page into one section per matched element.
skipEmptyFramesNoDrop leaf frames with no visual style (default: keep as transparent containers).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the use of headless Chromium, extraction of layout and computed styles, rebuilding into frames with specific node types, reporting of warnings, and support for dryRun. It also mentions mutual exclusivity of input parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, starting with a clear main purpose, but it is somewhat lengthy (around 200 words) and includes details that are also in the schema. It could be more concise while retaining essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (19 parameters, no output schema), the description covers the main inputs, process, and output (warnings array). It provides a high-level understanding, though not every parameter is explained in the narrative; the schema covers those details. The description is sufficiently complete for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 89%, so the schema already describes most parameters. The description adds value by explaining the relationship between parameters (e.g., mutual exclusivity of htmlUrl, htmlPath, spec, specPath) and the overall flow, which goes beyond individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool imports an HTML page or replica spec into Figma as native frames. It distinguishes from siblings like get_html_replica_spec (which only extracts spec) and render_html_screenshot (which only renders a screenshot).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description hints at using get_html_replica_spec to obtain a spec but does not explicitly state when to use this tool versus alternatives like render_html_screenshot or verify_html_parity. More explicit guidance would improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wenym8/figmingo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server