mcpField
F
figma-comments

figma-comments

github.com/southleft设计与 UI94127 次安装10 周前更新
代码仓库

关于 figma-comments

通过 REST API 读取、发布、回复和删除 Figma 评论的技能,适用于支持 Shell 的编码环境。它使用个人访问令牌,而非 Figma 连接器的 OAuth 登录。

主要功能

  1. 01列出评论线程及其状态
  2. 02发布文件级或节点固定评论
  3. 03回复现有评论线程
  4. 04删除评论及线程
  5. 05使用个人访问令牌运行脚本

适用场景

  1. 01查看设计评论及解决状态
  2. 02将实现反馈固定到 Figma 节点
  3. 03回复设计讨论
  4. 04删除过时的评论线程

MCP 相关

通过 Figma REST API 操作评论,因为 Plugin API 和原生 Figma MCP 无法访问评论。它不扩展或配置 MCP 服务。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/southleft/figma-console-mcp-skills --skill figma-comments

安装后在 Claude Code 中输入/figma-comments确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
delete-comment.sh
get-comments.sh
post-comment.sh

详细介绍

figma-comments — 读取、发布、回复和删除 Figma 评论

评论仅存在于 Figma 的 REST API 中——Plugin API(use_figma)和原生 Figma MCP 都无法操作评论。此技能可读取评论串、发布新评论(可选固定到节点)、回复现有评论串,以及删除评论。

设置 — 需要终端和令牌。 此技能会运行 shell 命令,因此可在 Claude Code(包括 Claude Desktop 内的“Code”选项卡)、Cursor、Codex 或 Gemini CLI 中使用——无法在纯 Claude Desktop 或 claude.ai 聊天中运行(不支持 shell)。Figma 连接器的 OAuth 登录不能授权这些 REST 调用,因此你必须提供自己的 Figma personal access token:在 Figma 中前往 Settings → Security → Personal access tokens,生成一个具有 File content: read(以及 Comments: read/write)权限范围的令牌,然后在 shell 中设置:export FIGMA_TOKEN="figd_…"。脚本会在运行时从环境变量中读取令牌——切勿将令牌放入技能文件中。

设置与技能边界

  • 所有请求都使用 X-Figma-Token: $FIGMA_TOKEN,发送到 https://api.figma.com。
  • @mentions 仅支持在 Figma UI 中使用。 在消息中写入 @name 会显示为普通文本,不会成为可点击的提及,也不会触发 Figma 通知。

推导文件键

FILE_KEY=$(echo "$FILE_URL" | sed -E 's#.*/(design|file)/([A-Za-z0-9]+).*#\2#')

读取评论

scripts/get-comments.sh 会列出评论串及其作者、消息、时间戳、固定的节点和解决状态。默认会过滤掉已解决的评论串:

./scripts/get-comments.sh ABC123def456                 # active comments only
./scripts/get-comments.sh ABC123def456 --include-resolved
./scripts/get-comments.sh ABC123def456 --md             # request markdown message bodies

原始端点:

curl -s -H "X-Figma-Token: $FIGMA_TOKEN" \
  "https://api.figma.com/v1/files/ABC123def456/comments?as_md=true"

发布评论

scripts/post-comment.sh 可发布顶级评论、固定到节点的评论,或串内回复:

# Plain file-level comment
./scripts/post-comment.sh ABC123def456 "Heads up: the button radius drifted from code."

# Pinned to a node (appears on that element). x/y default to 0,0 if omitted.
./scripts/post-comment.sh ABC123def456 "Padding here should be 16, not 12." --node 695:313 --x 40 --y 12

# Reply to an existing thread (get IDs from get-comments.sh)
./scripts/post-comment.sh ABC123def456 "Fixed in the latest sync." --reply 123456789

原始 POST 请求体格式:

curl -s -X POST -H "X-Figma-Token: $FIGMA_TOKEN" -H "Content-Type: application/json" \
  -d '{"message":"Pinned note","client_meta":{"node_id":"695:313","node_offset":{"x":0,"y":0}}}' \
  "https://api.figma.com/v1/files/ABC123def456/comments"
  • **固定:**在请求中加入包含 node_id 和 node_offset(相对于节点的 {x,y})的 client_meta。只要提供了 node_id,Figma 就要求必须提供 node_offset——脚本会默认将其设为 (0,0)。
  • **回复:**在请求体中添加 comment_id(要回复的评论 ID)。脚本的 --reply 标志会完成此操作。回复会形成位于原始评论下方的评论串。

删除评论

scripts/delete-comment.sh 可通过 ID 删除评论(可通过 get-comments.sh 查找 ID):

./scripts/delete-comment.sh ABC123def456 123456789

原始请求:

curl -s -X DELETE -H "X-Figma-Token: $FIGMA_TOKEN" \
  "https://api.figma.com/v1/files/ABC123def456/comments/123456789"

说明

  • 发布或删除时出现 403,表示你的 PAT 缺少 Comments: Read and write 权限——请重新生成令牌。
  • 删除父评论会移除整个评论串。如果只想删除对话中的部分内容,请先删除回复。
  • 一种常见工作流是:检测设计与代码是否存在偏差,然后运行 post-comment.sh --node <id>,在有问题的元素上固定一条可执行的说明,让设计师能结合上下文查看。

评论

支持 Markdown