跳轉到主要內容
成功時,除 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。
**費用:**三個 AI 設計工具(ai-design-screens、ai-generate-screen-variant 與 ai-edit-screen-variant)與 Flowstep 應用程式使用相同的訊息額度。其他所有工具皆免費。請參閱使用限制。
每個工具也會發布 MCP 註解,讓用戶端了解其作用。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 文字,並依用途設定每張圖片的尺寸。 若要放置你自己的圖片:
  1. 使用upload-attachment的模式 A(mimeType + fileName)上傳,並執行回傳的 uploadCommand。
  2. 若回應的 type 為 "image",請將其 assetUrl 原封不動地貼入 img src 或 bg-[url(assetUrl)]。
其他所有圖片 URL 請保持 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 或較大文字檔案的必要三步驟流程:
  1. 僅使用 mimeType 與 fileName 呼叫 upload-attachment(例如 image/png 與 dog.png)。回應是已準備好的上傳,而非已儲存的檔案:
  2. 將 uploadCommand 中的 LOCAL_FILE_PATH 替換為你檔案的絕對路徑,並在你的 shell 中執行該完整指令——它必須以 0 結束。signedUrl 中的權杖只授權此次單一上傳。略過此步驟會使儲存空間為空,設計工具的預先檢查將會失敗。
  3. 只將 { 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。