get-screen-image, zwraca wynik dwukrotnie: jako structuredContent (zwalidowany względem opublikowanego schematu wyjścia narzędzia) oraz jako ten sam obiekt zserializowany w bloku tekstowym { type: "text", text: "<json-string>" }, dla klientów, które nie odczytują structured content. get-screen-image zwraca wyłącznie blok obrazu MCP: { type: "image", data: "<base64>", mimeType: "image/png" }.
W przypadku błędu ustawiane jest isError: true, a blok tekstowy zawiera krótki komunikat. Błędy, które możesz naprawić (niezgodność nazwy przy usuwaniu, nieprawidłowy link Figma, nieprawidłowe wytyczne projektowe, problem z załącznikiem lub przekroczenie czasu generowania), wyjaśniają, co trzeba poprawić. Pozostałe błędy zwracają ogólny komunikat, na przykład Failed to list files.
Cennik: trzy narzędzia projektowania AI, czyli
ai-design-screens, ai-generate-screen-variant i ai-edit-screen-variant, korzystają z tego samego limitu wiadomości co aplikacja Flowstep. Wszystkie pozostałe narzędzia są bezpłatne. Zobacz Limity użycia.delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens i ai-edit-screen-variant są oznaczone jako destrukcyjne, ponieważ usuwają lub nadpisują istniejącą treść.
Narzędzia plików
list-files
Wyświetla metadane Twoich plików Flowstep. Wywołaj to narzędzie najpierw, aby sprawdzić, czy istnieje już odpowiedni plik. Nie zwraca treści ekranów. Do tego użyj get-screen-image lub get-screen-jsx.
Wejście
Wyjście:
{ files }.
owner:true, jeśli utworzyłeś plik.shared_with_me:true, jeśli plik został udostępniony Ci bezpośrednio, a nie tylko przez organizację.url: otwiera plik w edytorze Flowstep.
get-file
Pobiera metadane pojedynczego pliku. Zawartość pliku jest celowo pomijana. Aby sprawdzić ekrany, użyj get-screen-image lub get-screen-jsx, a aby pobrać przypisane wytyczne, użyj get-design-guidelines. Jeśli masz oczekujące zaproszenie do pliku, wywołanie get-file je akceptuje.
Wejście
Wyjście:
{ file, user_access_level }.
access_level:private,readlubwrite.visibility:private,memberlubpublic.user_access_level: Twój dostęp do pliku:readlubwrite.
create-file
Tworzy pusty plik Flowstep bez ekranów. Aby w jednym kroku utworzyć plik i wygenerować ekrany, wywołaj zamiast tego ai-design-screens bez fileId. Użyj create-file w przepływach pracy zaczynających się od kodu, a następnie wywołaj add-screen-jsx.
Wejście
Wyjście:
{ file, user_access_level }, w tym samym formacie co get-file. owner ma zawsze wartość true, a user_access_level zawsze wartość write.
Zwrócone file.id użyj jako fileId w kolejnych wywołaniach narzędzi.
update-file
Zmienia nazwę pliku.
Wejście
Wyjście:
{ file, user_access_level }, w tym samym formacie co get-file.
delete-file
Trwale usuwa plik. Przekazana przez Ciebie name jest sprawdzana względem aktualnej nazwy wyświetlanej pliku przed usunięciem. Jeśli nie pasuje, usuwanie zostaje przerwane. Dzięki temu nie usuniesz przypadkowo niewłaściwego pliku. Agenty są instruowane, aby najpierw potwierdzić to z Tobą.
Wejście
Wyjście:
{ "deleted": true }
Narzędzia ekranów
list-screens
Wyświetla listę ekranów w pliku w kolejności na płótnie. Wywołaj to narzędzie po list-files, aby zobaczyć, co znajduje się w pliku. Zwrócone wartości screenId używaj w pozostałych narzędziach ekranów oraz w narzędziach projektowania AI.
Wejście
Wyjście:
{ screens }.
prompt: ostatni prompt generowania dla ekranu lub pusty ciąg znaków, jeśli ekran nigdy nie został wygenerowany (na przykład ekran dodany przezadd-screen-jsx).fidelity:lofi,hifilubui.
get-screen-image
Renderuje ekran do PNG i zwraca go jako obraz w rozmowie. Wymaga klienta obsługującego bloki obrazów. Wywołaj je raz dla każdego screenId zwróconego przez narzędzie projektowania AI, add-screen-jsx, replace-screen-jsx lub import-figma.
Wejście
Wyjście: blok obrazu MCP (
image/png). data to standardowy base64 bajtów PNG, a nie URI danych. To narzędzie nie zwraca structuredContent.
get-screen-jsx
Pobiera ekran jako JSX wraz z jego metadanymi. Dzięki temu możesz zbudować na jego podstawie w swojej bazie kodu albo go edytować i zapisać z powrotem za pomocą replace-screen-jsx. Aby uzyskać wizualny podgląd, użyj zamiast tego get-screen-image.
Wejście
Wyjście:
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
jsx: wyłącznie znaczniki. Atrybutydata-idsą dołączane tylko wtedy, gdyincludeIdsma wartośćtrue.prompt: ostatni prompt generowania lub pusty ciąg znaków, jeśli ekran nigdy nie został wygenerowany.fragments: wspólne elementy interfejsu zapisane na ekranie, takie jak pasek nawigacji, nagłówek lub logo, jako obiekty{ purpose, markup }. Pusta, jeśli ich nie ma. Przekaż je z powrotem doreplace-screen-jsx, aby je zachować lub zaktualizować.
fidelity, screenType i colorTheme znajdziesz w sekcji Wartości pól ekranu.
add-screen-jsx
Dodaje do pliku nowy ekran na podstawie napisanego przez Ciebie JSX. To ścieżka dla podejścia od kodu i jest bezpłatna. Użyj ai-design-screens, gdy chcesz, aby AI Flowstep zaprojektowało ekran. add-screen-jsx zawsze tworzy nowy ekran. Aby nadpisać istniejący, użyj replace-screen-jsx.
Aby pokazać przesłany obraz, zobacz Obrazy w JSX.
Jeśli nowy ekran ma być oparty na istniejącym, zacznij od get-screen-jsx (bez includeIds), aby pobrać name, fidelity, screenType, colorTheme i jsx, a następnie zmień to, co ma się różnić.
Wejście
Wyjście:
{ fileId, screenId }. Wywołaj get-screen-image z screenId, aby zobaczyć wynik.
replace-screen-jsx
Nadpisuje istniejący ekran napisanym przez Ciebie JSX. Ekran zachowuje swój screenId i pozycję na płótnie, a zagnieżdżone elementy otrzymują nowe identyfikatory. To ścieżka dla podejścia od kodu i jest bezpłatna. Do zmian wykonywanych przez AI użyj ai-design-screens lub ai-edit-screen-variant, a aby utworzyć nowy ekran, użyj add-screen-jsx.
Zacznij od get-screen-jsx (bez includeIds), a następnie zmień to, co ma się różnić. Aby pokazać przesłany obraz, zobacz Obrazy w JSX.
Wejście
Wyjście:
{ fileId, screenId }. Wywołaj get-screen-image z screenId, aby zobaczyć wynik.
rename-screen
Zmienia etykietę ekranu na płótnie, czyli nazwę pokazywaną w list-screens i w edytorze. Zmienia tylko etykietę, a nie układ, rozmiar ani zawartość ekranu. Do tego użyj ai-design-screens.
Wejście
Wyjście:
{ screenId, name }.
delete-screen
Trwale usuwa ekran z pliku. Przekazana przez Ciebie name jest sprawdzana względem aktualnej nazwy wyświetlanej ekranu. Jeśli nie pasuje, usuwanie zostaje przerwane. Agenty są instruowane, aby najpierw potwierdzić to z Tobą.
Wejście
Wyjście:
{ "deleted": true }
Obrazy w JSX
add-screen-jsx i replace-screen-jsx akceptują obrazy w src elementu img albo jako tło w className z użyciem bg-[url(...)]. Napisz tekst alt i dopasuj rozmiar każdego obrazu do jego zastosowania.
Aby umieścić własny obraz:
- Prześlij go za pomocą
upload-attachmentw trybie A (mimeType+fileName) i uruchom zwróconeuploadCommand. - Jeśli
typew odpowiedzi ma wartość"image", wklejassetUrldokładnie tak, jak zwrócono, doimg srcalbobg-[url(assetUrl)].
get-screen-jsx. Nie wstawiaj path, signedUrl ani uploadCommand do src.
Wartości pól ekranu
get-screen-jsx zwraca, a add-screen-jsx i replace-screen-jsx przyjmują następujące wartości:
Narzędzia wytycznych projektowych
Wytyczne projektowe to tekstDESIGN.md zapisany w pliku. Gdy są ustawione, są wstrzykiwane do każdej generacji AI dla tego pliku. Zobacz Wytyczne projektowe.
get-design-guidelines
Pobiera wytyczne projektowe przypisane do pliku.
Wejście
Wyjście:
{ guidelines }.
guidelines ma wartość null, jeśli wytyczne nie zostały ustawione.
update-design-guidelines
Ustawia lub zastępuje wytyczne projektowe pliku. Przekaż wytyczne jako zwykły ciąg znaków w formacie DESIGN.md Google, a nie jako obiekt ani JSON. Jeśli czytasz je z pliku, przekaż tekst tego pliku.
Wejście
Reguły walidacji
- Frontmatter musi być poprawnie otwarty i zamknięty
- Linie frontmatter muszą być poprawnym YAML w stylu blokowym
- Treść Markdown nie może zawierać zduplikowanych nagłówków sekcji
##
Invalid design guidelines:.
Wyjście: { updated, warnings? }.
warnings zawiera miękkie problemy walidacji (nieznane klucze, kolory niebędące w formacie szesnastkowym), które zostały zaakceptowane, ale AI może je zignorować. Pole jest pomijane, gdy nie ma ostrzeżeń. Przekaż je użytkownikowi.
delete-design-guidelines
Czyści wytyczne projektowe pliku. Usunięcie nieistniejących wytycznych nie wykonuje żadnej operacji.
Wejście
Wyjście:
{ "deleted": true }
Narzędzia czatu
get-chat-history
Pobiera rozmowę projektową powiązaną z plikiem, czyli czat Flowstep tego pliku, a nie rozmowę w Twoim kliencie MCP. Użyj go, aby wznowić wcześniejszą pracę nad plikiem.
Wejście
Wyjście:
{ messages }. Lista messages jest pusta, jeśli w pliku nie ma rozmowy projektowej. Każda wiadomość ma type ("request" lub "response"), author ("human" lub "ai") oraz content_type. Wiadomości odpowiedzi używają wartości "text", "summary" lub "followup".
Narzędzia załączników
upload-attachment
Przesyła plik referencyjny, który ma zostać użyty jako załącznik w ai-design-screens, albo obraz do umieszczenia we własnym JSX za pomocą add-screen-jsx lub replace-screen-jsx. ai-generate-screen-variant i ai-edit-screen-variant nie przyjmują załączników. Bajty pliku nigdy nie przechodzą przez model, a serwer nigdy nie pobiera adresów URL w Twoim imieniu. Aby odwołać się do strony internetowej, dołącz jej adres URL do message w ai-design-screens.
Dostępne są dwa tryby. Użyj dokładnie jednego i nie łącz ich.
Tryb A: pliki i obrazy (mimeType + fileName)
Wymagany trzyetapowy przepływ dla każdego obrazu, pliku PDF lub większego pliku tekstowego:
-
Wywołaj
upload-attachmenttylko zmimeTypeifileName(na przykładimage/pngidog.png). Odpowiedź to przygotowane przesłanie, a nie zapisany plik: -
Zastąp
LOCAL_FILE_PATHwuploadCommandbezwzględną ścieżką do swojego pliku i uruchom to dokładne polecenie w powłoce. Musi zakończyć się kodem 0. Token wsignedUrlautoryzuje tylko to jedno przesłanie. Pominięcie tego kroku zostawia magazyn pusty, a narzędzie projektowe kończy się niepowodzeniem w kontroli wstępnej. -
Przekaż do tablicy
attachmentswai-design-screenstylko{ id, path, type }, bezsignedUrl,uploadCommandinextStep. Aby zamiast tego umieścić obraz we własnym JSX, wstawassetUrldoimg srclubbg-[url(...)]w JSX, który przekazujesz doadd-screen-jsxlubreplace-screen-jsx. Zobacz Obrazy w JSX.
curl), a następnie wykonaj te same trzy kroki. Nigdy nie przekazuj adresu URL do upload-attachment.
Tryb B: krótki tekst (
text + mimeType)
Przesyła tekst, który jest już w kontekście. Nie jest potrzebne żadne polecenie powłoki. Odpowiedź jest gotowa do użycia od razu:
Przekaż wynikowe
{ id, path, type } do tablicy attachments w ai-design-screens.
Maksymalny rozmiar pliku wynosi 3 MB w obu trybach, a pliki PDF są ograniczone do 100 stron.
Wyjście: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
type:"image"dla plików graficznych i"document"dla plików PDF i plików tekstowych.assetUrl: adres URL przesłanego pliku, zwracany w obu trybach. Użyj go w JSX dlaadd-screen-jsxlubreplace-screen-jsxtylko wtedy, gdytypema wartość"image"i dopiero po uruchomieniuuploadCommandz trybu A.signedUrl,uploadCommand,nextStep: ustawiane tylko w trybie A. Nie przekazuj ich do narzędzi projektowych.
Narzędzia Figma
import-figma
Importuje ramkę Figma do pliku Flowstep jako edytowalne elementy na jego płótnie. Każdy import dodaje nowy ekran. Zaimportowanie tej samej ramki dwa razy daje dwa ekrany, więc jeśli chcesz ją zastąpić, usuń starą za pomocą delete-screen. Organizacja, do której należy plik, musi mieć połączoną Figmę w ustawieniach Flowstep.
Wejście
Wyjście:
{ fileId, screenId, frameCount? }. screenId to zaimportowany ekran. Przekaż go do get-screen-image, aby zobaczyć wynik. Gdy adres URL strony importuje wiele ramek, screenId ma wartość null, a zamiast niego zwracane jest frameCount. Wywołaj wtedy list-screens, a następnie get-screen-image dla każdego nowego ekranu.
Narzędzia planu i rozliczeń
get-plan-details
Pobiera plan Flowstep Twojej organizacji, status subskrypcji, zużycie i pozostały limit. Nie przyjmuje żadnych danych wejściowych, a organizacja jest ustalana na podstawie zalogowanego użytkownika. Użyj go, aby sprawdzić swój limit przed wywołaniem narzędzi projektowania AI.
Wyjście: { plan, subscription, limits, usage, remaining }.
Limity zależą od planu. Zobacz Cennik oraz Limity użycia.
Narzędzia projektowania AI
Te trzy narzędzia projektują na podstawie opisu lub presetu. Nigdy nie przyjmują ani nie wykorzystują ponownie JSX. Każde wywołanie korzysta z tego samego limitu wiadomości co aplikacja Flowstep i blokuje się do zakończenia generacji lub przekroczenia limitu czasu (180 sekund).
Wszystkie trzy zwracają
{ status, fileId, screenIds, designGuidelinesUpdated }. Wywołaj get-screen-image raz dla każdego screenId, aby zobaczyć wynik.
designGuidelinesUpdated: krótkie podsumowanie zmiany, gdy wytyczneDESIGN.mdpliku zostały automatycznie zaktualizowane podczas tej tury. W przeciwnym razie wartośćnull.
ai-design-screens
Generuje jeden lub więcej nowych ekranów, zmienia istniejące ekrany w miejscu albo wykonuje jedno i drugie w jednym wywołaniu, na podstawie opisu tekstowego. Dotyczy to nowych przepływów, motywów, treści, układu lub skoordynowanych zmian w kilku ekranach. To ten sam agent projektowy co czat w edytorze Flowstep. Na podstawie message i elementIds decyduje, co zbudować, a co zmienić.
Pomiń fileId, aby rozpocząć nowy plik. Przekaż fileId, aby pracować w istniejącym pliku. Jeśli żądanie może dotyczyć pliku, który już masz, Twój agent powinien najpierw sprawdzić list-files i list-screens. Dla następnego kroku, stanu błędu lub pustego stanu albo wariantu platformy dla jednego ekranu użyj ai-generate-screen-variant. Dla gotowego presetu edycji lub przeprojektowania jednego ekranu użyj ai-edit-screen-variant. Jeśli masz już JSX, użyj zamiast tego add-screen-jsx lub replace-screen-jsx.
Wejście
Przykład: edycja jednego ekranu i dodanie drugiego w jednym wywołaniu:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status:"generated", gdy zbudowano lub zmieniono ekrany."chat", gdy Flowstep odpowiedziało bez budowania. Wtedyreplyzawiera odpowiedź, ascreenIdsjest puste. Jeśli Twoje zadanie jest niejednoznaczne, Twój agent powinien poprosić Cię o doprecyzowanie i ponownie wywołać narzędzie.screenIds: każdy ekran zbudowany lub zmieniony podczas wywołania, w tym ekrany edytowane w miejscu. Jeśli wywołanie przekroczy limit czasu po zbudowaniu części ekranów, zwraca te ekrany zamiast błędu.
ai-generate-screen-variant
Dodaje nowy ekran wyprowadzony z dokładnie jednego istniejącego ekranu: następny krok w przepływie, stan błędu lub pusty stan albo wersję dla innej platformy. Oryginalny ekran pozostaje bez zmian. Aby dodać ekran, który nie jest wariantem istniejącego (na przykład ekran ustawień), użyj ai-design-screens z fileId.
Wejście
Wyjście:
{ status, fileId, screenIds, designGuidelinesUpdated }. status ma zawsze wartość "generated".
ai-edit-screen-variant
Zmienia dokładnie jeden istniejący ekran w miejscu, używając presetu: nadaje mu motyw lub je dopracowuje, wypróbowuje inny układ lub styl wizualny albo przeprojektowuje go od zera. Dla nowych ekranów, instrukcji w dowolnej formie lub precyzyjnej edycji poszczególnych elementów użyj ai-design-screens.
Wejście
Wyjście:
{ status, fileId, screenIds, designGuidelinesUpdated }. status ma zawsze wartość "generated".
Zmienione nazwy narzędzi
Nazwy narzędzi zmieniły się we wrześniu i październiku 2026 roku. Jeśli masz prompty, skrypty lub instrukcje dla agentów, które używają starych nazw, zaktualizuj je:
Zmieniły się także dane wejściowe: narzędzia projektowania AI przyjmują
elementIds (lub pojedyncze screenId dla narzędzi wariantów) zamiast targets, add-screen-jsx przyjmuje jsx i jawne pola metadanych zamiast jsxContent z komentarzem metadanych, create-file przyjmuje name zamiast title, a narzędzia wytycznych projektowych przyjmują fileId zamiast resourceId i linkedTo.