get-screen-image đều trả về kết quả hai lần: dưới dạng structuredContent (được xác thực theo schema đầu ra đã công bố của công cụ) và dưới dạng cùng đối tượng đó được tuần tự hóa thành một khối văn bản, { type: "text", text: "<json-string>" }, dành cho các máy khách không đọc structured content. get-screen-image chỉ trả về một khối hình ảnh MCP: { type: "image", data: "<base64>", mimeType: "image/png" }.
Khi thất bại, isError: true được đặt và khối văn bản chứa một thông báo lỗi ngắn. Các lỗi bạn có thể xử lý, chẳng hạn tên không khớp khi xóa, liên kết Figma không hợp lệ, nguyên tắc thiết kế không hợp lệ, sự cố với tệp đính kèm hoặc quá thời gian tạo, sẽ giải thích cần sửa gì. Các lỗi khác trả về thông báo chung như Failed to list files.
Bảng giá: ba công cụ thiết kế AI (
ai-design-screens, ai-generate-screen-variant và ai-edit-screen-variant) sử dụng cùng hạn mức tin nhắn với ứng dụng Flowstep. Tất cả các công cụ khác đều miễn phí. Xem Giới hạn sử dụng.delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens và ai-edit-screen-variant được đánh dấu là phá hủy vì chúng xóa hoặc ghi đè nội dung hiện có.
Công cụ tệp
list-files
Liệt kê siêu dữ liệu của các tệp Flowstep của bạn. Hãy gọi công cụ này trước để kiểm tra xem tệp phù hợp đã tồn tại hay chưa. Công cụ không trả về nội dung màn hình. Hãy dùng get-screen-image hoặc get-screen-jsx cho mục đích đó.
Đầu vào
Đầu ra:
{ files }.
owner:truenếu bạn đã tạo tệp.shared_with_me:truenếu tệp được chia sẻ trực tiếp với bạn, không chỉ thông qua tổ chức của bạn.url: mở tệp trong trình chỉnh sửa Flowstep.
get-file
Lấy siêu dữ liệu của một tệp. Nội dung tệp được cố ý bỏ qua. Hãy dùng get-screen-image hoặc get-screen-jsx để kiểm tra màn hình, và get-design-guidelines để lấy nguyên tắc thiết kế đính kèm. Nếu bạn có lời mời đang chờ đối với tệp, việc gọi get-file sẽ chấp nhận lời mời đó.
Đầu vào
Đầu ra:
{ file, user_access_level }.
access_level:private,readhoặcwrite.visibility:private,memberhoặcpublic.user_access_level: quyền truy cập của bạn đối với tệp:readhoặcwrite.
create-file
Tạo một tệp Flowstep trống, không có màn hình nào. Để tạo tệp và sinh màn hình trong một bước, hãy gọi ai-design-screens mà không có fileId. Dùng create-file cho quy trình làm việc theo hướng mã nguồn trước, sau đó gọi add-screen-jsx.
Đầu vào
Đầu ra:
{ file, user_access_level }, có cùng cấu trúc với get-file. owner luôn là true và user_access_level luôn là write.
Dùng file.id được trả về làm fileId trong các lệnh gọi công cụ tiếp theo.
update-file
Đổi tên một tệp.
Đầu vào
Đầu ra:
{ file, user_access_level }, có cùng cấu trúc với get-file.
delete-file
Xóa vĩnh viễn một tệp. name bạn truyền vào được đối chiếu với tên hiển thị hiện tại của tệp trước khi xóa. Nếu không khớp, việc xóa sẽ bị hủy. Điều này giúp tránh xóa nhầm tệp. Các tác nhân được hướng dẫn xác nhận với bạn trước.
Đầu vào
Đầu ra:
{ "deleted": true }
Công cụ màn hình
list-screens
Liệt kê các màn hình trong một tệp, theo thứ tự trên canvas. Hãy gọi công cụ này sau list-files để xem những gì đã có trong tệp. Dùng các giá trị screenId được trả về với các công cụ màn hình khác và công cụ thiết kế AI.
Đầu vào
Đầu ra:
{ screens }.
prompt: prompt tạo gần nhất của màn hình, hoặc chuỗi rỗng nếu màn hình chưa từng được tạo (ví dụ, màn hình được thêm bằngadd-screen-jsx).fidelity:lofi,hifihoặcui.
get-screen-image
Kết xuất một màn hình thành PNG và trả về dưới dạng hình ảnh nội tuyến. Yêu cầu máy khách hỗ trợ khối nội dung hình ảnh. Gọi công cụ này một lần cho mỗi screenId được trả về bởi một công cụ thiết kế AI, add-screen-jsx, replace-screen-jsx hoặc import-figma.
Đầu vào
Đầu ra: khối nội dung hình ảnh MCP (
image/png). data là base64 chuẩn của các byte PNG, không phải data URI. Công cụ này không có structuredContent.
get-screen-jsx
Lấy một màn hình dưới dạng JSX cùng siêu dữ liệu của nó, để bạn xây dựng từ đó trong mã nguồn, hoặc chỉnh sửa và ghi lại bằng replace-screen-jsx. Để xem trước trực quan, hãy dùng get-screen-image.
Đầu vào
Đầu ra:
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
jsx: chỉ có đánh dấu. Các thuộc tínhdata-idchỉ được đưa vào khiincludeIdslàtrue.prompt: prompt tạo gần nhất, hoặc chuỗi rỗng nếu màn hình chưa từng được tạo.fragments: phần giao diện dùng chung được lưu trên màn hình, chẳng hạn thanh điều hướng, tiêu đề hoặc logo, dưới dạng các đối tượng{ purpose, markup }. Trống khi không có. Truyền lại choreplace-screen-jsxđể giữ hoặc cập nhật chúng.
fidelity, screenType và colorTheme.
add-screen-jsx
Thêm một màn hình mới vào tệp từ JSX bạn đã viết. Đây là đường dẫn làm việc theo hướng mã nguồn trước và miễn phí. Dùng ai-design-screens khi bạn muốn AI của Flowstep thiết kế màn hình. add-screen-jsx luôn tạo màn hình mới. Để ghi đè một màn hình hiện có, hãy dùng replace-screen-jsx.
Để hiển thị một hình ảnh bạn đã tải lên, xem Hình ảnh trong JSX.
Khi màn hình mới dựa trên một màn hình hiện có, hãy bắt đầu từ get-screen-jsx (không có includeIds) để lấy name, fidelity, screenType, colorTheme và jsx, rồi thay đổi những gì cần khác.
Đầu vào
Đầu ra:
{ fileId, screenId }. Gọi get-screen-image với screenId để xem kết quả.
replace-screen-jsx
Ghi đè một màn hình hiện có bằng JSX bạn đã viết. Màn hình giữ nguyên screenId và vị trí trên canvas. Các phần tử lồng nhau sẽ nhận id mới. Đây là đường dẫn làm việc theo hướng mã nguồn trước và miễn phí. Dùng ai-design-screens hoặc ai-edit-screen-variant để AI thay đổi, và add-screen-jsx để tạo màn hình mới thay thế.
Bắt đầu từ get-screen-jsx (không có includeIds), rồi thay đổi những gì cần khác. Để hiển thị một hình ảnh bạn đã tải lên, xem Hình ảnh trong JSX.
Đầu vào
Đầu ra:
{ fileId, screenId }. Gọi get-screen-image với screenId để xem kết quả.
rename-screen
Đổi tên nhãn trên canvas của một màn hình, tức là tên hiển thị trong list-screens và trong trình chỉnh sửa. Thao tác này chỉ thay đổi nhãn, không thay đổi bố cục, kích thước hay nội dung của màn hình. Để làm những việc đó, hãy dùng ai-design-screens.
Đầu vào
Đầu ra:
{ screenId, name }.
delete-screen
Xóa vĩnh viễn một màn hình khỏi tệp. name bạn truyền vào được đối chiếu với tên hiển thị hiện tại của màn hình. Nếu không khớp, việc xóa sẽ bị hủy. Các tác nhân được hướng dẫn xác nhận với bạn trước.
Đầu vào
Đầu ra:
{ "deleted": true }
Hình ảnh trong JSX
add-screen-jsx và replace-screen-jsx chấp nhận hình ảnh trong src của thẻ img, hoặc làm nền trong className với bg-[url(...)]. Viết văn bản alt và đặt kích thước cho từng hình ảnh theo mục đích sử dụng.
Để đặt một hình ảnh của riêng bạn:
- Tải hình ảnh lên bằng
upload-attachmentở Chế độ A (mimeType+fileName), rồi chạyuploadCommandđược trả về. - Nếu
typetrong phản hồi là"image", hãy dánassetUrlđúng như được trả về vàoimg srchoặcbg-[url(assetUrl)].
get-screen-jsx đã trả về. Không đưa path, signedUrl hoặc uploadCommand vào src.
Giá trị trường màn hình
get-screen-jsx trả về, còn add-screen-jsx và replace-screen-jsx chấp nhận, các giá trị sau:
Công cụ nguyên tắc thiết kế
Nguyên tắc thiết kế là văn bảnDESIGN.md được lưu trên một tệp. Khi đã đặt, chúng được đưa vào mọi lần tạo bằng AI cho tệp đó. Xem Nguyên tắc thiết kế.
get-design-guidelines
Lấy nguyên tắc thiết kế được gắn với một tệp.
Đầu vào
Đầu ra:
{ guidelines }.
guidelines là null nếu chưa đặt nguyên tắc nào.
update-design-guidelines
Đặt hoặc thay thế nguyên tắc thiết kế của một tệp. Truyền nguyên tắc dưới dạng chuỗi thuần theo định dạng DESIGN.md của Google, không phải đối tượng hay JSON. Nếu bạn đang đọc từ một tệp, hãy truyền văn bản của tệp đó.
Đầu vào
Quy tắc xác thực
- Phần frontmatter phải được mở và đóng đúng cách
- Các dòng frontmatter phải là YAML kiểu khối hợp lệ
- Phần nội dung Markdown không được chứa tiêu đề
##bị trùng
Invalid design guidelines:.
Đầu ra: { updated, warnings? }.
warnings liệt kê các vấn đề xác thực mềm (khóa không xác định, màu không phải hex) đã được chấp nhận nhưng có thể bị AI bỏ qua. Trường này bị bỏ qua khi không có cảnh báo nào. Hãy thông báo các cảnh báo này cho người dùng.
delete-design-guidelines
Xóa nguyên tắc thiết kế của một tệp. Xóa nguyên tắc không tồn tại sẽ không có tác dụng gì.
Đầu vào
Đầu ra:
{ "deleted": true }
Công cụ trò chuyện
get-chat-history
Lấy cuộc trò chuyện thiết kế gắn với một tệp, tức là cuộc trò chuyện Flowstep của tệp, không phải cuộc trò chuyện trong máy khách MCP của bạn. Dùng công cụ này để tiếp tục công việc trước đó trên tệp.
Đầu vào
Đầu ra:
{ messages }. messages trống khi bạn chưa có cuộc trò chuyện thiết kế nào trên tệp. Mỗi tin nhắn có type ("request" hoặc "response"), author ("human" hoặc "ai") và content_type. Tin nhắn phản hồi dùng "text", "summary" hoặc "followup".
Công cụ tệp đính kèm
upload-attachment
Tải lên một tệp tham chiếu để dùng làm tệp đính kèm trong ai-design-screens, hoặc một hình ảnh để đặt vào JSX của riêng bạn với add-screen-jsx hoặc replace-screen-jsx. ai-generate-screen-variant và ai-edit-screen-variant không nhận tệp đính kèm. Nội dung tệp không đi qua mô hình, và máy chủ không bao giờ tự tải URL. Để tham chiếu một trang web, hãy đưa URL của trang vào message của ai-design-screens.
Có hai chế độ. Chỉ dùng đúng một chế độ, không kết hợp chúng.
Chế độ A: tệp và hình ảnh (mimeType + fileName)
Quy trình ba bước bắt buộc cho mọi hình ảnh, tệp PDF hoặc tệp văn bản lớn hơn:
-
Gọi
upload-attachmentchỉ vớimimeTypevàfileName(ví dụimage/pngvàdog.png). Phản hồi là một lượt tải lên đã chuẩn bị, chưa phải tệp đã được lưu: -
Thay
LOCAL_FILE_PATHtronguploadCommandbằng đường dẫn tuyệt đối tới tệp của bạn, rồi chạy đúng lệnh đó trong shell. Lệnh phải thoát với mã 0. Token trongsignedUrlchỉ cho phép đúng lượt tải lên này. Bỏ qua bước này sẽ khiến bộ nhớ trống và công cụ thiết kế sẽ thất bại ở bước kiểm tra sơ bộ. -
Chỉ truyền
{ id, path, type }vào mảngattachmentscủaai-design-screens, không truyềnsignedUrl,uploadCommandhoặcnextStep. Để đặt hình ảnh vào JSX của riêng bạn, hãy đưaassetUrlvàoimg srchoặcbg-[url(...)]trong JSX mà bạn truyền choadd-screen-jsxhoặcreplace-screen-jsx. Xem Hình ảnh trong JSX.
curl), rồi làm theo ba bước tương tự. Không bao giờ truyền URL vào upload-attachment.
Chế độ B: văn bản ngắn (
text + mimeType)
Tải lên văn bản đã có trong ngữ cảnh, không cần lệnh shell. Phản hồi có thể dùng ngay:
Truyền
{ id, path, type } thu được vào mảng attachments của ai-design-screens.
Dung lượng tệp tối đa là 3 MB cho cả hai chế độ, và tệp PDF giới hạn tối đa 100 trang.
Đầu ra: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
type:"image"đối với tệp hình ảnh và"document"đối với tệp PDF và tệp văn bản.assetUrl: URL của tệp đã tải lên, được trả về ở cả hai chế độ. Chỉ dùng trong JSX choadd-screen-jsxhoặcreplace-screen-jsxkhitypelà"image", và chỉ sau khi đã chạyuploadCommandở Chế độ A.signedUrl,uploadCommand,nextStep: chỉ được đặt ở Chế độ A. Không truyền chúng vào công cụ thiết kế.
Công cụ Figma
import-figma
Nhập một khung Figma vào một tệp Flowstep dưới dạng các phần tử có thể chỉnh sửa trên canvas của tệp. Mỗi lần nhập sẽ thêm một màn hình mới. Nhập cùng một khung hai lần sẽ cho bạn hai màn hình, vì vậy hãy xóa màn hình cũ bằng delete-screen nếu bạn muốn thay thế nó. Tổ chức sở hữu tệp phải đã kết nối Figma trong cài đặt Flowstep.
Đầu vào
Đầu ra:
{ fileId, screenId, frameCount? }. screenId là màn hình đã nhập. Truyền nó cho get-screen-image để xem kết quả. Khi một URL trang nhập nhiều khung, screenId là null và thay vào đó trả về frameCount. Khi đó, hãy gọi list-screens, rồi gọi get-screen-image cho từng màn hình mới.
Công cụ gói và thanh toán
get-plan-details
Lấy gói Flowstep, trạng thái đăng ký, mức sử dụng và hạn ngạch còn lại của tổ chức bạn. Không nhận đầu vào. Tổ chức được xác định từ người dùng đã đăng nhập. Dùng công cụ này để kiểm tra hạn mức trước khi gọi các công cụ thiết kế AI.
Đầu ra: { plan, subscription, limits, usage, remaining }.
Giới hạn khác nhau tùy theo gói. Xem Bảng giá và Giới hạn sử dụng.
Công cụ thiết kế AI
Ba công cụ này thiết kế từ một mô tả hoặc một preset. Chúng không bao giờ nhận hoặc tái sử dụng JSX. Mỗi lần gọi sử dụng cùng hạn mức tin nhắn với ứng dụng Flowstep, và chờ cho đến khi quá trình tạo hoàn tất hoặc hết thời gian (180 giây).
Cả ba đều trả về
{ status, fileId, screenIds, designGuidelinesUpdated }. Gọi get-screen-image một lần cho mỗi screenId để xem kết quả.
designGuidelinesUpdated: tóm tắt ngắn về thay đổi khi nguyên tắcDESIGN.mdcủa tệp được cập nhật tự động trong lượt này; nếu không thì lànull.
ai-design-screens
Tạo một hoặc nhiều màn hình mới, thay đổi màn hình hiện có tại chỗ, hoặc cả hai trong một lệnh gọi, từ một mô tả bằng văn bản: luồng mới, theme, nội dung, bố cục, hoặc các thay đổi phối hợp trên nhiều màn hình. Đây là cùng tác nhân thiết kế như trò chuyện trong trình chỉnh sửa Flowstep. Dựa trên message và elementIds, nó tự quyết định cần tạo gì và thay đổi gì.
Bỏ qua fileId để bắt đầu một tệp mới. Truyền fileId để làm việc trong một tệp hiện có. Nếu yêu cầu có thể áp dụng cho một tệp bạn đã có, tác nhân của bạn nên kiểm tra list-files và list-screens trước. Với bước tiếp theo, trạng thái lỗi hoặc trạng thái rỗng, hoặc biến thể nền tảng của một màn hình, hãy dùng ai-generate-screen-variant. Với một preset chỉnh sửa hoặc thiết kế lại cho một màn hình, hãy dùng ai-edit-screen-variant. Nếu bạn đã có JSX, hãy dùng add-screen-jsx hoặc replace-screen-jsx thay thế.
Đầu vào
Ví dụ: chỉnh sửa một màn hình và thêm một màn hình khác trong một lệnh gọi duy nhất:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status:"generated"khi màn hình được xây dựng hoặc thay đổi."chat"khi Flowstep trả lời mà không xây dựng gì. Trong trường hợp này,replychứa câu trả lời vàscreenIdstrống. Nếu yêu cầu của bạn chưa rõ ràng, tác nhân của bạn nên yêu cầu bạn làm rõ rồi gọi lại công cụ.screenIds: mọi màn hình được xây dựng hoặc thay đổi trong lệnh gọi, bao gồm cả các màn hình được chỉnh sửa tại chỗ. Nếu lệnh gọi hết thời gian sau khi một số màn hình đã được xây dựng, nó sẽ trả về các màn hình đó thay vì báo lỗi.
ai-generate-screen-variant
Thêm một màn hình mới được suy ra từ đúng một màn hình hiện có: bước tiếp theo trong luồng, trạng thái lỗi hoặc trạng thái rỗng, hoặc một phiên bản cho nền tảng khác. Màn hình gốc không thay đổi. Để thêm một màn hình không phải là biến thể của màn hình hiện có (ví dụ, màn hình cài đặt), hãy dùng ai-design-screens với fileId.
Đầu vào
Đầu ra:
{ status, fileId, screenIds, designGuidelinesUpdated }. status luôn là "generated".
ai-edit-screen-variant
Thay đổi đúng một màn hình hiện có tại chỗ bằng một preset: làm đẹp hoặc đổi theme, thử một bố cục hoặc phong cách hình ảnh khác, hoặc thiết kế lại từ đầu. Với màn hình mới, hướng dẫn tự do, hoặc chỉnh sửa chính xác từng phần tử, hãy dùng ai-design-screens.
Đầu vào
Đầu ra:
{ status, fileId, screenIds, designGuidelinesUpdated }. status luôn là "generated".
Công cụ đã đổi tên
Tên công cụ đã thay đổi vào tháng 9 và tháng 10 năm 2026. Nếu bạn có prompt, script hoặc hướng dẫn tác nhân dùng tên cũ, hãy cập nhật chúng:
Đầu vào cũng đã thay đổi: các công cụ thiết kế AI nhận
elementIds (hoặc một screenId duy nhất đối với các công cụ biến thể) thay cho targets. add-screen-jsx nhận jsx và các trường siêu dữ liệu rõ ràng thay cho jsxContent với một chú thích siêu dữ liệu. create-file nhận name thay cho title. Các công cụ nguyên tắc thiết kế nhận fileId thay cho resourceId và linkedTo.