content z blokami zawartości MCP. Narzędzia tekstowe zwracają { type: "text", text: "<json-string>" }. Narzędzia obrazów zwracają { type: "image", data: "<base64>", mimeType: "image/png" }. W przypadku błędu ustawiany jest isError: true i blok tekstowy zawiera komunikat o błędzie.
Narzędzia do pracy z plikami
list-files
Wyświetl pliki Flowstep dla bieżącego użytkownika.
Input
Output — Tablica JSON obiektów plików.
get-file
Pobierz pojedynczy plik na podstawie ID. Zawartość pliku jest celowo pominięta — użyj get-screen lub get-screen-image do inspekcji ekranów, a get-design-guidelines do pobrania załączonych wytycznych.
Input
Output — Obiekt JSON pliku.
create-file
Utwórz nowy plik Flowstep.
Input
Output — Obiekt JSON pliku z ID nowego pliku.
id jako fileId w kolejnych wywołaniach narzędzi.
update-file
Zmień nazwę pliku.
Input
Output — Zaktualizowany obiekt pliku w tym samym formacie co
get-file.
delete-file
Trwale usuń plik. Nazwa, którą przechodzisz, jest weryfikowana względem rzeczywistej nazwy pliku przed usunięciem — jeśli nie pasuje, usunięcie zostanie przerwane. Zapobiega to przypadkowemu usunięciu niewłaściwego pliku.
Input
Output —
"File deleted successfully"
Narzędzia do pracy z ekranami
list-screens
Wyświetl wszystkie wygenerowane ekrany dla pliku. Użyj zwróconych wartości screenId do odniesienia ekranów w get-screen, get-screen-image, upload-attachment i jako targets w edit-design, regenerate-design lub expand-design.
Input
Output — Tablica JSON podsumowań ekranów.
name to przypisana przez użytkownika nazwa ekranu, lub null jeśli bez nazwy.
get-screen
Pobierz kod JSX dla ekranu, co pozwala edytować lub używać kod poza Flowstep. Użyj get-screen-image do podglądu wizualnego.
Input
Output — Ekran jako kod (JSX). Zwróć uwagę na komentarz w pierwszej linii, który jest wymagany podczas korzystania z narzędzia
add-screen.
add-screen
Dodaje nowy ekran do pliku Flowstep ze surowego ciągu JSX.
Input
Note - Komentarz podobny do poniższego MUSI być obecny jako pierwsza linia JSX, ponieważ jest używany do prawidłowego dodania ekranu.
screenType, name i screenId są wszystkie opcjonalne — screenId jest używany (wewnętrznie), jeśli jest obecny (np. podczas przekazywania JSX skopiowanego z wyjścia get-screen), ale nie jest obowiązkowy. Nazwa ekranu jest pobierana z pola name komentarza (wyświetlane jako “Copy of <name>”), lub “Untitled” jeśli jest nieobecne.
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" -->
Output — Nowo dodany ID ekranu.
get-screen-image
Wyrenderuj ekran do PNG i zwróć go jako obraz wbudowany. Wymaga klienta, który obsługuje bloki zawartości obrazu.
Input
Output — Blok zawartości MCP (
image/png).
Narzędzia AI
create-new-design
Generuj jeden lub więcej projektów ekranów z prompta tekstowego. Pomiń fileId, aby automatycznie utworzyć nowy plik. Blokuje się aż do ukończenia generowania lub przekroczenia limitu czasu (180 sekund).
Input
Output —
{ fileId, screenIds }. Przechodzę każdy screenId do get-screen-image, aby zobaczyć wyniki.
regenerate-design
Przywróć istniejące ekrany od nowa lub z wariacją stylu. Wymaga co najmniej jednego screenId w targets. Blokuje się aż do ukończenia generowania lub przekroczenia limitu czasu (180 sekund).
Input
Output —
{ fileId, screenIds }. Przechodzę każdy screenId do get-screen-image, aby zobaczyć wyniki.
expand-design
Dodaj następne ekrany do istniejącego projektu. Wymaga co najmniej jednego screenId w targets i obowiązkowego operationVariant. Blokuje się aż do ukończenia generowania lub przekroczenia limitu czasu (180 sekund).
Input
Output —
{ fileId, screenIds }. Przechodzę każdy screenId do get-screen-image, aby zobaczyć wyniki.
edit-design
Modyfikuj istniejące ekrany za pośrednictwem prompta. Wymaga co najmniej jednego screenId w targets. Blokuje się aż do ukończenia generowania lub przekroczenia limitu czasu (180 sekund).
Input
Output —
{ fileId, screenIds }. Przechodzę każdy screenId do get-screen-image, aby zobaczyć wyniki.
upload-attachment
Prześlij plik do użytku jako załącznik w create-new-design lub edit-design. Zwraca { id, path, type, mimeType } — przechodzę ten obiekt bezpośrednio do tablicy attachments.
Dwa tryby:
Mode 1 — Screen by ID
Przechodzę screenId i fileId. Serwer pobiera stan ekranu z bazy danych i renderuje go jako obraz.
Mode 2 — External file
Przechodzę zawartość pliku bezpośrednio. Pliki binarne muszą być zakodowane base64; pliki tekstowe (włączając kod źródłowy) są przechodzane jako zwykłe ciągi UTF-8.
Maksymalny rozmiar pliku: 3 MB. Dla dużych obrazów preferuj
image/jpeg zamiast image/png.
Output
type to "image" dla przesłań obrazu/PDF i "document" dla plików tekstowych/kodowych.
Narzędzia czatu
get-chat-history
Pobierz historię wiadomości czatu dla pliku.
Input
Output — Obiekt JSON z tablicą
messages. Każda wiadomość ma type ("request" lub "response"), author ("human" lub "ai") i content_type ("text", "summary" lub "followup").
Narzędzia projektowe
get-design-guidelines
Pobierz wytyczne projektowe przechowywane dla pliku.
Input
Output
guidelines to null jeśli żadne wytyczne nie zostały ustawione.
update-design-guidelines
Ustaw lub zastąp wytyczne projektowe dla pliku. Wytyczne są przechodzane jako zwykły ciąg tekstowy w formacie design.md Google — nie przechodzaj obiektu ani JSON.
Serwer wykonuje łagodną walidację i może zwrócić sekcję Warnings: w odpowiedzi zawierającą problemy (nieznane klucze, kolory nie-hex), które były zaakceptowane, ale mogą być zignorowane przez AI. Wyświetl je użytkownikowi.
Input
Validation rules
- Frontmatter muszą być otwarte i zamknięte prawidłowo
- Linie Frontmatter muszą być prawidłowymi YAML w stylu bloku
- Treść Markdown nie powinna zawierać zduplikowanych nagłówków
##
"Design guidelines updated successfully", opcjonalnie następnie sekcja Warnings:.
delete-design-guidelines
Wyczyść wytyczne projektowe dla pliku.
Input
Output —
"Design guidelines deleted successfully"
Narzędzia Figmy
import-figma
Importuj ramkę Figmy do pliku Flowstep jako edytowalne elementy na kanwie. Ponowne importowanie tej samej ramki zaktualizuje ją w miejscu. Organizacja pliku musi mieć najpierw połączoną Figmę w ustawieniach Flowstep.
Input
Output —
{ fileId, screenId }. screenId to id importowanego elementu ekranu — przechodzę go do get-screen-image, aby zobaczyć wynik. Gdy URL strony importuje wiele ramek, screenId to null i zamiast tego zwracany jest frameCount.