
基于 Figma Context MCP 的增强版本,通过本地持久化缓存显著减少对 Figma API 的请求次数,从而缓解速率限制问题,提升稳定性与响应速度。
该版本特别适合 免费 Figma 账号、高频上下文请求、以及 Cursor / MCP 客户端 场景。
figma_prepare_file 工具:智能准备和缓存 Figma 文件⚠️ 请在设计相对稳定或已定稿后再启用缓存功能 本 MCP 默认支持对 Figma API 返回结果进行缓存(可配置 TTL),以减少 API 请求次数、提升响应速度并避免触发 Figma 的限流策略。
由于缓存机制的存在: - 当 Figma 页面或组件发生更新时 - 在缓存未过期(TTL 内) - MCP 可能仍返回 旧的设计数据 - 无法立即反映最新的设计变更
这在以下场景中尤为明显: - 页面结构调整 - 组件属性修改 - 新增 / 删除节点 - 文案或布局的细微更新
{
"mcpServers": {
"Figma-Context-MCP-Cached": {
"command": "npx",
"args": [
"-y",
"@pactortester/figma-mcp-cached",
"--stdio",
"--figma-api-key=YOUR-KEY",
"--figma-caching={\"ttl\":{\"value\":30,\"unit\":\"d\"}}"
]
}
}
}
优先级说明: 命令行参数 > 环境变量
ttl(必填)控制缓存的有效期。
value:数值unit:时间单位,可选值:ms(毫秒)s(秒)m(分钟)h(小时)d(天)cacheDir(可选)控制缓存文件的存储目录。
~ 会解析为用户主目录默认缓存路径:
~/.cache/figma-mcp~/Library/Caches/FigmaMcp%LOCALAPPDATA%/FigmaMcpCache当启用缓存后:
将结果写入本地缓存
在缓存未过期前:
get_figma_dataget_raw_node等请求将直接从本地缓存返回,不再重复请求 Figma API。
🔄 强制刷新缓存
如需立即刷新,只需手动删除 cacheDir 中对应的缓存文件即可。
figma_prepare_file 是一个智能文件准备工具,用于在获取 Figma 数据之前确保文件已准备好。
主要特性: - ✅ 自动缓存检查:检查文件是否已缓存且有效 - ✅ nodeId 验证:如果提供了 nodeId,会验证该节点是否存在于缓存中 - ✅ 智能刷新:如果缓存过期或 nodeId 不存在,自动重新拉取文件 - ✅ 缓存未启用提示:即使缓存未启用,也会提供明确的提示信息
当用户提供 Figma URL 时,LLM 会自动:
1. 首先调用 figma_prepare_file 准备文件
2. 然后调用 get_figma_data 获取数据
示例流程:
用户提供 URL → figma_prepare_file (准备文件) → get_figma_data (获取数据)
figmaUrl (必填): Figma 设计文件 URLhttps://www.figma.com/design/<fileKey>/...?node-id=<nodeId>FIGMA_CACHING(环境变量或命令行参数),则保持 原始不缓存行为figma_prepare_file,再调用 get_figma_data与原项目保持一致。
本项目基于以下开源项目进行开发与优化,在此表示感谢:
GLips / Figma-Context-MCP
https://github.com/GLips/Figma-Context-MCP/
stone-w4tch3r / Figma-Context-MCP
https://github.com/stone-w4tch3r/Figma-Context-MCP
感谢上述项目提供的核心实现与设计思路。本项目在其基础上引入了本地持久化缓存机制,以提升性能并缓解 Figma API 的速率限制问题。
$ claude mcp add figma-mcp-cached \
-- python -m otcore.mcp_server <graph>