使用说明
@阿卡德/费马mcp
用于Figma API的MCP服务器,具有智能上下文管理和令牌优化功能。
v3.0.0——紧凑的树输出格式,可节省95%的令牌。
安装
克劳德代码
claude mcp add figma -e FIGMA_ACCESS_TOKEN=your-token-here -- npx -y github:alucardeht/figma-mcp
获取您的Figma代币
- 打开 Figma设置
- 导航至 个人访问令牌
- 点击 创建新令牌
- 立即复制令牌(不会再次显示)
需求
Figma平面图
Figma REST API适用于任何计划,但是 利率限制差异很大:
| 计划 | 文件访问 | 速率限制 |
|---|---|---|
| 起动机(免费) | 每月6次请求 | 实际使用不切实际 |
| 专业的 | 无限制 | 120需求/分钟 |
| 组织 | 无限制 | 480需求/分钟 |
重要提示: 免费帐户仅限于 每月6次API调用 对于文件内容。这使得MCP服务器在没有付费计划的情况下不切实际。
开发模式为 不需要 -此MCP使用REST API,而不是开发模式功能。
特性
紧凑树输出(v3.0中的新功能)
- 代币减少95%:205k个字符→ 10k个字符用于典型的登录页面
- ASCII树格式:清晰的层次结构
├─,└─,│ - 保留基本信息:位置、尺寸、颜色、布局、溢流指示器
输出示例:
Landing page [1440x2462 bg:#f2f2f2]
├─ header [1440x469]
│ ├─ nav [1440x81 row gap:99]
│ │ ├─ logo [155x30 INSTANCE]
│ │ └─ navHeaderLinks [456x49 row gap:8]
│ └─ zipCode [1188x147 bg:#fff radius:20]
├─ aboutContainer [1169x122 row]
│ ├─ aboutBox [391x122 radius:25]
│ └─ aboutBox [408x122 radius:25]
└─ footer [1440x90 row gap:309]
智能导航
- 基于名称的访问:使用人类可读的名称,不需要ID
- 部分匹配:“登录”与“登录页面”匹配
- 会话状态:跨请求维护上下文
不可见元素过滤
默认情况下,具有以下属性的元素 visible: false 图中的所有MCP输出均不包括:
- 框架结构 (
get_frame_info)-只有树中可见的元素 - 资产提取 (
extract_assets)-只有可见的图标和图像 - 款式系列 (
extract_styles)-仅来自可见元素的样式 - 页面分析 (
analyze_page_structure)-仅可见部分和组件
这确保了MCP输出与您在Figma的设计视图中实际看到的内容相匹配,而不是用于设计迭代、禁用变体或占位符组件的隐藏元素。
为什么这很重要: 设计师经常隐藏元素(占位符、替代版本、正在进行的工作)。如果不进行过滤,人工智能模型将看到并可能实现这些不可见的元素,从而导致与预期设计的分歧。
资产管理
- 有组织的开采:资产保存到
icons/和images/文件夹 - 设计代币:提取颜色、排版、效果
- 可配置的屏幕截图:带尺寸限制的1-4x比例
可用工具
导航
| 工具 | 说明 |
|---|---|
list_pages(file_key) |
列出文件中的所有页面 |
list_frames(file_key, page_name) |
列出页面上的框架 |
get_frame_info(file_key, page_name, frame_name, depth?) |
以紧凑的格式获取帧结构 |
get_frame_info(file_key, node_id?, depth?) |
通过node_id获取帧(更快的直接访问) |
search_components(file_key, query) |
按名称查找组件 |
提取
| 工具 | 说明 |
|---|---|
get_screenshot(file_key, page_name, frame_name) |
将帧导出为PNG |
get_screenshot(file_key, node_id?) |
通过node_id导出帧(更快的直接访问) |
extract_styles(file_key, page_name, frame_name) |
提取设计令牌 |
extract_assets(file_key, page_name, frame_name) |
导出SVG和图像 |
get_file_styles(file_key) |
列出已发布的样式 |
验证
| 工具 | 说明 |
|---|---|
validate_implementation(file_key, url, figma_node_id, ...) |
Figma和浏览器之间的像素完美比较,结果按视觉部分组织,包括匹配分数、边界、颜色和CSS树 |
check_layout_bounds(file_key, page_name, frame_name) |
检测内容溢出 |
compare_element_position(file_key, page_name, frame_name, element_name, browser_x, browser_y) |
比较位置:Figma与浏览器 |
compare_element_dimensions(file_key, page_name, frame_name, element_name, browser_width, browser_height) |
比较尺寸:Figma与浏览器 |
compare_visual(file_key, page_name, frame_name, screenshot_path) |
像素匹配的像素完美差异 |
verify_elements_present(file_key, page_name, frame_name, element_names) |
检查DOM中是否存在元素 |
verify_assets_loaded(file_key, page_name, frame_name) |
验证图像是否已加载 |
validate_responsive_breakpoint(file_key, page_name, frame_name, viewport_width) |
验证特定视口 |
test_all_breakpoints(file_key, page_name, frame_name) |
测试手机、平板电脑、台式机 |
会话
| 工具 | 说明 |
|---|---|
repeat_last() |
从缓存中回放之前的响应 |
get_session_state() |
查看当前会话状态 |
reset_session() |
清除所有缓存数据 |
通过节点ID直接访问
两者 get_frame_info 和 get_screenshot 接受 node_id 作为替代方案 page_name + frame_name 以实现更快、更直接的访问。
如何获取node_id:
- Figma编辑器中的打开框架
- 从URL复制ID:
https://www.figma.com/design/FILE_KEY/...?node-id=NODE_ID - 节点ID格式示例:
40000056-28165
用途:
get_frame_info(file_key="h75vgHNcwxfHkRBbI53RRu", node_id="40000056-28165", depth=4)
get_screenshot(file_key="h75vgHNcwxfHkRBbI53RRu", node_id="40000056-28165")
优点:
- 跳过页面/帧名称查找(API调用少1个)
- 更直接、更可靠
- 适用于特定的设计审查
压缩格式参考
这 get_frame_info 该工具返回针对LLM上下文优化的紧凑树格式:
element-name [[x,y wxh] attributes]
├─ child [[x,y wxh] attributes]
│ └─ grandchild [wxh attributes]
└─ sibling [wxh attributes]
显示的属性:
bg:#hex--背景颜色row/col--布局方向gap:N--儿童间距radius:N--边界半径shadow--有阴影INSTANCE/VECTOR/TEXT--节点类型↓overflow:Npx--内容溢出边界
示例工作流程
1. list_pages("h75vgHNcwxfHkRBbI53RRu")
→ ["Home", "Components", "-> Validado"]
2. list_frames(file_key, "Validado")
→ ["Landing page", "Login", "Dashboard"]
3. get_frame_info(file_key, "Validado", "Landing page", depth=4)
→ Compact tree with full structure (165 lines, ~2.5k tokens)
4. extract_assets(file_key, "Validado", "Landing page")
→ icons/icon-1.svg, icons/icon-2.svg, images/hero.png
速率限制
| 计划 | 请求数/分钟 |
|---|---|
| 免费 | 120 |
| 专业 | 240 |
| 组织 | 480 |
使用分页 continue=true 保持在限制范围内。
许可证
麻省理工学院
问题? 打开一个问题
