Przejdź do głównej treści
Po pomyślnym wykonaniu każde narzędzie, z wyjątkiem 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.
Każde narzędzie publikuje też adnotacje MCP, które informują klienta, co robi. 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, read lub write.
  • visibility: private, member lub public.
  • user_access_level: Twój dostęp do pliku: read lub write.

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 }
Tej operacji nie można cofnąć. Wszystkie ekrany w pliku zostaną usunięte.

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 przez add-screen-jsx).
  • fidelity: lofi, hifi lub ui.

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. Atrybuty data-id są dołączane tylko wtedy, gdy includeIds ma 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 do replace-screen-jsx, aby je zachować lub zaktualizować.
Wartości 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.
To zastępuje zawartość ekranu w miejscu.

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:
  1. Prześlij go za pomocą upload-attachment w trybie A (mimeType + fileName) i uruchom zwrócone uploadCommand.
  2. Jeśli type w odpowiedzi ma wartość "image", wklej assetUrl dokładnie tak, jak zwrócono, do img src albo bg-[url(assetUrl)].
Każdy inny adres URL obrazu pozostaw dokładnie tak, jak zwrócił go 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 tekst DESIGN.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 ##
Jeśli walidacja się nie powiedzie, wywołanie zwraca błąd zaczynający się od 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:
  1. Wywołaj upload-attachment tylko z mimeType i fileName (na przykład image/png i dog.png). Odpowiedź to przygotowane przesłanie, a nie zapisany plik:
  2. Zastąp LOCAL_FILE_PATH w uploadCommand bezwzględną ścieżką do swojego pliku i uruchom to dokładne polecenie w powłoce. Musi zakończyć się kodem 0. Token w signedUrl autoryzuje tylko to jedno przesłanie. Pominięcie tego kroku zostawia magazyn pusty, a narzędzie projektowe kończy się niepowodzeniem w kontroli wstępnej.
  3. Przekaż do tablicy attachments w ai-design-screens tylko { id, path, type }, bez signedUrl, uploadCommand i nextStep. Aby zamiast tego umieścić obraz we własnym JSX, wstaw assetUrl do img src lub bg-[url(...)] w JSX, który przekazujesz do add-screen-jsx lub replace-screen-jsx. Zobacz Obrazy w JSX.
Aby dołączyć zdalny plik, najpierw sam pobierz go na ścieżkę lokalną (na przykład za pomocą 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 dla add-screen-jsx lub replace-screen-jsx tylko wtedy, gdy type ma wartość "image" i dopiero po uruchomieniu uploadCommand z 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 wytyczne DESIGN.md pliku 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:
Wyjście: { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status: "generated", gdy zbudowano lub zmieniono ekrany. "chat", gdy Flowstep odpowiedziało bez budowania. Wtedy reply zawiera odpowiedź, a screenIds jest 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.
Ekrany, które poprosisz o edycję, są nadpisywane w miejscu.

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".
To nadpisuje zawartość ekranu w miejscu.

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.