Figsnap MCP vs Figma Flutter MCP

A side-by-side look at the Figsnap MCP and Figma Flutter MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Figsnap MCP logoFigsnap MCPArchitecture & Design · Local subprocess (stdio)The Figma file you have open, as MCP tools. Extract, edit, and keep a saved set.59GoodAuth: not declaredFigma Flutter MCP logoFigma Flutter MCPArchitecture & Design · Local subprocess (stdio)Provide coding agents direct access to Figma data to help them write Flutter code for building apps including assets exports, widgets maintenance and full screens implementations.64GoodAuth: api key required

Verdict: choose Figsnap MCP for architecture & design work as a local process; choose Figma Flutter MCP for architecture & design as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Figsnap MCP logoChoose Figsnap MCP when

  • You need dedicated capabilities in the Architecture & Design domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: FIGSNAP_MCP_TOKEN, FIGSNAP_MCP_URL.
  • You want tools like figma_get_selection, figma_get_tree, figma_get_children.
Explore Figsnap MCP

Figma Flutter MCP logoChoose Figma Flutter MCP when

  • You need dedicated capabilities in the Architecture & Design domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: FIGMA_API_KEY.
  • You want tools like export_flutter_assets, export_svg_flutter_assets, analyze_figma_component.
Explore Figma Flutter MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecFigsnap MCP logoFigsnap MCPFigma Flutter MCP logoFigma Flutter MCP
CategoryArchitecture & DesignArchitecture & Design
Quality signal59/100 · Good64/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredAPI key required
PricingNot declaredFree
Required env varsFIGSNAP_MCP_TOKENFIGSNAP_MCP_URLFIGMA_API_KEY
Verified ownerCommunity listingCommunity listing
GitHub stars0241
Directory activity 1 views 0 installs 0 upvotes 5 views 0 installs 0 upvotes
Tools4113

Tools & capabilities

Figsnap MCP tools 41

  • figma_get_selectionThe layers the designer has selected on the canvas right now, with their ids, names, types and sizes. Start here when the request says "this", "the selected frame", or names nothing at all.
  • figma_get_treeThe top-level layers of the page the designer is looking at. Increase depth to walk further down, but note that a deep page is thousands of rows: prefer figma_get_children on one branch.
  • figma_get_childrenThe direct children of one node, by id. The cheap way to explore a page a branch at a time.
  • figma_extractThe full extraction of one node: HTML measured against what Figma draws, byte-exact figmaCss, a React component, plain CSS and CSS modules. Images are inlined and icons come out as real SVG, so the HTML stands on its own. This is the tool that answers "what does this design actually say". Several nodes at once, instead of one call each: nodeIds, urls, selection: true, or saved: true with an optional folder. A batch answers {results:[…]}, one entry per input, each {ok:true,extraction} or {ok:false,error}, so one bad id never sinks the rest. It is capped at 20 entries, and no batch returns an image — ask figma_export_png for a picture, a node at a time.
  • figma_export_pngRenders one node and returns the picture itself, so a model that can see gets to look at the design rather than read a description of it. Nothing is stored anywhere.
  • figma_resolve_urlTurns one or more Figma links into the nodes they name, without exporting anything.
  • figma_list_savedThe nodes the designer curated in the panel, by folder. A shortlist of what matters in this file, which is usually a better starting point than the whole page.
  • figma_savedRead and change the designer’s shortlist of nodes in this file, and the folders it is grouped into. One action argument: list, folders, save, unsave, clear, move, newFolder, renameFolder, deleteFolder. list — the entries, optionally in one folder. folders — the folders with their counts; "" is the root. save — add nodeIds, or whatever is selected when you give none. unsave — remove nodeIds. clear — empty one folder, or the whole set when you name none. move — put nodeIds in folder. newFolder / renameFolder / deleteFolder — the folders themselves; deleteFolder keeps the entries and returns them to the root unless deleteEntries is true. This is a bookmark list, not the design: it lives in the plugin’s own storage, so none of it is behind the Edits switch and none of it can be undone with Cmd-Z. Saving what a long job is about is a cheap way to leave the designer something to look at afterwards.
  • figma_list_libraryThe components, styles and variables this file has, with the ids the other tools need. Read this before "make it match our button" or "use our brand colour" — instantiating the real component or binding the real variable is what makes a change survive contact with the design system, rather than a hex code that looks right today.
  • figma_selectSelects one or more layers and scrolls the canvas to them, so the designer is looking at whatever you are talking about. Use it before describing a node you found by walking the tree — pointing is faster than naming an id — and after an edit, so the change is on screen. It changes no design data, which is why it works whether or not Edits is on, and why it leaves no undo step. It does move the designer’s viewport, so say what you are showing them.
  • figma_set_fillReplaces a node’s fills with one solid colour, and answers with the colour read back off the node — so a write that did not land is visible without a screenshot. It replaces every fill the node had, which is worth knowing before pointing it at a gradient or a photograph; the answer names what was there. Borders are strokes, not fills: use figma_set_stroke for those. One call is one undo step, so the designer takes it back with a single Cmd-Z.
  • figma_set_strokeReplaces a node’s strokes with one solid colour, and optionally sets the stroke weight. Pass remove: true to take the stroke off entirely. Borders in Figma are strokes, not fills — a row outline or an icon drawn as an outline needs this rather than figma_set_fill.
  • +29 more on the listing page

Figma Flutter MCP tools 13

  • export_flutter_assetsExport images from Figma nodes and set up Flutter assets directory with pubspec.yaml
  • export_svg_flutter_assetsExport SVG assets from Figma nodes. Detects SVG content by analyzing vector percentage - nodes with >30% vector content are considered SVG assets. Handles nested GROUP/FRAME structures with mixed content.
  • analyze_figma_componentAnalyze a Figma component or component set to extract layout, styling, and structure information for Flutter widget creation. Use analyze_full_screen for complete screen layouts.
  • list_component_variantsList all variants in a Figma component set to help with variant selection
  • inspect_component_structureGet a quick overview of component structure, children, and nested components. Use inspect_screen_structure for full screens.
  • generate_flutter_implementationGenerate complete Flutter widget code using cached style definitions
  • style_library_statusGet comprehensive status report of the cached style library
  • analyze_full_screenAnalyze a complete Figma screen/frame to extract layout, sections, navigation, and structure information for Flutter screen implementation
  • inspect_screen_structureGet a quick overview of screen structure, sections, and navigation elements
  • extract_theme_colorsExtract colors from a Figma theme frame containing color swatches with labels
  • inspect_theme_frameInspect the structure of a theme frame to understand its contents before extraction
  • extract_theme_typographyExtract typography styles from a Figma theme frame containing text samples with different styles
  • +1 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Figsnap MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "figsnap-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "figsnap-mcp"
      ],
      "env": {
        "FIGSNAP_MCP_TOKEN": "YOUR_FIGSNAP_MCP_TOKEN_HERE",
        "FIGSNAP_MCP_URL": "YOUR_FIGSNAP_MCP_URL_HERE"
      }
    }
  }
}

Figma Flutter MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mhmzdev-figma-flutter-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "figma-flutter-mcp"
      ],
      "env": {
        "FIGMA_API_KEY": "YOUR_FIGMA_API_KEY_HERE"
      }
    }
  }
}

Frequently asked questions

Figsnap MCP is categorized under Architecture & Design and uses a local stdio subprocess. Figma Flutter MCP belongs to Architecture & Design and uses a local stdio subprocess. Pick Figsnap MCP for architecture & design work and Figma Flutter MCP for architecture & design.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Figsnap MCP has no declared pricing — check the project's own site. Figma Flutter MCP is listed as free. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add figsnap-mcp and mhmzdev-figma-flutter-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Figsnap MCP has a quality signal of 59/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Figma Flutter MCP has 64/100 (Good) with 5 views, 0 installs and 241 GitHub stars.