content блоків вмісту MCP. Текстові інструменти повертають { type: "text", text: "<json-string>" }. Інструменти зображень повертають { type: "image", data: "<base64>", mimeType: "image/png" }. У разі помилки встановлюється isError: true, а текстовий блок містить повідомлення про помилку.
Інструменти файлів
list-files
Список файлів Flowstep поточного користувача.
Вхідні дані
Вихідні дані — JSON масив об’єктів файлів.
get-file
Отримати один файл за ID. Вміст файлу навмисне пропускається — використовуйте get-screen або get-screen-image для перевірки екранів і get-design-guidelines для отримання прикріплених рекомендацій.
Вхідні дані
Вихідні дані — JSON об’єкт файлу.
create-file
Створити новий файл Flowstep.
Вхідні дані
Вихідні дані — JSON об’єкт файлу з
id нового файлу.
id як fileId у подальших викликах інструментів.
update-file
Перейменувати файл.
Вхідні дані
Вихідні дані — Оновлений об’єкт файлу в такій же формі як
get-file.
delete-file
Назавжди видалити файл. name, яку ви передаєте, перевіряється проти фактичної назви файлу перед видаленням — якщо вона не збігається, видалення відміняється. Це запобігає випадковому видаленню неправильного файлу.
Вхідні дані
Вихідні дані —
"File deleted successfully"
Інструменти екранів
list-screens
Список усіх згенерованих екранів для файлу. Використовуйте повернені значення screenId для посилання на екрани в get-screen, get-screen-image, upload-attachment та як targets в edit-design, regenerate-design або expand-design.
Вхідні дані
Вихідні дані — JSON масив резюме екранів.
name — це назва екрана, призначена користувачем, або null, якщо екран без назви.
get-screen
Отримати код JSX для екрану, щоб мати можливість редагувати його або використовувати код поза межами Flowstep. Використовуйте get-screen-image для візуального попереднього перегляду.
Вхідні дані
Вихідні дані — Екран як код (JSX). Зверніть увагу на коментар першого рядка, який потрібен при використанні інструменту
add-screen.
add-screen
Додати новий екран до файлу Flowstep з необробленого рядка JSX.
Вхідні дані
Примітка — Коментар, подібний до наведеного нижче, ПОВИНЕН бути присутнім як перший рядок JSX, оскільки він використовується для правильного додавання екрану.
screenType, name та screenId все необов’язкові — screenId використовується (всередину), якщо він присутній (наприклад, при передачі JSX, скопійованого з вихідних даних get-screen), але не є обов’язковим. Назва екрану берється з поля name коментаря (відображається як “Copy of <name>”), або “Untitled”, якщо відсутня.
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" -->
Вихідні дані — Новий ID доданого екрану.
get-screen-image
Відрендерити екран у PNG та повернути його як вбудоване зображення. Потребує клієнта, який підтримує блоки вмісту зображень.
Вхідні дані
Вихідні дані — Блок вмісту MCP (
image/png).
Інструменти AI
create-new-design
Згенеруйте один або більше дизайнів екранів з текстового промпту. Пропустіть fileId, щоб автоматично створити новий файл. Блокує до завершення генерації або тайм-ауту (180 секунд).
Вхідні дані
Вихідні дані —
{ fileId, screenIds }. Передайте кожен screenId до get-screen-image для перегляду результатів.
regenerate-design
Переробіть існуючі екрани з нуля або з варіацією стилю. Потребує щонайменше одного screenId у targets. Блокує до завершення генерації або тайм-ауту (180 секунд).
Вхідні дані
Вихідні дані —
{ fileId, screenIds }. Передайте кожен screenId до get-screen-image для перегляду результатів.
expand-design
Додайте наступні екрани до існуючого дизайну. Потребує щонайменше одного screenId у targets та обов’язкового operationVariant. Блокує до завершення генерації або тайм-ауту (180 секунд).
Вхідні дані
Вихідні дані —
{ fileId, screenIds }. Передайте кожен screenId до get-screen-image для перегляду результатів.
edit-design
Змініть існуючі екрани за допомогою промпту. Потребує щонайменше одного screenId у targets. Блокує до завершення генерації або тайм-ауту (180 секунд).
Вхідні дані
Вихідні дані —
{ fileId, screenIds }. Передайте кожен screenId до get-screen-image для перегляду результатів.
upload-attachment
Завантажити файл для використання як вкладення в create-new-design або edit-design. Повертає { id, path, type, mimeType } — передайте цей об’єкт безпосередньо в масив attachments.
Два режими:
Режим 1 — Екран за ID
Передайте screenId та fileId. Сервер отримує стан екрану з бази даних і рендерить його як зображення.
Режим 2 — Зовнішній файл
Передайте вміст файлу безпосередньо. Двійкові файли повинні бути кодовані в base64; текстові файли (включаючи вихідний код) передаються як простий рядок UTF-8.
Максимальний розмір файлу: 3 MB. Для великих зображень переважайте
image/jpeg над image/png.
Вихідні дані
type — це "image" для завантаження зображень/PDF та "document" для текстових/кодових файлів.
Інструменти чату
get-chat-history
Отримати історію повідомлень чату для файлу.
Вхідні дані
Вихідні дані — JSON об’єкт з масивом
messages. Кожне повідомлення має type ("request" або "response"), author ("human" або "ai"), та content_type ("text", "summary" або "followup").
Інструменти дизайну
get-design-guidelines
Отримати рекомендації з дизайну, збережені для файлу.
Вхідні дані
Вихідні дані
guidelines — це null, якщо рекомендації не встановлені.
update-design-guidelines
Встановіть або замініть рекомендації з дизайну для файлу. Рекомендації передаються як простий текстовий рядок у форматі design.md Google — не передавайте об’єкт або JSON.
Сервер виконує м’яку валідацію та може повернути розділ Warnings: у відповіді, в якому наведені проблеми (невідомі ключі, не-hex кольори), які були прийняті, але можуть бути ігноровані AI. Викладіть їх користувачу.
Вхідні дані
Правила валідації
- Frontmatter повинна бути правильно відкрита та закрита
- Лінії Frontmatter повинні бути валідним YAML блоку
- Тіло Markdown не повинно містити дублювання
##заголовків розділів
"Design guidelines updated successfully", опціонально з подальшим розділом Warnings:.
delete-design-guidelines
Очистити рекомендації з дизайну для файлу.
Вхідні дані
Вихідні дані —
"Design guidelines deleted successfully"
Інструменти Figma
import-figma
Імпортуйте фігуру Figma до файлу Flowstep як редаговані елементи на його полотні. Повторне імпортування тієї ж фігури оновлює її на місці. Організація файлу повинна мати підключену Figma в параметрах Flowstep.
Вхідні дані
Вихідні дані —
{ fileId, screenId }. screenId — це id імпортованого елемента екрана — передайте його до get-screen-image, щоб переглянути результат. Коли URL сторінки імпортує кілька фігур, screenId дорівнює null і натомість повертається frameCount.