原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Figma MCP Rust

作者:alvinindra版本 0.2.1i★ 78i在你的电脑上运行
注册名称io.github.alvinindra/figma-mcp-rust

安装

概览

作者提供的说明(英文原文)

Figma MCP server in Rust: plugin bridge, no API token, no rate limits, 73 tools.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 设计、图片与音频

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:3 项中通过 3 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "figma-rust": {
      "command": "npx",
      "args": [
        "-y",
        "@alvinindra/figma-mcp-rust"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add figma-rust -- npx -y @alvinindra/figma-mcp-rust

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "figma-rust": {
      "command": "npx",
      "args": [
        "-y",
        "@alvinindra/figma-mcp-rust"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "figma-rust": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@alvinindra/figma-mcp-rust"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 alvinindra 验证,该账户拥有此仓库

  • ✓ 通过

    仍在维护

    代码最后更新于27天前

  • ✓ 通过

    有许可证

    使用 MIT

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“设计、图片与音频”中的其他服务器比较i

  • 星标数多于此分类中其他 2785 个服务器的 100%
  • 发布到注册中心的时间比此分类中其他 2785 个服务器的 51% 更新
  • 基础检查结果等于或优于此分类中其他 2785 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Figma MCP Rust 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于27天前,最新版本(0.2.1)于27天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Figma Context MCP, Claude Real Video, Figma MCP Server

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Figma Context MCP

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

作者:GLips广泛使用↓ 16.1万/周★ 1.6万5个月前更新

在你的电脑上运行

Claude Real Video

Let any LLM watch a video locally — and search everything it has ever watched.

作者:HUANGCHIHHUNGLeo广泛使用↓ 1106/周★ 22842个月前更新

在你的电脑上运行

Figma MCP Server

The Figma MCP server brings Figma design context directly into your AI workflow.

作者:figma正在增长★ 215213个月前更新

在云端运行✓ mcp.figma.com

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

figma-mcp-rust

A high-performance Rust port of [vkhanhqui/figma-mcp-go](https://github.com/vkhanhqui/figma-mcp-go).

All credit for the original design, the Figma plugin bridge, and the tool catalogue goes to

@vkhanhqui. This repo migrates that same MCP server to Rust

with structured logging, race-free request correlation, and a declarative tool table;

see "What changed in the Rust rewrite" below.

Figma MCP: Free, No Rate Limits

Open-source Figma MCP server with full read/write access via plugin. No REST API, no rate limits. Turn text into designs and designs into real code. Works with Cursor, Claude, GitHub Copilot, and any MCP-compatible AI tool.

Highlights

  • No Figma API token required
  • No rate limits, free plan friendly
  • Read and Write live Figma data via plugin bridge, 73 tools in total
  • Full design automation: styles, variables, components, prototypes, and content
  • Design strategies built in as MCP prompts, plus matching Claude Code skills

Why this exists

Most Figma MCP servers rely on the Figma REST API.

That sounds fine until you hit this:

PlanLimit
Starter / View / Collab6 tool calls/month
Pro / Org (Dev seat)200 tool calls/day
Enterprise600 tool calls/day

If you're experimenting with AI tools, you'll burn through that in minutes.

I didn't have enough money to pay for higher limits. So I built something that doesn't use the API at all.


Installation & Setup

Install via npx, no build step required.

1. Configure your AI tool

Claude Code CLI

claude mcp add -s project figma-mcp-rust -- npx -y @alvinindra/figma-mcp-rust@latest

Claude Code plugin marketplace

/plugin marketplace add alvinindra/figma-mcp-rust

/plugin install figma-mcp-rust@figma-mcp-rust

Installing the plugin also adds 13 skills covering the workflows below, from reading designs to generating tokens and troubleshooting the bridge.

Codex CLI

codex mcp add figma-mcp-rust -- npx -y @alvinindra/figma-mcp-rust@latest

.mcp.json (Claude and other MCP-compatible tools)

{

"mcpServers": { "figma-mcp-rust": { "command": "npx", "args": ["-y", "@alvinindra/figma-mcp-rust"] } } }

.vscode/mcp.json (Cursor / VS Code / GitHub Copilot)

{

"servers": { "figma-mcp-rust": { "type": "stdio", "command": "npx", "args": [ "-y", "@alvinindra/figma-mcp-rust" ] } } }

2. Install the Figma plugin
  1. In Figma Desktop: Plugins → Development → Import plugin from manifest
  2. Select manifest.json from the plugin.zip
  3. Run the plugin inside any Figma file

Available Tools

Write: Create
ToolDescription
create_frameCreate a frame with optional auto-layout, fill, and parent
create_rectangleCreate a rectangle with optional fill and corner radius
create_ellipseCreate an ellipse or circle
create_textCreate a text node (font loaded automatically)
import_imageDecode base64 image and place it as a rectangle fill
create_componentConvert an existing FRAME node into a reusable component
create_sectionCreate a Figma Section node to organise frames on a page
Write: Modify
ToolDescription
set_textUpdate text content of an existing TEXT node
set_fillsSet solid fill color (hex) on a node
set_strokesSet solid stroke color and weight on a node
set_opacitySet opacity of one or more nodes (0 = transparent, 1 = opaque)
set_corner_radiusSet corner radius, uniform or per-corner
set_auto_layoutSet or update auto-layout (flex) properties on a frame
set_visibleShow or hide one or more nodes
lock_nodesLock one or more nodes to prevent accidental edits
unlock_nodesUnlock one or more nodes
rotate_nodesSet absolute rotation in degrees on one or more nodes
reorder_nodesChange z-order: bringToFront, sendToBack, bringForward, sendBackward
set_blend_modeSet blend mode (MULTIPLY, SCREEN, OVERLAY, and more) on one or more nodes
set_constraintsSet responsive constraints { horizontal, vertical } on one or more nodes
move_nodesMove nodes to an absolute x/y position
resize_nodesResize nodes by width and/or height
rename_nodeRename a node
clone_nodeClone a node, optionally repositioning or reparenting
reparent_nodesMove nodes to a different parent frame, group, or section
batch_rename_nodesBulk rename nodes via find/replace, regex, or prefix/suffix
find_replace_textFind and replace text across all TEXT nodes in a subtree or page; supports regex
Write: Delete
ToolDescription
delete_nodesDelete one or more nodes permanently
Write: Prototype
ToolDescription
set_reactionsSet prototype reactions (triggers + actions) on a node; mode replace or append
remove_reactionsRemove all or specific reactions by zero-based index from a node
Write: Styles
ToolDescription
set_effectsApply drop shadow / blur effects directly on a node (no style required)
create_paint_styleCreate a named paint style with a solid color
create_text_styleCreate a named text style with font, size, and spacing
create_effect_styleCreate a named effect style (drop shadow, inner shadow, blur)
create_grid_styleCreate a named layout grid style (columns, rows, or grid)
update_paint_styleRename or recolor an existing paint style
apply_style_to_nodeApply an existing local style to a node, linking it to that style
delete_styleDelete any style (paint, text, effect, or grid) by ID
Write: Variables
ToolDescription
create_variable_collectionCreate a new local variable collection with an optional initial mode
add_variable_modeAdd a new mode to an existing collection (e.g. Light/Dark)
create_variableCreate a variable (COLOR/FLOAT/STRING/BOOLEAN) in a collection
set_variable_valueSet a variable's value for a specific mode
bind_variable_to_nodeBind a variable to a node property; supports fillColor, strokeColor, visible, opacity, rotation, width, height, corner radii, spacing, and more
delete_variableDelete a variable or an entire collection
Write: Pages
ToolDescription
add_pageAdd a new page to the document (optional name and index)
delete_pageDelete a page by ID or name (cannot delete the only page)
rename_pageRename a page by ID or current name
Write: Components & Navigation
ToolDescription
navigate_to_pageSwitch the active Figma page by ID or name
group_nodesGroup two or more nodes into a GROUP
ungroup_nodesUngroup GROUP nodes, moving children to the parent
swap_componentSwap the main component of an INSTANCE node
detach_instanceDetach component instances, converting them to plain frames
Read: Document & Selection
ToolDescription
get_documentFull current page tree
get_metadataFile name, pages, current page
get_pagesAll pages (IDs + names), lightweight, no tree loading
get_selectionCurrently selected nodes
get_nodeSingle node by ID
get_nodes_infoMultiple nodes by ID
get_design_contextDepth-limited tree with detail level (minimal/compact/full)
search_nodesFind nodes by name substring and/or type within a subtree
scan_text_nodesAll text nodes in a subtree
scan_nodes_by_typesNodes matching given type list
get_viewportCurrent viewport center, zoom, and visible bounds
Read: Styles & Variables
ToolDescription
get_stylesPaint, text, effect, and grid styles
get_variable_defsVariable collections and values
get_local_componentsAll components + component sets with variant properties
get_annotationsDev-mode annotations
get_fontsAll fonts used on the current page, sorted by frequency
get_reactionsPrototype/interaction reactions on a node
Export
ToolDescription
get_screenshotBase64 image export of any node
save_screenshotsExport images to disk (server-side, no API call)
export_frames_to_pdfExport multiple frames as a single multi-page PDF file saved to disk
export_tokensExport design tokens (variables + paint styles) as JSON or CSS
MCP Prompts
PromptDescription
read_design_strategyBest practices for reading Figma designs
design_strategyBest practices for creating and modifying designs
text_replacement_strategyChunked approach for replacing text across a design
annotation_conversion_strategyConvert manual annotations to native Figma annotations
swap_overrides_instancesTransfer overrides between component instances
reaction_to_connector_strategyMap prototype reactions into interaction flow diagrams
style_audit_strategyFind nodes using raw values instead of linked styles or variables
bulk_rename_strategyRename nodes to follow a consistent naming convention
design_token_generation_strategyBuild a variable and style token system from an existing design
generate_color_paletteCreate a primitive color scale plus semantic aliases as variables
generate_type_scaleCreate a full typographic scale as text styles
generate_component_variantsClone a component into size, theme, state, or dark-mode variants

Each prompt is also available as a Claude Code skill when the server is installed through the plugin marketplace, alongside a bridge-troubleshooting skill for connection issues.


Related Projects


What changed in the Rust rewrite

  • Memory-safe websocket bridge: request/response correlation uses tokio::sync::oneshot instead of Go channels guarded by sync.Once, removing the send-on-closed-channel race.
  • Declarative tool table: all 73 tool registrations live in a single static array (src/tools/definitions.rs) instead of ~700 lines of repetitive Go handlers. New tools are added by appending one entry plus an optional JSON Schema builder.
  • Structured logging via `tracing`: every component emits per-target events (bridge, leader, follower, election, node) at adjustable levels. Set FIGMA_MCP_LOG=debug for verbose output.
  • `thiserror`-based error types instead of formatted str

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx