mcpField
F
Figme

Figme

本地服务
github.com媒体与设计36 天前更新

关于 Figme

Figme 是供 Agent 检查已保存 Figma 设计的本地 MCP 服务。它离线解析 `.fig` 文件,并提供结构化设计信息和渲染图像。

主要功能

  1. 01离线解析 `.fig` 文件
  2. 02检查图层、布局与样式
  3. 03查看组件和变量详情
  4. 04搜索图层与文本
  5. 05将图层渲染为 PNG 或 SVG

适用场景

  1. 01无需 Figma API 令牌检查设计
  2. 02在设计文件中查找组件或文本
  3. 03提取设计令牌生成 CSS
  4. 04渲染画面以作视觉对比

MCP 相关

它向 MCP 客户端提供读取、搜索、检查和渲染本地 `.fig` 文件的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ntson9p-figme": {
"command": "npx",
"args": [
"-y",
"figme-mcp"
]
}
}
}
启动命令npx -y figme-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmfigme-mcp1.1.1

工具

12

收录的工具列表 · 更新于 2 周前

参数类型必填说明
filestring是.fig / .figma 文件的路径(绝对路径,或相对于服务器 CWD 的路径)。

详细介绍

figme

一个 MCP 服务,让你的 AI Agent 无需联网、无需 Figma 账号或 API 令牌,即可读取 Figma .fig 文件。

npm Node.js License: MIT

将 Figma 设计保存为 .fig 文件后,你的 Agent 就能读取其中的所有内容:图层和布局、颜色、文本、组件、设计令牌和图片。figme 还能将任意画框绘制为图片,让 Agent 对比它构建的内容与设计稿。

you: "what does the tab component in design.fig look like?"

fig_overview  → 10 pages, 2,046 components, 273 variables, 212 images
fig_find      → "lv2/tab/large" is 2:1337, on page "Page 1"
fig_style     → display:flex, direction:row, gap:8, padding:"8px 16px",
                cornerRadius:4, stroke #FFFFFF bound to variable "tab/large/underline"
                (active #FFFFFF / inactive #333333)

为什么选择 figme

  • 无需账号、令牌或网络。 figme 读取你磁盘上的文件,不会访问 figma.com。
  • 文件中的内容一应俱全。 图层和几何信息、自动布局、填充、描边、效果、混合样式文本、组件和实例、变量、原型链接和图片。布局会转换为 CSS flexbox,颜色以十六进制表示,绑定到变量的颜色还会保留其令牌名称。
  • 图片与数值兼备。 fig_render 可将任意图层绘制为 PNG 或 SVG。
  • 响应精简。 即使文件包含 116,000 个节点,响应也只有约 20 KB。结果默认只包含浅层信息,并且可以筛选和分页。
  • 适应 Figma 更新。 每个 .fig 文件都包含用于描述自身的架构,figme 会根据该架构解码文件,因此 Figma 后续新增字段也不会造成影响。

快速开始

你需要安装 Node.js 22.15 或更高版本。

1. 将设计保存为 .fig 文件。 在 Figma 中,选择 File → Save local copy…。如果是 Community 文件,请先点击 Open in Figma。

2. 将 figme 添加到你的 Agent。 在 Claude Code 中:

claude mcp add figme -- npx -y figme-mcp

对于 Cursor、VS Code、Windsurf 和其他客户端,请参阅设置客户端。

3. 提出请求。 提供文件的完整路径,如果有 Figma 链接,也一并粘贴:

使用 figme,读取 /Users/me/Desktop/App.fig,并将这个画框构建为 React 组件: https://www.figma.com/design/AbC123/App?node-id=3017-121

之后由 Agent 选择所需工具。还可以尝试以下请求:

  • “列出 /Users/me/Desktop/App.fig 中的页面和使用最多的组件。”
  • “将 /Users/me/Desktop/App.fig 中的颜色变量转换为 CSS 自定义属性。”
  • “将 /Users/me/Desktop/App.fig 中的登录界面渲染到 /Users/me/Desktop/sign-in.png。”

设置客户端

所有客户端都运行同一条命令 npx -y figme-mcp。区别仅在于配置位置。

Claude Code
claude mcp add figme -- npx -y figme-mcp           # this project
claude mcp add -s user figme -- npx -y figme-mcp   # every project

要与仓库中的所有协作者共用该服务,请在仓库根目录提交一个 .mcp.json 文件:

{
  "mcpServers": {
    "figme": { "command": "npx", "args": ["-y", "figme-mcp"] }
  }
}

VS Code 和 JetBrains 的 Claude Code 扩展也使用此配置。它们不会读取编辑器自身的 MCP 设置。

Cursor

将以下内容添加到 ~/.cursor/mcp.json,即可用于所有项目;或者添加到 .cursor/mcp.json,仅用于一个项目:

{
  "mcpServers": {
    "figme": { "command": "npx", "args": ["-y", "figme-mcp"] }
  }
}
VS Code(GitHub Copilot)

在终端中运行:

code --add-mcp '{"name":"figme","command":"npx","args":["-y","figme-mcp"]}'

或者将以下内容添加到 .vscode/mcp.json。VS Code 使用键名 servers,而不是 mcpServers:

{
  "servers": {
    "figme": { "type": "stdio", "command": "npx", "args": ["-y", "figme-mcp"] }
  }
}

然后将 Chat 视图切换到 Agent 模式。

Windsurf

将以下内容添加到 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "figme": { "command": "npx", "args": ["-y", "figme-mcp"] }
  }
}
其他客户端

任何能够启动本地(stdio)MCP 服务的客户端都可以使用。为其提供:

{ "command": "npx", "args": ["-y", "figme-mcp"] }

不同版本的客户端可能使用不同的配置文件位置。如果上面的路径与你看到的路径不符,请查阅客户端的 MCP 文档。

在 Windows 上,有些客户端无法自行找到 npx。如果服务无法启动,请通过 cmd 运行:

{ "command": "cmd", "args": ["/c", "npx", "-y", "figme-mcp"] }

提示

  • 始终提供文件的完整路径,即使附带链接也是如此。 Figma 链接无法告诉 figme 对应的是磁盘上的哪个文件,而且相对路径会根据客户端启动服务的位置解析。

  • 不要让 Agent 打开 Figma 链接。 页面需要登录,因此 Agent 得不到任何有用信息,还可能根据 URL 中的文字编造设计。figme 会提醒 Agent 不要这样做;如果你的 Agent 还是尝试了,请阻止它。

  • “未找到节点” 通常意味着保存的文件并非链接所指向的文件。对比 fig_overview 报告的文档名称与链接中的名称,或者让 Agent 改为按名称查找图层。

  • 大文件需要内存。 解析后,39 MB 的 .fig 文件大约会占用 900 MB 内存,而 figme 最多会保留 4 个已解析的文件。在配置较低的机器上,只保留一个:

    { "command": "npx", "args": ["-y", "figme-mcp", "--max-files", "1"] }
    

工具

Agent 会自行选择这些工具;你不需要指定它们。

工具为 Agent 提供的信息
fig_overview文件中的页面、节点数量,以及组件、变量和图片的数量
fig_tree节点下的图层树,每次显示几层
fig_node单个图层的详细信息:尺寸、位置、圆角半径、自动布局、子项
fig_find名称或文本包含指定字符串的图层
fig_text全部文本,以及字体和混合样式
fig_style填充、描边、效果和排版,其中自动布局以 CSS flexbox 表示
fig_components组件、组件属性及各组件的使用频率
fig_instance实例相对于其组件的更改
fig_variables设计令牌:所有集合、模式和值
fig_image嵌入的图片和文件缩略图
fig_blob原始矢量数据,适用于其他工具无法解码的内容
fig_render任意图层或页面的 PNG 或 SVG 图片

每种工具的参数和响应示例见 docs/tools.md。

限制

  • 只读。 figme 不会更改你的 .fig 文件。只有在你要求 fig_image 或 fig_render 保存文件时,它才会写入文件。
  • 这是快照,不是实时链接。 .fig 保存的是你保存时的设计状态。设计发生变化时,请重新保存;figme 会读取新文件。
  • 渲染效果接近,但并非像素级精准。 fig_render 会近似处理一些效果,例如背景模糊和角度渐变,也会跳过一些内容,例如表情符号。每次渲染都会列出近似处理或跳过的内容。请参阅 docs/rendering.md。
  • 不包含其他文件中的库。 从其他文件发布的样式、变量和组件会以引用形式显示,不包含其值。
  • 不会解码矢量路径。 fig_blob 会返回其原始字节。

贡献

欢迎提交问题和拉取请求。CONTRIBUTING.md 介绍了如何从源代码构建和运行测试,以及解析器的工作方式。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。