Figma MCP代理
一种基于Go的HTTP代理服务器,通过自动添加Figma文件参数并在处理工具调用时打开Figma设计来增强模型上下文协议(MCP)工具调用。
- 有关更多信息,请查看 级联:云AI实现Figma和Jira使用指南.
- 需要帮助?在上查找Bitovi Discord 的中文翻译是“不和谐”或“纷争”。 或 雇用我们.
👉 Bitovi可以帮助您将此集成到您自己的SDLC工作流程中: 软件团队的人工智能
它的作用
此代理充当MCP客户端和MCP服务器之间的中介,提供以下功能:
1.工具模式增强
当客户请求可用工具列表时(tools/list),代理:
- 识别具有以下功能的工具
nodeId输入模式中的参数 - 自动向这些工具添加两个附加参数:
- fileKey:Figma文件标识符(从URL中提取,如 https://figma.com/design/1234/5678?node-id=1-2) - fileName:Figma文件名(从相同的URL格式中提取)
- 更新工具说明,解释如何从Figma URL中提取这些参数
2.具有智能重试和验证功能的自动Figma设计打开
当处理同时包含这两种情况的工具调用时 fileKey 和 fileName 参数,代理使用优化的验证方法:
- 第一次尝试:立即转发请求,不打开任何文件(如果文件已打开,则立即响应)
- 错误检测:监视指示文件未打开的错误的响应(“找不到节点”、“AppStateTsApi为null”等)
- 自动重试并验证:如果检测到文件未打开错误:
1. 使用打开设计 figma:// URL 方案 1. 等待初始延迟(可通过配置 FIGMA_OPEN_INITIAL_DELAY_SECONDS,默认10秒) 1. 每5秒轮询一次Figma MCP服务器,以验证文件是否实际加载(最多60秒) 1. 验证后检索原始请求
- 支持macOS、Windows和Linux操作系统
- 演出:已打开的文件零延迟,根据实际加载时间切换文件时自适应等待
- 线程安全:使用互斥体来防止并发文件打开操作
配置
可以使用环境变量配置代理:
TARGET_URL:代理请求的MCP服务器(默认值:http://localhost:3845)PORT:运行代理服务器的端口(默认值:3846)FIGMA_OPEN_INITIAL_DELAY_SECONDS:打开Figma文件后开始验证的初始等待时间(默认值:10秒)。如果文件在慢速VM上开始加载需要更长时间,请增加此值。API_KEY:用于身份验证的可选承载令牌(如果设置,则需要Authorization: Bearer头球
重新启动服务
建议:使用重启脚本
- 远程桌面到Windows服务器
- 打开PowerShell并运行:
cd C:\figma-mcp-proxy
& ".\restart.ps1"这将停止任务,提取最新代码,重建并重新启动。
手动重启(不更新代码)
如果你只需要重新启动而不需要拉取新代码:
Stop-ScheduledTask -TaskName 'FigmaProxy' -ErrorAction SilentlyContinue
Start-ScheduledTask -TaskName 'FigmaProxy'检查任务状态
Get-ScheduledTask -TaskName 'FigmaProxy' | Get-ScheduledTaskInfo查看日志
Get-Content C:\figma-mcp-proxy\logs\proxy.log -Tail 50故障排除
Figma断开RDP后MCP工具失败
问题:一些Figma MCP工具(特别是 get_design_context)断开与RDP会话的连接后停止工作,即使Figma仍在运行。
原因:当您正常关闭RDP时,Windows会将会话标记为“已断开连接”,这将更改桌面/图形上下文的维护方式。Figma继续运行,但需要活动图形会话的工具失败。
解决方案:自动断开连接脚本(推荐)
在断开连接之前,请运行以下脚本,而不是正常关闭RDP窗口:
cd C:\figma-mcp-proxy
& ".\disconnect-rdp.ps1"这会自动将您的会话转移到控制台,使其保持活动状态。
手动方法
如果脚本失败,您可以手动转移会话:
- 以管理员身份打开命令提示符
- 运行:
query session - 查找您的会话ID(状态=活动)
- 运行:
tscon /dest:console(例如。,tscon 2 /dest:console)
用法
启动代理
go run main.go或者使用自定义配置:
TARGET_URL=http://localhost:3000 PORT=8080 go run main.go