content của các khối nội dung MCP. Các công cụ văn bản trả về { type: "text", text: "<json-string>" }. Các công cụ hình ảnh trả về { 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 thông báo lỗi.
Công cụ tệp
list-files
Liệt kê các tệp Flowstep cho người dùng hiện tại.
Đầu vào
Đầu ra — Mảng JSON các đối tượng tệp.
get-file
Lấy một tệp duy nhất theo ID. Nội dung tệp được bỏ qua một cách cố ý — sử dụng get-screen hoặc get-screen-image để kiểm tra các màn hình, và get-design-guidelines để lấy các nguyên tắc đính kèm.
Đầu vào
Đầu ra — Đối tượng tệp JSON.
create-file
Tạo một tệp Flowstep mới.
Đầu vào
Đầu ra — Đối tượng tệp JSON với
id của tệp mới.
id được trả về làm fileId trong các lệnh công cụ tiếp theo.
update-file
Đổi tên một tệp.
Đầu vào
Đầu ra — Đối tượng tệp được cập nhật có cùng hình dạng như
get-file.
delete-file
Xóa vĩnh viễn một tệp. name mà bạn chuyển được xác minh với tên thực tế của tệp trước khi xóa — nếu nó không khớp, việc xóa sẽ bị hủy. Điều này ngăn chặn việc xóa nhầm tệp.
Đầu vào
Đầu ra —
"File deleted successfully"
Công cụ màn hình
list-screens
Liệt kê tất cả các màn hình được tạo cho một tệp. Sử dụng các giá trị screenId được trả về để tham chiếu các màn hình trong get-screen, get-screen-image, upload-attachment, và như targets trong edit-design, regenerate-design, hoặc expand-design.
Đầu vào
Đầu ra — Mảng JSON các bản tóm tắt màn hình.
name là tên màn hình được gán bởi người dùng, hoặc null nếu chưa được đặt tên.
get-screen
Lấy mã JSX cho một màn hình cho phép bạn chỉnh sửa hoặc sử dụng mã bên ngoài Flowstep. Sử dụng get-screen-image để xem trước trực quan thay thế.
Đầu vào
Đầu ra — Màn hình dưới dạng mã (JSX). Lưu ý bình luận dòng đầu tiên cần thiết khi sử dụng công cụ
add-screen.
add-screen
Thêm một màn hình mới vào tệp Flowstep từ chuỗi JSX thô.
Đầu vào
Lưu ý - Một bình luận tương tự như bên dưới PHẢI có mặt dưới dạng dòng đầu tiên của JSX vì nó được sử dụng để thêm màn hình một cách chính xác.
screenType, name, và screenId đều là tùy chọn — screenId được sử dụng (bên trong) nếu có (ví dụ khi chuyển JSX được sao chép từ đầu ra get-screen) nhưng không bắt buộc. Tên màn hình được lấy từ trường name của bình luận (hiển thị dưới dạng “Copy of <name>”), hoặc “Untitled” nếu không có.
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" -->
Đầu ra — ID của màn hình mới được thêm.
get-screen-image
Hiển thị một màn hình thành PNG và trả về nó dưới dạng hình ảnh nội dòng. Yêu cầu ứng dụng khách hỗ trợ các khối nội dung hình ảnh.
Đầu vào
Đầu ra — Khối nội dung hình ảnh MCP (
image/png).
Công cụ AI
create-new-design
Tạo một hoặc nhiều thiết kế màn hình từ lời nhắc văn bản. Bỏ qua fileId để tự động tạo tệp mới. Chặn cho đến khi tạo hoàn thành hoặc hết thời gian chờ (180 giây).
Đầu vào
Đầu ra —
{ fileId, screenIds }. Chuyển mỗi screenId đến get-screen-image để xem kết quả.
regenerate-design
Tạo lại các màn hình hiện có từ đầu hoặc với biến thể kiểu. Yêu cầu ít nhất một screenId trong targets. Chặn cho đến khi tạo hoàn thành hoặc hết thời gian chờ (180 giây).
Đầu vào
Đầu ra —
{ fileId, screenIds }. Chuyển mỗi screenId đến get-screen-image để xem kết quả.
expand-design
Thêm các màn hình tiếp theo vào thiết kế hiện có. Yêu cầu ít nhất một screenId trong targets và operationVariant bắt buộc. Chặn cho đến khi tạo hoàn thành hoặc hết thời gian chờ (180 giây).
Đầu vào
Đầu ra —
{ fileId, screenIds }. Chuyển mỗi screenId đến get-screen-image để xem kết quả.
edit-design
Sửa đổi các màn hình hiện có thông qua lời nhắc. Yêu cầu ít nhất một screenId trong targets. Chặn cho đến khi tạo hoàn thành hoặc hết thời gian chờ (180 giây).
Đầu vào
Đầu ra —
{ fileId, screenIds }. Chuyển mỗi screenId đến get-screen-image để xem kết quả.
upload-attachment
Tải lên một tệp để sử dụng làm tệp đính kèm trong create-new-design hoặc edit-design. Trả về { id, path, type, mimeType } — chuyển đối tượng này trực tiếp vào mảng attachments.
Hai chế độ:
Chế độ 1 — Màn hình theo ID
Chuyển screenId và fileId. Máy chủ tải nạp trạng thái màn hình từ cơ sở dữ liệu và hiển thị nó dưới dạng hình ảnh.
Chế độ 2 — Tệp bên ngoài
Chuyển nội dung tệp trực tiếp. Các tệp nhị phân phải được mã hóa base64; các tệp văn bản (bao gồm mã nguồn) được chuyển dưới dạng chuỗi UTF-8 thuần túy.
Kích thước tệp tối đa: 3 MB. Đối với hình ảnh lớn, ưu tiên
image/jpeg hơn image/png.
Đầu ra
type là "image" cho tải lên hình ảnh/PDF và "document" cho tệp văn bản/mã.
Công cụ trò chuyện
get-chat-history
Lấy lịch sử tin nhắn trò chuyện cho một tệp.
Đầu vào
Đầu ra — Đối tượng JSON với mảng
messages. Mỗi tin nhắn có type ("request" hoặc "response"), author ("human" hoặc "ai"), và content_type ("text", "summary", hoặc "followup").
Công cụ thiết kế
get-design-guidelines
Lấy các hướng dẫn thiết kế được lưu trữ cho một tệp.
Đầu vào
Đầu ra
guidelines là null nếu không có hướng dẫn nào được đặt.
update-design-guidelines
Đặt hoặc thay thế các hướng dẫn thiết kế cho một tệp. Các hướng dẫn được chuyển dưới dạng chuỗi văn bản thuần túy trong định dạng design.md của Google — không chuyển đối tượng hoặc JSON.
Máy chủ thực hiện xác thực mềm và có thể trả về phần Warnings: trong phản hồi liệt kê các vấn đề (khóa chưa biết, màu sắc không phải hex) đã được chấp nhận nhưng có thể bị AI bỏ qua. Hiển thị chúng cho người dùng.
Đầu vào
Quy tắc xác thực
- 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ệ
- Nội dung Markdown không được chứa các tiêu đề phần
##trùng lặp
"Design guidelines updated successfully", tùy chọn theo sau phần Warnings:.
delete-design-guidelines
Xóa các hướng dẫn thiết kế cho một tệp.
Đầu vào
Đầu ra —
"Design guidelines deleted successfully"
Công cụ Figma
import-figma
Nhập khung Figma vào tệp Flowstep dưới dạng các phần tử có thể chỉnh sửa trên canvas của nó. Nhập lại cùng một khung sẽ cập nhật nó tại chỗ. Tổ chức của tệp phải có Figma được kết nối trong cài đặt Flowstep.
Đầu vào
Đầu ra —
{ fileId, screenId }. screenId là id của phần tử màn hình được nhập — chuyển nó đến get-screen-image để xem kết quả. Khi URL trang nhập nhiều khung, screenId là null và frameCount được trả về thay thế.