get-screen-image 外,每個工具都會回傳兩次結果:作為 structuredContent(依該工具發布的輸出結構描述驗證),以及以相同物件序列化成的文字區塊 { type: "text", text: "<json-string>" },供不讀取結構化內容的用戶端使用。get-screen-image 只回傳 MCP 圖片區塊:{ type: "image", data: "<base64>", mimeType: "image/png" }。
失敗時,會設定 isError: true,且文字區塊會包含簡短的錯誤訊息。可行動的錯誤(例如刪除時名稱不符、無效的 Figma 連結、無效的設計指南、附件問題或產生逾時)會說明該如何修正。其他失敗則會回傳通用訊息,例如 Failed to list files。
delete-file、delete-screen、delete-design-guidelines、replace-screen-jsx、ai-design-screens 與 ai-edit-screen-variant 會被標記為 destructive(具破壞性),因為它們會移除或覆寫既有內容。
檔案工具
list-files
列出你的 Flowstep 檔案中繼資料。請先呼叫此工具,確認是否已有相關檔案。它不會回傳畫面內容——如需取得,請使用 get-screen-image 或 get-screen-jsx。
輸入
輸出:
{ files }。
owner:若你建立了該檔案,則為true。shared_with_me:若檔案是直接與你分享(而非僅透過你的組織分享),則為true。url:在 Flowstep 編輯器中開啟該檔案。
get-file
取得單一檔案的中繼資料。此處刻意不包含檔案內容——若要檢視畫面,請使用 get-screen-image 或 get-screen-jsx;若要取得已附加的指南,請使用 get-design-guidelines。若你有待處理的檔案邀請,呼叫 get-file 即會接受該邀請。
輸入
輸出:
{ file, user_access_level }。
access_level:private、read或write。visibility:private、member或public。user_access_level:你對該檔案的存取權限:read或write。
create-file
建立一個沒有任何畫面的空白 Flowstep 檔案。若要在一個步驟中建立檔案並產生畫面,請改為呼叫不帶 fileId 的 ai-design-screens。程式碼優先的工作流程請使用 create-file,接著使用 add-screen-jsx。
輸入
輸出:
{ file, user_access_level },格式與 get-file 相同。owner 一律為 true,user_access_level 一律為 write。
在後續的工具呼叫中,請將回傳的 file.id 用作 fileId。
update-file
重新命名檔案。
輸入
輸出:
{ file, user_access_level },格式與 get-file 相同。
delete-file
永久刪除檔案。你傳入的 name 會在刪除前與檔案目前的顯示名稱比對——若不相符,刪除便會中止。這可防止誤刪錯誤的檔案。代理會被指示先與你確認。
輸入
輸出:
{ "deleted": true }
畫面工具
list-screens
依畫布順序列出檔案中的畫面。請在 list-files 之後呼叫此工具,以查看檔案中已有的內容。請將回傳的 screenId 值用於其他畫面工具與 AI 設計工具。
輸入
輸出:
{ screens }。
prompt:該畫面最後一次的產生提示詞;若從未透過產生方式建立,則為空字串(例如以add-screen-jsx新增的畫面)。fidelity:lofi、hifi或ui。
get-screen-image
將畫面渲染為 PNG,並以內嵌圖片形式回傳。需要支援圖片內容區塊的用戶端。請針對 AI 設計工具、add-screen-jsx、replace-screen-jsx 或 import-figma 所回傳的每個 screenId,各呼叫一次。
輸入
輸出:MCP 圖片內容區塊(
image/png)。data 是 PNG 位元組的標準 base64,而非 data URI。此工具沒有 structuredContent。
get-screen-jsx
以 JSX 取得畫面及其中繼資料,讓你能在程式碼庫中以此為基礎進行開發,或編輯後透過 replace-screen-jsx 寫回。若要視覺預覽,請改用 get-screen-image。
輸入
輸出:
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }。
jsx:僅包含標記。只有在includeIds為true時才會包含data-id屬性。prompt:最後一次的產生提示詞;若畫面從未透過產生方式建立,則為空字串。fragments:儲存在畫面上的共用外框元素,例如導覽列、標頭或標誌,格式為{ purpose, markup }物件。若沒有則為空。請將它們傳回replace-screen-jsx,以保留或更新。
fidelity、screenType 與 colorTheme 的值,請參閱畫面欄位值。
add-screen-jsx
將你撰寫的 JSX 新增為檔案中的新畫面。這是程式碼優先的方式,且免費——若你希望由 Flowstep 的 AI 設計畫面,請使用 ai-design-screens。add-screen-jsx 一律建立新畫面:若要覆寫既有畫面,請使用 replace-screen-jsx。
若要顯示你上傳的圖片,請參閱JSX 中的圖片。
若新畫面是以既有畫面為基礎,請先從 get-screen-jsx(不含 includeIds)取得 name、fidelity、screenType、colorTheme 與 jsx,然後再變更需要不同的部分。
輸入
輸出:
{ fileId, screenId }。請以 screenId 呼叫 get-screen-image 以檢視結果。
replace-screen-jsx
以你撰寫的 JSX 覆寫既有畫面。畫面會保留其 screenId 與在畫布上的位置;巢狀元素則會取得新的 ID。這是程式碼優先的方式,且免費——若要進行 AI 變更,請使用 ai-design-screens 或 ai-edit-screen-variant;若要建立新畫面,請改用 add-screen-jsx。
請先從 get-screen-jsx(不含 includeIds)開始,然後再變更需要不同的部分。若要顯示你上傳的圖片,請參閱JSX 中的圖片。
輸入
輸出:
{ fileId, screenId }。請以 screenId 呼叫 get-screen-image 以檢視結果。
rename-screen
重新命名畫面在畫布上的標籤——即 list-screens 與編輯器中顯示的名稱。此操作只會變更標籤,不會變更畫面的版面、尺寸或內容——若要變更這些,請使用 ai-design-screens。
輸入
輸出:
{ screenId, name }。
delete-screen
永久刪除檔案中的畫面。你傳入的 name 會與畫面目前的顯示名稱比對——若不相符,刪除便會中止。代理會被指示先與你確認。
輸入
輸出:
{ "deleted": true }
JSX 中的圖片
add-screen-jsx 與 replace-screen-jsx 接受 img 的 src 中的圖片,或以 className 中的 bg-[url(...)] 作為背景。請撰寫 alt 文字,並依用途設定每張圖片的尺寸。
若要放置你自己的圖片:
- 使用
upload-attachment的模式 A(mimeType+fileName)上傳,並執行回傳的uploadCommand。 - 若回應的
type為"image",請將其assetUrl原封不動地貼入img src或bg-[url(assetUrl)]。
get-screen-jsx 回傳時的原樣。請勿將 path、signedUrl 或 uploadCommand 放入 src。
畫面欄位值
get-screen-jsx 會回傳以下值,而 add-screen-jsx 與 replace-screen-jsx 也接受這些值:
設計指南工具
設計指南是儲存在檔案上的DESIGN.md 文字。設定後,系統會將其注入該檔案的每次 AI 產生作業中。請參閱設計指南。
get-design-guidelines
取得附加在檔案上的設計指南。
輸入
輸出:
{ guidelines }。
guidelines 為 null。
update-design-guidelines
設定或取代檔案的設計指南。請以純字串形式傳入指南,格式需符合 Google 的 DESIGN.md 格式——不可為物件或 JSON。若你是從檔案讀取,請傳入該檔案的文字。
輸入
驗證規則
- 前置資料(frontmatter)必須正確開始與結束
- 前置資料的每一行都必須是有效的區塊式 YAML
- Markdown 內文不得包含重複的
##章節標題
Invalid design guidelines: 開頭的錯誤。
輸出:{ updated, warnings? }。
warnings 會列出已被接受、但可能會被 AI 忽略的軟性驗證問題(未知的鍵、非十六進位的顏色)。若沒有此類問題,則會省略此欄位。請將這些問題告知使用者。
delete-design-guidelines
清除檔案的設計指南。刪除不存在的指南不會有任何效果。
輸入
輸出:
{ "deleted": true }
對話工具
get-chat-history
取得與檔案相關聯的設計對話,即該檔案的 Flowstep 對話,而非你的 MCP 用戶端對話。可用來接續先前在該檔案上的工作。
輸入
輸出:
{ messages }。若你在該檔案上沒有任何設計對話,messages 會是空的。每則訊息都有 type("request" 或 "response")、author("human" 或 "ai")與 content_type。回應訊息使用 "text"、"summary" 或 "followup"。
附件工具
upload-attachment
上傳參考檔案,以便用作 ai-design-screens 的附件;或上傳圖片,以便用 add-screen-jsx 或 replace-screen-jsx 放入你自己的 JSX。ai-generate-screen-variant 與 ai-edit-screen-variant 不接受附件。檔案位元組不會經過模型,伺服器也絕不會代你擷取 URL。若要參考網頁,請改將其 URL 放入 ai-design-screens 的 message 中。
共有兩種模式——請只使用其中一種,且不可混用。
模式 A——檔案與圖片(mimeType + fileName)
適用於任何圖片、PDF 或較大文字檔案的必要三步驟流程:
-
僅使用
mimeType與fileName呼叫upload-attachment(例如image/png與dog.png)。回應是已準備好的上傳,而非已儲存的檔案: -
將
uploadCommand中的LOCAL_FILE_PATH替換為你檔案的絕對路徑,並在你的 shell 中執行該完整指令——它必須以 0 結束。signedUrl中的權杖只授權此次單一上傳。略過此步驟會使儲存空間為空,設計工具的預先檢查將會失敗。 -
只將
{ id, path, type }傳入ai-design-screens的attachments陣列——不要傳入signedUrl、uploadCommand或nextStep。若要改在你自己的 JSX 中放置圖片,請將assetUrl放入你傳給add-screen-jsx或replace-screen-jsx的 JSX 之img src或bg-[url(...)]中。請參閱JSX 中的圖片。
curl),然後依循相同的三個步驟。切勿將 URL 傳給 upload-attachment。
模式 B——短文字(
text + mimeType)
上傳已在上下文中的文字——無需 shell 指令。回應可直接使用:
將產生的
{ id, path, type } 傳入 ai-design-screens 的 attachments 陣列。
兩種模式的檔案大小上限皆為 3 MB,PDF 上限為 100 頁。
輸出:{ id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }。
type——圖片檔案為"image",PDF 與文字檔案為"document"。assetUrl——已上傳檔案的 URL,兩種模式都會回傳。只有在type為"image",且模式 A 的uploadCommand已執行後,才可在 JSX 中用於add-screen-jsx或replace-screen-jsx。signedUrl、uploadCommand、nextStep——僅在模式 A 中設定。請勿傳入設計工具。
Figma 工具
import-figma
將 Figma 框架以可編輯元素的形式匯入 Flowstep 檔案的畫布上。每次匯入都會新增一個畫面——同一框架匯入兩次會得到兩個畫面,因此若你原本是要取代,請使用 delete-screen 刪除舊的畫面。檔案所屬的組織必須已在 Flowstep 設定中連接 Figma。
輸入
輸出:
{ fileId, screenId, frameCount? }。screenId 為匯入的畫面——將它傳給 get-screen-image 即可檢視結果。當頁面 URL 匯入多個框架時,screenId 會是 null,改回傳 frameCount;請呼叫 list-screens,然後對每個新畫面呼叫 get-screen-image。
方案與帳務工具
get-plan-details
取得你組織的 Flowstep 方案、訂閱狀態、用量與剩餘額度。此工具不需輸入——系統會根據已登入的使用者判斷組織。請在呼叫 AI 設計工具之前,使用它來檢查你的額度。
輸出:{ plan, subscription, limits, usage, remaining }。
限額依方案而異——請參閱定價與使用限制。
AI 設計工具
這三個工具會根據描述或預設進行設計——它們絕不接受或重複使用 JSX。每次呼叫都會使用與 Flowstep 應用程式相同的訊息額度,並會等待產生完成或逾時(180 秒)。
三者皆回傳
{ status, fileId, screenIds, designGuidelinesUpdated }。請針對每個 screenId 各呼叫一次 get-screen-image 以檢視結果。
designGuidelinesUpdated:當此輪對話中檔案的DESIGN.md指南被自動更新時,會提供變更的簡短摘要;否則為null。
ai-design-screens
從文字描述產生一或多個新畫面、就地修改既有畫面,或在一次呼叫中同時完成兩者——包括新流程、主題、文案、版面,或跨多個畫面的協調變更。這與 Flowstep 編輯器中聊天功能所使用的設計代理相同:它會根據你的 message 與 elementIds 決定要建立與變更的內容。
省略 fileId 即可建立新檔案;傳入 fileId 則會在現有檔案中工作。若該請求可能適用於你已有的檔案,你的代理應先檢查 list-files 與 list-screens。若要為一個畫面產生下一步、錯誤或空白狀態,或平台變體,請使用 ai-generate-screen-variant。若要對一個畫面進行預設編輯或重新設計,請使用 ai-edit-screen-variant。若你已有 JSX,請改用 add-screen-jsx 或 replace-screen-jsx。
輸入
範例——在一次呼叫中編輯一個畫面並新增另一個畫面:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }。
status——畫面已建立或變更時為"generated"。若 Flowstep 只回覆而未建立畫面,則為"chat",此時reply會包含其回答,且screenIds為空。若你的需求描述不夠明確,你的代理應請你釐清,然後再次呼叫此工具。screenIds——此次呼叫中建立或變更的每個畫面,包括就地編輯的畫面。若呼叫在建立部分畫面後逾時,則會回傳這些畫面而非錯誤。
ai-generate-screen-variant
從恰好一個既有畫面衍生出新畫面——例如流程中的下一步、錯誤或空白狀態,或另一平台的版本。原始畫面保持不變。若要新增並非既有畫面變體的畫面(例如設定畫面),請搭配 fileId 使用 ai-design-screens。
輸入
輸出:
{ status, fileId, screenIds, designGuidelinesUpdated }。status 一律為 "generated"。
ai-edit-screen-variant
使用預設,就地修改恰好一個既有畫面——為其套用主題或潤飾、嘗試不同的版面或視覺風格,或從頭重新設計。若需要自由格式的指示或對個別元素的精確編輯,請使用 ai-design-screens。
輸入
輸出:
{ status, fileId, screenIds, designGuidelinesUpdated }。status 一律為 "generated"。
已更名的工具
工具名稱於 2026 年 9 月與 10 月更改。若你的提示詞、指令碼或代理指示使用舊名稱,請更新它們:
輸入參數也有變更:AI 設計工具改為接受
elementIds(變體工具則接受單一 screenId),取代 targets;add-screen-jsx 改為接受 jsx 與明確的中繼資料欄位,取代帶有中繼資料註解的 jsxContent;create-file 改為接受 name,取代 title;設計指南工具改為接受 fileId,取代 resourceId 與 linkedTo。