Figma REST API服务

一个运行在Apify平台上的Figma REST API服务,提供文件分析、组件管理、资源导出等功能,适用于AI助手和开发工具集成。

  • by oabolade
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 oabolade/figma_mcp_server_actor

使用说明

Figma MCP服务器(Apify Actor)

公开的模型上下文协议(MCP)服务器 Figma REST API AI助手(Cursor、Claude、自定义代理)的功能。作为一个 长时间运行的web服务器 在 Apify 平台(备用/容器URL)或本地通过 apify run.

特性

  • 文件分析 --结构、元数据、样式、深度受限树
  • 组件 --列表、详细信息、用法
  • 资产 --导出节点(PNG、SVG、PDF、JPG)
  • 评论 --阅读和创建
  • 项目/团队 --列表和元数据
  • MCP资源和提示 用于指导工作流程

认证

个人访问令牌(默认)

建议单独使用。集 figmaAccessToken 在Actor输入中(或 FIGMA_ACCESS_TOKEN 在env中)。

OAuth 2.0(可选——团队/共享文件)

使用时 省略 figmaAccessToken 并提供Figma OAuth应用程序:

输入 目的
oauthClientId 从 Figma→ 开发者→ Apps
oauthClientSecret 相同的应用程序
oauthRedirectUri 精确 重定向应用程序上注册的URL,例如。 https://<your-run>.runs.apify.net/oauth/callback
oauthScopes 可选;逗号分隔的范围。必须是应用程序配置范围的子集。默认值包括 file_content:read, file_content:write, file_comments:read, file_comments:write.

流动

  1. 在填写OAuth字段后启动Actor 不 拍打。
  2. 打开 GET https://<container-url>/oauth/authorize 在浏览器中(普通浏览器,而不是嵌入式WebView; Figma要求).
  3. 同意后,Figma重定向到 /oauth/callback;令牌存储在运行的默认值中 键值存储 (FIGMA_OAUTH_SESSION)并在接近到期时刷新。

令牌交换使用Figma记录的端点(https://api.figma.com/v1/oauth/token 和 .../oauth/refresh).代码过期很快——请及时完成重定向。

需求

  • Node.js ≥ 20
  • 指定帐户 (适用于云)
  • Figma PAT和/或OAuth应用程序

快速入门(Apify Cloud)

npm install
apify login
apify push

在 Apify控制台,打开Actor,设置输入(至少 figmaAccessToken),从 web服务器/长时间运行 根据模板的要求,然后使用 容器URL 从奔跑中。

部署参考: apify push 构建和发布;看见 优化CLI.

配置(输入)

参数 类型 默认值 说明
figmaAccessToken string -- PAT(推荐)。 如果设置,则用于所有Figma API调用。
port 整数 8080 HTTP侦听端口(Apify可以通过以下方式覆盖 web_server_port).
oauthClientId string -- OAuth应用程序客户端ID(仅当不使用PAT时)。
oauthClientSecret string -- OAuth应用程序机密(机密输入)。
oauthRedirectUri string -- 必须与Figma应用重定向URI完全匹配。
oauthScopes string -- 可选范围覆盖(逗号分隔)。
maxConcurrentRequests 整数 10 保留/未来使用。
enableCaching 布尔值 true 缓存来自Figma的GET响应。

本地/CLI输入文件示例(apify run):

{
  "figmaAccessToken": "figd_...",
  "port": 8080
}

HTTP API

方法 路径 描述
GET / 服务信息和端点列表
GET /health 生命;包括 auth_mode: pat
POST /mcp MCP JSON-RPC 2.0 (此服务器的主要传输)
GET /oauth/authorize 启动OAuth(浏览器);如果设置了PAT,则禁用
GET /oauth/callback OAuth重定向处理程序

指定MCP路径: .actor/actor.json 套 webServerMcpPath 到 /mcp。您的MCP客户端URL通常为:

https://<container-id>.runs.apify.net/mcp

(使用 容器URL 从运行页面+ /mcp.)

光标IDE

  1. 部署并启动Actor;复制跑步记录 容器URL (而状态为 跑步).
  2. 编辑 ~/.cursor/mcp.json (Windows/Linux上的路径不同——请参阅Cursor文档)。

示例(远程HTTP MCP--调整到游标版本的预期形状):

{
  "mcpServers": {
    "figma-mcp-standby": {
      "url": "https://YOUR_RUN_ID.runs.apify.net/mcp"
    }
  }
}

备注

  • env.APIFY_TOKEN 在 mcp.json 是 不 传递到此节点进程;它不会取代Figma-auth。使用 figmaAccessToken (或OAuth) 演员输入.
  • 容器URL为 每次跑步 运行结束后停止工作;更新 mcp.json 并在新运行后重新启动Cursor。
  • 如果连接失败,请使用 光标→ 输出→ MCP 和 curl https://.../health.

Claude Desktop/其他客户

使用客户支持的方式附加 远程MCP URL(例如。 mcp-remote 指着 https://.../mcp).路径和查询参数取决于客户端版本。

本地开发

npm install
apify run

或者,如果您自己注入env/input,请使用Node运行该条目:

export FIGMA_ACCESS_TOKEN="figd_..."
node src/main.js

检查运行状况(来自日志或输入的端口):

curl -s http://localhost:8080/health | jq .

MCP初始化示例:

curl -s -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

项目结构

figma_mcp_actor/
├── .actor/
│   ├── actor.json           # Apify Actor metadata (incl. webServerMcpPath: /mcp)
│   ├── input_schema.json
│   ├── output_schema.json
│   └── dataset_schema.json
├── src/
│   ├── main.js              # Express app, /mcp, /oauth/*, Apify bootstrap
│   ├── figma/
│   │   ├── auth.js          # PAT + OAuth token exchange, refresh, KV hook
│   │   └── client.js        # Figma REST wrapper
│   ├── oauth/
│   │   └── persist.js       # Apify KV: FIGMA_OAUTH_SESSION
│   ├── mcp/                 # Protocol, handlers, server
│   ├── tools/
│   ├── resources/
│   └── prompts/
├── Dockerfile
├── package.json
└── README.md

MCP工具(概述)

包括(代码中的名称可能略有不同):文件分析(analyze_file, get_file_structure,…),组件(list_components,…),出口(export_node,…),评论(get_comments, create_comment、…)、设计修改助手,以及 资源 (figma://file/...等等)以及 提示 用于常见任务。

局限性

  • REST与插件API -深度设计编写可能需要插件API;此Actor在支持的地方使用REST。
  • 短暂的Apify URL --除非使用稳定的宿主模式,否则每次运行都有一个新的基本URL。
  • OAuth --每次运行的单个存储会话(KV);不是一个进程中的多用户并发OAuth。

脚本

npm run lint
npm run lint:fix
npm run format

许可证

ISC

更新日志

0.2

  • 可选的 OAuth 2.0 (Figma授权码+刷新); PAT仍为默认值 当设置时。
  • /oauth/authorize 和 /oauth/callback;会话以默认KV持续(FIGMA_OAUTH_SESSION).
  • 输入: oauthRedirectUri, oauthScopes.
  • 健康JSON: auth_mode, figma_authenticated.

0.1 / 0.0.1

  • 初始MCP+Figma REST集成,PAT,长时间运行的服务器, /mcp JSON-RPC。

参考文献 优化演员 · Figma REST API · 模型上下文协议