Skip to main content

Figma 官方 MCP 怎么接入 Claude Code?

· 6 min read

Figma 官方远程 MCP 让 Claude Code 直接读/写设计稿,但 OAuth 流程有两个非显而易见的坑。

  1. 接入前提:Figma Professional/Organization/Enterprise 付费计划,免费的不支持官方 MCP。
  2. 一行接入claude mcp add --transport http --scope user figma https://mcp.figma.com/mcp,写入 ~/.claude.json
  3. OAuth 第一坑/mcp 弹窗 不显示待认证的 HTTP server,诊断靠 claude mcp list
  4. OAuth 第二坑claude mcp login 需要交互式 TTY,Claude Code 内 Bash 跑会失败。
  5. 解决路径:自己用终端跑 claude mcp login figma,浏览器授权完再回 Claude Code。
  6. 验证方式claude mcp get figma 应返回 Status: ✔ Connected
  7. 卸载命令claude mcp remove figma -s user

它解决什么问题

想让 AI 直接读 Figma 设计稿——节点树、颜色变量、组件、批注、Code Connect 元数据——传统做法是导出 JSON 再让模型读:不是不行,但每次改动都要重新导出。

Figma 官方 MCP 把这条通道打通成一个 HTTP server(https://mcp.figma.com/mcp),AI 通过 OAuth 拿到访问令牌后,能直接调用官方暴露的工具:

  • 读取/搜索设计稿节点
  • 列出/编辑颜色变量、文本样式、组件
  • 查看和新增批注
  • 通过 Code Connect 把 Figma 组件映射到代码仓库
  • 渲染节点为图片(截图)

接入后,「把登录页面的 Figma 设计稿转成 React 组件」这类需求直接让 Claude Code 拉数据写代码,不再需要中间手工导出。

一行接入

claude mcp add --transport http --scope user figma https://mcp.figma.com/mcp

四个参数各司其职:

参数作用
--transport http走 HTTP 传输(区别于 stdio / SSE),Figma 远程 MCP 是 HTTP 类型
--scope user写入 ~/.claude.json,所有项目都能用;不加默认 local,仅当前项目可见
figmaclaude mcp list 里显示的名字
https://mcp.figma.com/mcp官方远程端点,不要改成其他 URL

执行成功会打印两行:

Added HTTP MCP server figma with URL: https://mcp.figma.com/mcp to user config
File modified: /Users/kimi/.claude.json

~/.claude.jsonmcpServers 段新增这一条:

"figma": {
"type": "http",
"url": "https://mcp.figma.com/mcp"
}

此时 claude mcp list 的状态是 ! Needs authentication——server 已注册,OAuth 还没做。

第一个坑:/mcp 弹窗里看不到

装完第一反应是在 Claude Code 里输入 /mcp 找 figma → 点 Authenticate。但你会发现 弹窗里没有 figma 这一项

/mcp 弹窗只展示 ✔ Connected 的 server,新加的 ! Needs authentication 状态 HTTP server 被过滤掉了。诊断得靠 CLI:claude mcp list(不带 UI 过滤)能看到 figma 已注册,只是还没认证。

绕路:直接走 claude mcp login 命令行流程,不要在 UI 里找入口。

第二个坑:claude mcp login 需要 TTY

OAuth 入口是 claude mcp login <name>。在 Claude Code 对话框内让 AI 跑这一步会失败:

$ claude mcp login figma --no-browser
Couldn't complete authentication for "figma": stdin isn't a terminal,
so authentication can't be completed here. Re-run in an interactive terminal
— e.g. `ssh -t` — and paste the redirect URL when prompted.

错误信息很直白:stdin 不是 TTY,没法交互。claude mcp login 内部依赖 OAuth callback 监听本地端口 + 等待浏览器回调粘贴 redirect URL,非交互 shell 直接拒绝。

--no-browser 也不行——它本质是为 SSH / headless 场景设计的「打印 URL 让你手动复制」,但仍然需要 TTY 接收 redirect URL。从 Claude Code 的 Bash 工具跑,两条路都过不去。

正确路径:切到自己的终端

Claude Code 内的 Bash 跑不了这一步。切到用户自己的终端(macOS 的 Terminal.app / iTerm / Ghostty 都行)执行:

claude mcp login figma

会自动开默认浏览器跳转到 https://www.figma.com/oauth?...,选 Figma 账户、确认授权。授权完浏览器跳转到 http://127.0.0.1:<callback-port>/... 显示成功页——这个 callback port 是 Claude Code 在 login 启动时临时占用的。

回到 Claude Code 跑 claude mcp list,状态从 ! Needs authentication 变成 ✔ Connected

figma: https://mcp.figma.com/mcp (HTTP) - ✔ Connected

claude mcp get figma 给出完整信息:

figma:
Scope: User config (available in all your projects)
Status: ✔ Connected
Type: http
URL: https://mcp.figma.com/mcp

To remove this server, run: claude mcp remove figma -s user

Scope: User config (available in all your projects) 这一行是验证「真的写到全局」的关键——加了 --scope user 才会有这条。

接入后的典型用法

授权完成后,Claude Code 自动加载 Figma MCP 暴露的工具(通常是 get_fileget_nodeget_screenshotcreate_commentget_metadata 等十几个)。常见用法:

  • 「把 [Figma URL] 里登录页面的所有按钮列出来,告诉我它们的命名」
  • 「检查 [Figma URL] 的颜色变量,导出成 Tailwind config 片段」
  • 「给我 [Figma URL] 首页的截图」
  • 「在 [Figma URL] 的 [节点名] 上加一条评论」
  • 「把 [Figma URL] 的 design token 同步到 src/styles/tokens.css

所有操作都通过自然语言触发,AI 自动选 tool、传参数。

卸载

claude mcp remove figma -s user

-s user 必须带上,否则默认从 local scope 删(找不到会报 not found)。OAuth 凭证存在 Claude Code 自带的凭据存储里,删 server 时会自动清掉。

三个要注意的点

  1. Figma 账户必须绑定付费计划——免费 plan 没有官方远程 MCP 权限。如果是 free plan,要么升级,要么改装第三方 figma-developer-mcp 走 Personal Access Token(功能比官方少,主要是读取,无写入)。
  2. OAuth 凭证是绑账户的——换 Figma 账户需要重新 claude mcp login,旧凭证会失效。
  3. HTTP server 默认走 OAuth——不要尝试用 --header "Authorization: Bearer xxx" 硬塞 token,Figma 远程 MCP 不接受 PAT 直连,必须走 OAuth 浏览器流程。

References

  1. Figma 官方 MCP 服务文档 —— Figma
  2. Claude Code MCP 配置文档 —— Anthropic
  3. Model Context Protocol 协议规范