【技术文档摘要】:
注意: 该项目目前处于测试阶段,可能还不完全稳定。
这是一个用于将Sketch设计与IDE(如Cursor、Cline或Windsurf)集成的模型上下文协议(MCP)服务器。
此工具允许Cursor IDE访问并解析Sketch设计文件,从而实现AI驱动的设计到代码的工作流程。其工作原理如下:
本项目由两个主要部分组成:
该服务器向Cursor提供了以下工具:
get_file: 获取Sketch文件的内容或其中特定节点的内容list_components: 列出Sketch文件中的所有组件/符号get_selection: 获取当前选中元素的信息create_rectangle: 创建具有指定尺寸和属性的新矩形create_text: 创建具有自定义内容和样式的文本元素这些工具使Cursor能够:
# 全局安装
npm install -g sketch-context-mcp
# 使用本地Sketch文件运行
sketch-context-mcp --local-file=/path/to/your/file.sketch
# 使用Sketch云端访问运行
sketch-context-mcp --sketch-api-key=<your-sketch-api-key>
或者直接使用npx运行:
npx sketch-context-mcp --local-file=/path/to/your/file.sketch
.sketchplugin文件以在Sketch中安装它要与Cursor一起使用:
使用您的Sketch文件启动MCP服务器:
sketch-context-mcp --local-file=/path/to/your/file.sketch
在Sketch中打开插件:
在Cursor中连接到MCP服务器:
http://localhost:3333/sse在Cursor作曲家中,您可以:
Sketch API密钥是一个OAuth访问令牌,用于访问Sketch云端托管的文件。按照以下步骤获取并使用该令牌:
使用您的Sketch云端凭证(电子邮件和密码)生成一个访问令牌,通过向认证端点发送POST请求:
curl -X "POST" "https://auth.sketch.cloud/oauth/token" \
-H 'Content-Type: application/json' \
-d '{
"email": "YOUR_EMAIL",
"password": "YOUR_PASSWORD",
"grant_type": "password"
}'
将YOUR_EMAIL和YOUR_PASSWORD替换为您自己的Sketch云端账户凭证。
响应将包括一个access_token。此令牌作为您的API密钥,用于访问Sketch云端托管的文件。
为了安全起见,建议通过环境变量传递令牌:
export SKETCH_API_KEY=<your-access-token>
或者将其作为命令行参数包含:
sketch-context-mcp --sketch-api-key=<your-access-token>
如果您的令牌过期,可以使用初始响应提供的refresh_token来获取新的访问令牌。
确保您的API密钥安全,遵循以下指南:
不要硬编码密钥: 不要在应用程序或源代码中硬编码API密钥。相反,使用环境变量或秘密管理工具。
使用.env文件进行本地开发: 将您的API密钥存储在.env文件中,并使用像dotenv这样的库加载它:
SKETCH_API_KEY=<your-access-token>
确保将.env文件添加到.gitignore中,以避免意外暴露。
定期轮换令牌: 如果您的令牌泄露或被破坏,请立即撤销并生成新的令牌。
监控和审计: 使用工具扫描您的存储库以查找暴露的凭据(例如GitHub的秘密扫描功能)。
使用短寿命令牌: 如果可能,使用短寿命令牌并在需要时刷新它们,以最小化泄露令牌的影响。
Sketch API密钥用于访问Sketch云端托管的文件。服务器使用此密钥对Sketch云端的请求进行身份验证,并检索必要的设计数据。在发出API请求时,密钥通过Authorization头安全地传递。
服务器可以通过环境变量(通过.env文件)或命令行参数进行配置。命令行参数优先于环境变量。
SKETCH_API_KEY: 您的Sketch API访问令牌(对于Sketch云端文件是必需的)PORT: 运行服务器的端口(默认:3333)LOCAL_SKETCH_PATH: 本地Sketch文件的路径(替代--local-file参数)DEBUG_LEVEL: 设置日志详细程度(默认:'info')--version: 显示版本号--sketch-api-key: 您的Sketch API访问令牌--port: 运行服务器的端口--stdio: 以命令模式运行服务器,而不是默认的HTTP/SSE--help: 显示帮助菜单连接标签允许您连接到Sketch Context MCP服务器:
选择标签显示了您Sketch文档中所选图层的信息:
关于标签提供了有关插件及其使用方法的信息。
一旦Sketch和Cursor都连接到MCP服务器:
Cursor中的示例命令:
要启用详细的日志记录,请设置DEBUG环境变量:
DEBUG=sketch-mcp:* npx sketch-context-mcp
欢迎贡献!请随时提交Pull Request。
本项目根据MIT许可证授权 - 查看LICENSE文件以获取详细信息。