Figma MCP

io.scalablyPublished by scalably.iov1.0.1Updated Oct 24, 2026

Figma MCP: list frames in a file and fetch one frame's JSON and image safely. 2 tools.

The publisher's own server: Figma MCP Server

VerifiedSTDIODesktop onlyFiles & StorageMedia & Design

Overview

AI-generated overview

Local MCP server for the Figma REST API that lets an assistant list a file's top-level frames and download one frame's PNG, node JSON and image-fill map.

What you can do
  • List and filter top-level frames in a Figma file, with page, name, node ID, dimensions and file metadata
  • Fetch a single frame and write frame.png, node.json and a normalized image-fill map into a local output directory
  • Return structured JSON replies with status, summary, target, result, proof, warnings and recovery fields
When to use it
Useful when you want an assistant to inspect a Figma file's frame structure or pull a specific frame's rendered image and node data into a local project for review, handoff or further processing.
Requirements
Runs locally over stdio via npx or the .mcpb desktop bundle; desktop only. Requires a Figma personal access token with file_content:read in FIGMA_TOKEN, plus the file key from a Figma file URL. Optional settings cover API base URL, request timeout, JSON and PNG size limits, and the output root directory.
Before you install
The server starts without FIGMA_TOKEN but every call fails until it is set. fetch_frame writes files to disk below the output root, so check that path before use. Frame bundles and the image-fill map are saved locally, and fills.json URLs expire within 14 days. FIGMA_ALLOW_HTTP_FOR_TESTS is for the test suite only and should not be set in normal use.

Installation

In SourceWeft

  1. Open Figma MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Figma MCP

Figma REST API MCP server. 2 tools list the top-level frames in a file and fetch one frame's rendered PNG plus its node JSON and image-fill map into a local output directory.

Install

Claude Code:

bash
claude mcp add figma -e FIGMA_TOKEN=your-token -- npx -y @scalably-io/figma-mcp

Codex:

bash
codex mcp add figma --env FIGMA_TOKEN=your-token -- npx -y @scalably-io/figma-mcp

Claude Desktop: download figma-mcp.mcpb from the latest GitHub release and open it.

Setup

  1. Create a personal access token at figma.com under account settings, with file_content:read scope.
  2. Find the file key in any Figma file URL: it is the segment after /design/ or /file/, for example https://www.figma.com/design/AbC123xyz/My-file gives AbC123xyz. Both tools take it as file_key.
  3. If FIGMA_TOKEN is not set the server still starts and lists its tools; every call then fails with FIGMA_NOT_CONFIGURED until the token is provided.
  4. fetch_frame is the only tool that writes files (so it is not marked read-only); it writes frame.png, node.json, and fills.json into a directory below the configured output root (default ./figma-output). The other tool is fully read-only.

Tools (2)

ToolWhat it does
list_framesList and optionally filter all top-level FRAME nodes in a Figma file, with exact page/name/node-id data, dimensions, and file metadata
fetch_frameFetch one Figma frame and transactionally write frame.png, node.json, and a normalized image-fill map into a directory below the output root

Configuration

VariableRequiredPurpose
FIGMA_TOKENyesFigma personal access token with file_content:read
FIGMA_API_BASE_URLnoOverride the Figma REST API base URL (default https://api.figma.com/v1)
FIGMA_REQUEST_TIMEOUT_MSnoPer-request timeout in milliseconds (default 60000)
FIGMA_MAX_JSON_BYTESnoUpper bound on a Figma JSON response, in bytes (default 104857600)
FIGMA_MAX_FRAME_BYTESnoUpper bound on a downloaded frame PNG, in bytes (default 104857600)
FIGMA_OUTPUT_ROOTnoDirectory that every fetch_frame output directory must stay below (default ./figma-output, created on first use)
FIGMA_ALLOW_HTTP_FOR_TESTSnoTest suite only: 1 allows a plain-HTTP loopback API base. Never set it in normal use

Reply shape

Every tool returns plain JSON with status (succeeded, partial, no_op), summary, target, result, proof, warnings, recovery. Failures throw a plain error string: <code>: <message> <hint>.

Limits

fetch_frame renders through Figma's image API, so very large frames or extreme scale values can exceed the configured JSON or frame byte limits; lower scale or split the frame if that happens. fills.json URLs are temporary and expire within 14 days.

Verify

Each release lists the package version, the .mcpb sha256 and the production commit it was derived from in CHANGELOG.md. CI runs the tests and a clean install of the packed tarball on every push.

Privacy Policy

This server runs locally, on your machine, under your own credentials. It collects no personal data, contains no telemetry, stores nothing persistently beyond the frame bundles you explicitly fetch, and talks only to the vendor API it wraps. No third party, including Scalably, receives your data. Contact: [email protected]. Canonical copy: https://scalably.io/connector-privacy.html

License

MIT. Copyright Scalably.

Source: README.md at commit 855c20a

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Figma integrations