Skip to content
Agentmart
Submit a tool

Figme

MCP server that reads local Figma.fig files, fully offline

Connector by ntson9p · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 3
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/ntson9p-figme-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server that reads local Figma .fig files, fully offline

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
10 read · 2 write · 0 delete
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 12

Read from the source code; the running server may list different tools.

Read 10 · Look things up without changing anything.

  • fig_blob
  • fig_components
  • fig_find
  • fig_instance
  • fig_node
  • fig_overview
  • fig_style
  • fig_text
  • fig_tree
  • fig_variables

Write 2 · Create, change, send or run things.

  • fig_image
  • fig_render

Network hosts it talks to 1

  • github.com · found in code

Files it touches

  • Any path the agent passes to its tools

Tools (12)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • fig_blobRaw blob bytesread-only

    Return the raw bytes of one entry in the file's blob table. Vector geometry, glyph outlines and similar bulk payloads are stored there and referenced by index from fields such as `vectorData.vectorNetworkBlob` and `Path.commandsBlob` (fig_node reports these as `vector.networkBlob` / `vector.fillBlobs`). This server does not decode the vector-network format — you get the bytes, base64 or hex, truncated to maxBytes with a flag when longer.

  • fig_componentsComponent catalogueread-only

    List the components (SYMBOL nodes) defined in the file: guid, name, description, the component-set it belongs to when it is a variant, its property definitions with defaults, and how many instances of it exist. Filter with `query` (case-insensitive substring of the name). Sorted by instance count, most-used first, so the load-bearing parts of the design system come back before one-off symbols. Follow up with fig_instance on a specific INSTANCE guid.

  • fig_findSearch layers and textread-only

    Search a file for nodes by name and by text content (case-insensitive substring), optionally restricted to node types and/or a subtree. Each hit comes back with the page it lives on, a breadcrumb of ancestor names, and which field matched — so you can jump straight to a guid and then call fig_node / fig_style. Omit `query` to list every node of the given types.

  • fig_imageEmbedded image

    Fetch a bitmap stored inside the .fig: pass `hash` (the 40-hex image id reported by fig_node / fig_style on an image paint), or `guid` to take the image(s) used by that node, or hash:"thumbnail" for the document preview. Small images come back as viewable image content; larger ones come back as metadata (mime, byte size, pixel dimensions) — give `savePath` to write the exact bytes to disk instead. NOTE: a .fig contains no rendered pictures of frames, only the bitmaps placed in image fills plus thumbnail.png, so this cannot screenshot a design.

  • fig_instanceInstance overridesread-only

    Explain one component INSTANCE: which SYMBOL it points at, its component-property assignments with the property names resolved, and every override it applies — each with the path down into the component, the node that path addresses, and the fields it changes. Use it to see how an instance differs from its component without diffing two subtrees.

  • fig_nodeInspect a noderead-only

    Inspect one node by guid (e.g. "2:1339"). detail:"full" (default) gives geometry, fills/strokes/effects as hex colours, corner radii, auto-layout, text basics, component and variable links, plus child summaries. detail:"raw" returns the decoded Figma record verbatim — the escape hatch for fields this server does not map yet; it is limited to one node per call and can be large.

  • fig_overviewFigma file overviewread-only

    Open a local Figma .fig file and summarise it: document name, export date, node counts by type, the page list, and how many components / variables / images it holds. START HERE. Then fig_tree a page, then fig_node / fig_style on interesting guids; fig_find jumps straight to a name or a piece of text. Everything is read-only and offline.

  • fig_renderRender a node to an image

    Render a node — frame, component, instance, group, shape, text, or a whole page — to a PNG the model can look at, or to SVG. Fully offline: geometry, text outlines and images all come from the file. Rendering is best-effort: read `approximated` and `unsupported` in the report before trusting fine details; exact values remain available from fig_node / fig_style / fig_text. Default output is PNG at 2x, capped to 1568 px on the longest edge; use `savePath` to write a file instead of inlining it.

  • fig_styleResolved style of a noderead-only

    The flattened style of one node, shaped for writing code: hex fills / strokes / effects, corner radii, typography, and auto-layout translated into CSS flexbox terms (display, direction, gap, padding, justifyContent, alignItems, sizing) plus how the node behaves inside its parent layout (flexGrow, alignSelf, margin). Shared styles and variable bindings are named whenever they resolve inside this file.

  • fig_textText inventoryread-only

    Extract every string of copy in the file (or in one subtree via `scope`), in document order: guid, layer name, the characters, the page, and the base typography (font, size, line-height, colour). With includeRuns:true each node also carries its styled runs — the mixed-format spans Figma stores per UTF-16 code unit — with only the fields each run overrides. Use this for copy audits and translation passes rather than walking the tree.

  • fig_treeExplore the layer treeread-only

    List the layers under a node, breadth-limited by depth (default 2, max 6). Returns a FLAT list in document order; each entry carries `depth` (relative to the requested root) and `parent`, so the hierarchy is reconstructable, and `children` (count) so you can see where to deepen. format:"outline" returns indented text lines instead of JSON and is roughly 4x denser for browsing. Large subtrees are truncated with truncated:true and a nextCursor you can pass back to continue.

  • fig_variablesVariables and modesread-only

    List the design tokens in the file: every variable collection (VARIABLE_SET) with its modes, and every variable with its value per mode — colours as hex, numbers and strings verbatim. Aliases are followed when the target variable lives in this file; a variable published from another library is returned as its opaque assetRef instead. Filter with `set` (collection name or guid) or `query` (substring of the variable name).

Compare and alternatives

    Featured in

    Signals

    Stars
    3
    Forks
    0
    Open issues
    0
    Last commit
    Oct 22, 2026 (6 days ago)
    Last release
    Sep 21, 2026 (1 month ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    Registry name
    io.github.ntson9p/figme-mcp
    Version
    1.1.1
    Auth
    No auth
    Packages
    npm figme-mcp
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    Figme MCP server. Agent Mart. https://agentmart.dev/connectors/ntson9p-figme-mcp (last updated 2026-10-24)