关于 figma-comments
通过 REST API 读取、发布、回复和删除 Figma 评论的技能,适用于支持 Shell 的编码环境。它使用个人访问令牌,而非 Figma 连接器的 OAuth 登录。
主要功能
- 01列出评论线程及其状态
- 02发布文件级或节点固定评论
- 03回复现有评论线程
- 04删除评论及线程
- 05使用个人访问令牌运行脚本
适用场景
- 01查看设计评论及解决状态
- 02将实现反馈固定到 Figma 节点
- 03回复设计讨论
- 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.shget-comments.shpost-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>,在有问题的元素上固定一条可执行的说明,让设计师能结合上下文查看。