Skip to main content
所有工具返回 MCP 内容块的 content 数组。文本工具返回 { type: "text", text: "<json-string>" }。图像工具返回 { type: "image", data: "<base64>", mimeType: "image/png" }。失败时设置 isError: true 并在文本块中包含错误消息。

文件工具

list-files

列出当前用户的 Flowstep 文件。 输入 输出 — 文件对象的 JSON 数组。

get-file

按 ID 获取单个文件。文件内容被有意省略 — 使用 get-screen 或 get-screen-image 检查屏幕,使用 get-design-guidelines 检索附加的设计准则。 输入 输出 — JSON 文件对象。

create-file

创建新的 Flowstep 文件。 输入 输出 — JSON 文件对象,包含新文件的 id。
在后续工具调用中使用返回的 id 作为 fileId。

update-file

重命名文件。 输入 输出 — 更新的文件对象,形式与 get-file 相同。

delete-file

永久删除文件。您传递的 name 在删除前会针对文件的实际名称进行验证 — 如果不匹配,删除会被中止。这可以防止意外删除错误的文件。 输入 输出 — "File deleted successfully"
这是不可逆的。文件中的所有屏幕都会被删除。

屏幕工具

list-screens

列出文件的所有生成屏幕。使用返回的 screenId 值在 get-screen、get-screen-image 中引用屏幕,以及在 edit-design、regenerate-design 或 expand-design 中作为 targets。 输入 输出 — 屏幕摘要的 JSON 数组。
name 是用户分配的屏幕名称,如果未命名则为 null。

get-screen

获取屏幕的 JSX 代码,允许您在 Flowstep 之外编辑或使用代码。使用 get-screen-image 获取视觉预览。 输入 输出 — 屏幕作为代码 (JSX)。注意第一行注释,这在使用 add-screen 工具时是必需的。

add-screen

从原始 JSX 字符串向 Flowstep 文件添加新屏幕。 输入 注意 — 必须在 JSX 的第一行作为注释出现类似下面的注释,用于正确添加屏幕。screenType、name 和 screenId 都是可选的 — 如果存在(例如,从 get-screen 输出复制 JSX 时)使用 screenId,但不是强制的。屏幕名称取自注释的 name 字段(显示为 “Copy of <name>”),如果不存在则为 “Untitled”。 <!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" --> 输出 — 新添加屏幕的 Id。

get-screen-image

将屏幕渲染为 PNG 并以内联图像形式返回。需要支持图像内容块的客户端。 输入 输出 — MCP 图像内容块 (image/png)。

AI 工具

regenerate-design、expand-design 和 edit-design 需要仅在使用 designs 数组原始生成的屏幕中存在的设计上下文。没有设计上下文生成的屏幕会返回错误。

create-new-design

从文本提示词生成一个或多个屏幕设计。省略 fileId 会自动创建新文件。阻止直到生成完成或超时 (180 秒)。 输入 输出 — { fileId, screenIds, designGuidelinesUpdated }。将每个 screenId 传递给 get-screen-image 查看结果。designGuidelinesUpdated 报告此生成过程中文件的设计准则是否更改。

regenerate-design

从头开始或使用样式变化重做现有屏幕。需要 targets 中至少一个 screenId。阻止直到生成完成或超时 (180 秒)。 输入 输出 — { fileId, screenIds, designGuidelinesUpdated }。将每个 screenId 传递给 get-screen-image 查看结果。

expand-design

向现有设计添加后续屏幕。需要 targets 中至少一个 screenId 和强制性的 operationVariant。阻止直到生成完成或超时 (180 秒)。 输入 输出 — { fileId, screenIds, designGuidelinesUpdated }。将每个 screenId 传递给 get-screen-image 查看结果。

edit-design

通过提示词修改现有屏幕。需要 targets 中至少一个 screenId。阻止直到生成完成或超时 (180 秒)。 输入 输出 — { fileId, screenIds, designGuidelinesUpdated }。将每个 screenId 传递给 get-screen-image 查看结果。

upload-attachment

上传文件以在 create-new-design 或 edit-design 中用作附件(不是 regenerate-design 或 expand-design)。文件字节不会通过模型,服务器也不会代表您获取 URL。 有两种模式 — 恰好使用其中一种,不要将它们结合。 模式 A — 文件和图像 (mimeType + fileName) 对任何图像、PDF 或较大的文本文件的必需三步流程:
  1. 仅使用 mimeType 和 fileName 调用 upload-attachment(例如 image/png 和 dog.png)。响应是一个准备好的上传,而不是已存储的文件:
  2. 用您文件的绝对路径替换 uploadCommand 中的 LOCAL_FILE_PATH 并在您的 shell 中运行该确切命令 — 它必须退出 0。signedUrl 中的令牌仅授权此单一上传。跳过此步骤会导致存储为空,设计工具会失败其预检检查。
  3. 仅将 { id, path, type } 传递到设计工具的 attachments 数组 — 不是 signedUrl、uploadCommand 或 nextStep。
要附加远程文件,请先自己将其下载到本地路径(例如使用 curl),然后按照相同的三步操作。不要将 URL 传递给 upload-attachment。 模式 B — 短文本 (text + mimeType) 上传已在上下文中的文本 — 无需 shell 命令。响应可以直接使用:
将结果的 { id, path, type } 传递到 create-new-design 或 edit-design 的 attachments 数组中。 两种模式的最大文件大小为 3 MB,PDF 的上限为 100 页。type 对于图像文件是 "image",对于 PDF 和文本文件是 "document"。

聊天工具

get-chat-history

获取文件的聊天消息历史。 输入 输出 — 包含 messages 数组的 JSON 对象。每条消息都有 type("request" 或 "response")、author("human" 或 "ai")和 content_type("text"、"summary" 或 "followup")。

设计工具

get-design-guidelines

获取为文件存储的设计准则。 输入 输出
如果尚未设置准则,guidelines 是 null。

update-design-guidelines

为文件设置或替换设计准则。准则作为 Google design.md 格式的纯文本字符串传递 — 不要传递对象或 JSON。 服务器执行软验证,可能在响应中返回 Warnings: 部分,列出被接受但可能被 AI 忽略的问题(未知键、非十六进制颜色)。将这些显示给用户。 输入 验证规则
  • Frontmatter 必须正确打开和关闭
  • Frontmatter 行必须是有效的块样式 YAML
  • Markdown 正文不得包含重复的 ## 部分标题
输出 — "Design guidelines updated successfully",可选后跟 Warnings: 部分。

delete-design-guidelines

清除文件的设计准则。 输入 输出 — "Design guidelines deleted successfully"

Figma 工具

import-figma

将 Figma 框架导入 Flowstep 文件作为其画布上的可编辑元素。重新导入同一框架会在原位更新它。文件的组织必须在 Flowstep 设置中连接了 Figma。 输入 输出 — { fileId, screenId }。screenId 是导入的屏幕元素的 id — 将其传递给 get-screen-image 查看结果。当页面 URL 导入多个框架时,screenId 是 null 并改为返回 frameCount。

计费工具

get-plan-details

获取当前用户的套餐、订阅状态和剩余配额。不需要输入。 输出
在一批生成之前调用此工具以检查可用配额。