get-screen-image, повертає свій результат двічі: як structuredContent (перевірений за опублікованою схемою вихідних даних інструмента) і як той самий об’єкт, серіалізований у текстовий блок { type: "text", text: "<json-string>" } для клієнтів, які не читають structured content. 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. Усі інші інструменти безкоштовні. Див. Ліміти використання.delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens і ai-edit-screen-variant позначено як деструктивні, оскільки вони видаляють або перезаписують наявний вміст.
Інструменти для файлів
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 без екранів. Щоб створити файл і згенерувати екрани за один крок, викличте натомість ai-design-screens без fileId. Використовуйте 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 і поверніть його як вбудоване зображення. Потрібен клієнт, який підтримує блоки вмісту зображень. Викличте його по одному разу для кожного screenId, який повернув інструмент AI-дизайну, add-screen-jsx, replace-screen-jsx або import-figma.
Вхідні дані
Вихідні дані: блок вмісту зображення MCP (
image/png). data містить стандартний base64 байтів PNG, а не data URI. Для цього інструмента немає structuredContent.
get-screen-jsx
Отримайте екран як JSX разом із його метаданими, щоб створити на його основі код у своїй кодовій базі або відредагувати його й записати назад через replace-screen-jsx. Для візуального перегляду натомість використовуйте get-screen-image.
Вхідні дані
Вихідні дані:
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
jsx: лише розмітка. Атрибутиdata-idвключаються, лише якщоincludeIdsмає значенняtrue.prompt: останній промпт генерації або порожній рядок, якщо екран ніколи не генерувався.fragments: спільні елементи інтерфейсу, збережені на екрані, як-от панель навігації, заголовок або логотип, у вигляді об’єктів{ purpose, markup }. Порожній, якщо їх немає. Передайте їх назад уreplace-screen-jsx, щоб зберегти або оновити.
fidelity, screenType і colorTheme див. у розділі Значення полів екрана.
add-screen-jsx
Додайте до файлу новий екран із JSX, який ви написали. Це шлях, що починається з коду, і він безкоштовний. Використовуйте ai-design-screens, коли хочете, щоб ШІ Flowstep розробив екран. add-screen-jsx завжди створює новий екран. Щоб перезаписати наявний, використовуйте replace-screen-jsx.
Щоб показати завантажене вами зображення, див. Зображення в JSX.
Якщо новий екран базується на наявному, почніть з get-screen-jsx (без includeIds) для name, fidelity, screenType, colorTheme і jsx, а потім змініть те, що має відрізнятися.
Вхідні дані
Вихідні дані:
{ fileId, screenId }. Викличте get-screen-image з screenId, щоб переглянути результат.
replace-screen-jsx
Перезапишіть наявний екран JSX, який ви написали. Екран зберігає свій screenId і позицію на полотні. Вкладені елементи отримують нові ID. Це шлях, що починається з коду, і він безкоштовний. Для змін за допомогою ШІ використовуйте ai-design-screens або ai-edit-screen-variant, а щоб створити новий екран, використовуйте add-screen-jsx.
Почніть з get-screen-jsx (без includeIds), а потім змініть те, що має відрізнятися. Щоб показати завантажене зображення, див. Зображення в JSX.
Вхідні дані
Вихідні дані:
{ fileId, screenId }. Викличте get-screen-image з screenId, щоб переглянути результат.
rename-screen
Перейменуйте мітку екрана на полотні. Це назва, яку показують list-screens і редактор. Він змінює лише мітку, а не макет, розмір або вміст екрана. Для цього використовуйте ai-design-screens.
Вхідні дані
Вихідні дані:
{ screenId, name }.
delete-screen
Остаточно видаліть екран із файлу. name, який ви передаєте, перевіряють щодо поточної відображуваної назви екрана. Якщо вона не збігається, видалення скасовується. Агентів інструктують спершу підтвердити дію з вами.
Вхідні дані
Вихідні дані:
{ "deleted": true }
Зображення в JSX
add-screen-jsx і replace-screen-jsx приймають зображення в src тегу img або як фон у 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, збережений у файлі. Якщо їх задано, їх додають до кожної генерації ШІ для цього файлу. Див. Рекомендації з дизайну.
get-design-guidelines
Отримайте рекомендації з дизайну, прикріплені до файлу.
Вхідні дані
Вихідні дані:
{ guidelines }.
guidelines має значення null, якщо рекомендації не задано.
update-design-guidelines
Задайте або замініть рекомендації з дизайну для файлу. Передавайте рекомендації як простий рядок у форматі DESIGN.md від Google, а не як об’єкт чи JSON. Якщо ви читаєте їх із файлу, передайте текст цього файлу.
Вхідні дані
Правила перевірки
- Frontmatter має бути коректно відкрито та закрито
- Рядки frontmatter мають бути дійсним YAML у блочному стилі
- Основна частина Markdown не повинна містити повторюваних заголовків розділів
##
Invalid design guidelines:.
Вихідні дані: { updated, warnings? }.
warnings містить м’які проблеми перевірки (невідомі ключі, кольори, які не є HEX). Їх прийнято, але ШІ може їх ігнорувати. Якщо немає жодної проблеми, поле пропускається. Повідомте про них користувачу.
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, або зображення, щоб розмістити його у вашому JSX через add-screen-jsx або replace-screen-jsx. ai-generate-screen-variant і ai-edit-screen-variant не приймають вкладень. Байти файлів ніколи не проходять через модель, а сервер ніколи не завантажує URL від вашого імені. Щоб посилатися на веб-сторінку, натомість включіть її URL у message для ai-design-screens.
Є два режими. Використовуйте лише один з них і не комбінуйте їх.
Режим A: файли й зображення (mimeType + fileName)
Обов’язковий трикроковий процес для будь-якого зображення, PDF або більшого текстового файлу:
-
Викличте
upload-attachmentлише зmimeTypeіfileName(наприклад,image/pngіdog.png). Відповідь — це підготовлене завантаження, а не збережений файл: -
Замініть
LOCAL_FILE_PATHуuploadCommandабсолютним шляхом до вашого файлу та виконайте точно цю команду у своїй оболонці. Вона має завершитися з кодом 0. Токен уsignedUrlдозволяє лише це одне завантаження. Якщо пропустити цей крок, сховище залишиться порожнім, і інструмент дизайну не пройде попередню перевірку. -
Передавайте до масиву
attachmentsуai-design-screensлише{ id, path, type }, а неsignedUrl,uploadCommandабоnextStep. Щоб натомість розмістити зображення у вашому JSX, вставтеassetUrlуimg srcабоbg-[url(...)]JSX, який ви передаєте вadd-screen-jsxабоreplace-screen-jsx. Див. Зображення в JSX.
curl), а потім виконайте ті самі три кроки. Ніколи не передавайте URL в upload-attachment.
Режим B: короткий текст (
text + mimeType)
Завантажте текст, який уже є в контексті. Команда оболонки не потрібна. Відповідь готова до використання одразу:
Передайте отримані
{ id, path, type } до масиву attachments у ai-design-screens.
Максимальний розмір файлу в обох режимах становить 3 MB. PDF обмежено 100 сторінками.
Вихідні дані: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
type:"image"для файлів зображень і"document"для PDF та текстових файлів.assetUrl: URL завантаженого файлу, який повертається в обох режимах. Використовуйте його в JSX дляadd-screen-jsxабоreplace-screen-jsxлише тоді, колиtypeдорівнює"image", і лише після того, як виконаноuploadCommandіз режиму A.signedUrl,uploadCommand,nextStep: встановлюються лише в режимі A. Не передавайте їх в інструменти дизайну.
Інструменти для Figma
import-figma
Імпортуйте фрейм Figma у файл Flowstep як редаговані елементи на його полотні. Кожен імпорт додає новий екран. Імпорт того самого фрейму двічі дасть вам два екрани, тож видаліть старий через delete-screen, якщо хотіли його замінити. Організація, до якої належить файл, має підключити Figma в налаштуваннях Flowstep.
Вхідні дані
Вихідні дані:
{ 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 }. Викличте get-screen-image по одному разу для кожного screenId, щоб переглянути результат.
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", коли екрани було створено або змінено."chat", коли Flowstep відповів без створення екранів. У цьому разіreplyмістить його відповідь, аscreenIdsпорожній. Якщо ваше завдання неоднозначне, ваш агент має попросити вас уточнити його та викликати інструмент знову.screenIds: кожен екран, який було створено або змінено під час виклику, включно з екранами, відредагованими на місці. Якщо виклик завершується тайм-аутом після створення частини екранів, він повертає ці екрани замість помилки.
ai-generate-screen-variant
Додайте новий екран, похідний від рівно одного наявного екрана. Це наступний крок у потоці, стан помилки чи порожній стан або версія для іншої платформи. Вихідний екран залишається без змін. Щоб додати екран, який не є варіантом наявного (наприклад, екран налаштувань), використовуйте ai-design-screens з fileId.
Вхідні дані
Вихідні дані:
{ status, fileId, screenIds, designGuidelinesUpdated }. status завжди має значення "generated".
ai-edit-screen-variant
Змініть рівно один наявний екран на місці за допомогою пресета. Можна оформити його темою або відполірувати, спробувати інший макет чи візуальний стиль або переробити з нуля. Для нових екранів, вільних інструкцій або точного редагування окремих елементів використовуйте ai-design-screens.
Вхідні дані
Вихідні дані:
{ status, fileId, screenIds, designGuidelinesUpdated }. status завжди має значення "generated".
Перейменовані інструменти
Назви інструментів змінилися у вересні та жовтні 2026 року. Якщо у вас є промпти, скрипти або інструкції для агентів зі старими назвами, оновіть їх:
Змінилися також вхідні дані: інструменти AI-дизайну приймають
elementIds (або один screenId для інструментів варіантів) замість targets. add-screen-jsx приймає jsx і явні поля метаданих замість jsxContent з коментарем метаданих. create-file приймає name замість title. Інструменти рекомендацій з дизайну приймають fileId замість resourceId і linkedTo.