get-screen-image, returnează rezultatul de două ori: ca structuredContent (validat în raport cu schema de ieșire publicată a instrumentului) și ca același obiect serializat într-un bloc de text, { type: "text", text: "<json-string>" }, pentru clienții care nu citesc conținutul structurat. get-screen-image returnează doar un bloc de imagine MCP: { type: "image", data: "<base64>", mimeType: "image/png" }.
La eroare, isError: true este setat, iar blocul de text conține un mesaj scurt de eroare. Erorile la care poți reacționa (o nepotrivire de nume la ștergere, un link Figma invalid, ghiduri de design invalide, o problemă cu un atașament sau expirarea generării) explică ce trebuie corectat. Alte erori returnează un mesaj generic, cum ar fi Failed to list files.
Prețuri: cele trei instrumente de design AI, adică
ai-design-screens, ai-generate-screen-variant și ai-edit-screen-variant, folosesc aceeași limită de mesaje ca aplicația Flowstep. Toate celelalte instrumente sunt gratuite. Consultă Limite de utilizare.delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens și ai-edit-screen-variant sunt marcate ca distructive, deoarece elimină sau suprascriu conținut existent.
Instrumente pentru fișiere
list-files
Listează metadatele fișierelor tale Flowstep. Apelează-l primul ca să verifici dacă există deja un fișier relevant. Nu returnează conținutul ecranelor. Pentru asta folosește get-screen-image sau get-screen-jsx.
Intrare
Ieșire:
{ files }.
owner:truedacă tu ai creat fișierul.shared_with_me:truedacă fișierul ți-a fost partajat direct, nu doar prin organizația ta.url: deschide fișierul în editorul Flowstep.
get-file
Obține metadatele unui singur fișier. Conținutul fișierului este omis intenționat. Folosește get-screen-image sau get-screen-jsx ca să inspectezi ecranele și get-design-guidelines ca să obții ghidurile atașate. Dacă ai o invitație în așteptare pentru fișier, apelul get-file o acceptă.
Intrare
Ieșire:
{ file, user_access_level }.
access_level:private,readsauwrite.visibility:private,membersaupublic.user_access_level: accesul tău la fișier:readsauwrite.
create-file
Creează un fișier Flowstep gol, fără ecrane. Ca să creezi un fișier și să generezi ecrane într-un singur pas, apelează în schimb ai-design-screens fără fileId. Folosește create-file pentru fluxurile de lucru din cod, urmat de add-screen-jsx.
Intrare
Ieșire:
{ file, user_access_level }, în aceeași formă ca get-file. owner este întotdeauna true, iar user_access_level este întotdeauna write.
Folosește file.id returnat ca fileId în apelurile de instrumente următoare.
update-file
Redenumește un fișier.
Intrare
Ieșire:
{ file, user_access_level }, în aceeași formă ca get-file.
delete-file
Șterge definitiv un fișier. name pe care îl transmiți este verificat în raport cu numele afișat curent al fișierului înainte de ștergere. Dacă nu se potrivește, ștergerea este anulată. Astfel se previne ștergerea accidentală a fișierului greșit. Agenții sunt instruiți să te întrebe mai întâi pe tine.
Intrare
Ieșire:
{ "deleted": true }
Instrumente pentru ecrane
list-screens
Listează ecranele dintr-un fișier, în ordinea canvasului. Apelează-l după list-files ca să vezi ce există deja într-un fișier. Folosește valorile screenId returnate cu celelalte instrumente pentru ecrane și cu instrumentele de design AI.
Intrare
Ieșire:
{ screens }.
prompt: ultimul prompt de generare pentru ecran sau un șir gol, dacă ecranul nu a fost niciodată generat (de exemplu, un ecran adăugat cuadd-screen-jsx).fidelity:lofi,hifisauui.
get-screen-image
Randează un ecran ca PNG și îl returnează ca imagine în linie. Necesită un client care acceptă blocuri de conținut de tip imagine. Apelează-l o dată pentru fiecare screenId returnat de un instrument de design AI, de add-screen-jsx, de replace-screen-jsx sau de import-figma.
Intrare
Ieșire: bloc de conținut imagine MCP (
image/png). data este base64 standard al octeților PNG, nu un URI de date. Acest instrument nu are structuredContent.
get-screen-jsx
Obține un ecran ca JSX, împreună cu metadatele sale, ca să construiești pornind de la el în baza ta de cod sau ca să îl editezi și să îl scrii înapoi cu replace-screen-jsx. Pentru o previzualizare vizuală, folosește în schimb get-screen-image.
Intrare
Ieșire:
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
jsx: doar markup. Atributeledata-idsunt incluse numai cândincludeIdsestetrue.prompt: ultimul prompt de generare sau un șir gol, dacă ecranul nu a fost niciodată generat.fragments: elemente comune de interfață stocate pe ecran, cum ar fi o bară de navigare, un antet sau un logo, sub formă de obiecte{ purpose, markup }. Este gol dacă nu există. Transmite-le înapoi cătrereplace-screen-jsxca să le păstrezi sau să le actualizezi.
fidelity, screenType și colorTheme.
add-screen-jsx
Adaugă un ecran nou într-un fișier, din JSX pe care l-ai scris. Este calea din cod și este gratuită. Folosește ai-design-screens când vrei ca AI-ul Flowstep să proiecteze ecranul. add-screen-jsx creează întotdeauna un ecran nou. Ca să suprascrii unul existent, folosește replace-screen-jsx.
Pentru a afișa o imagine pe care ai încărcat-o, consultă Imagini în JSX.
Când ecranul nou se bazează pe unul existent, pornește de la get-screen-jsx (fără includeIds) pentru name, fidelity, screenType, colorTheme și jsx, apoi schimbă ce trebuie să difere.
Intrare
Ieșire:
{ fileId, screenId }. Apelează get-screen-image cu screenId ca să vezi rezultatul.
replace-screen-jsx
Suprascrie un ecran existent cu JSX pe care l-ai scris. Ecranul își păstrează screenId și poziția pe canvas. Elementele imbricate primesc ID-uri noi. Este calea din cod și este gratuită. Pentru modificările AI, folosește ai-design-screens sau ai-edit-screen-variant. Ca să creezi un ecran nou, folosește în schimb add-screen-jsx.
Pornește de la get-screen-jsx (fără includeIds), apoi schimbă ce trebuie să difere. Pentru a afișa o imagine pe care ai încărcat-o, consultă Imagini în JSX.
Intrare
Ieșire:
{ fileId, screenId }. Apelează get-screen-image cu screenId ca să vezi rezultatul.
rename-screen
Redenumește eticheta de pe canvas a unui ecran, adică numele afișat de list-screens și în editor. Modifică doar eticheta, nu layoutul, dimensiunea sau conținutul ecranului. Pentru acestea, folosește ai-design-screens.
Intrare
Ieșire:
{ screenId, name }.
delete-screen
Șterge definitiv un ecran dintr-un fișier. name pe care îl transmiți este verificat în raport cu numele afișat curent al ecranului. Dacă nu se potrivește, ștergerea este anulată. Agenții sunt instruiți să te întrebe mai întâi pe tine.
Intrare
Ieșire:
{ "deleted": true }
Imagini în JSX
add-screen-jsx și replace-screen-jsx acceptă imagini într-un src al img-ului sau ca fundal în className, cu bg-[url(...)]. Scrie text alt și dimensionează fiecare imagine în funcție de rolul ei.
Pentru a plasa o imagine proprie:
- Încarcă-o cu
upload-attachmentîn Modul A (mimeType+fileName) și ruleazăuploadCommandreturnat. - Dacă
typedin răspuns este"image", lipeșteassetUrlexact cum a fost returnat înimg srcsau înbg-[url(assetUrl)].
get-screen-jsx. Nu pune path, signedUrl sau uploadCommand în src.
Valorile câmpurilor ecranului
get-screen-jsx returnează, iar add-screen-jsx și replace-screen-jsx acceptă, aceste valori:
Instrumente pentru ghidurile de design
Ghidurile de design sunt textDESIGN.md stocat pe un fișier. Atunci când sunt setate, sunt injectate în fiecare generare AI pentru acel fișier. Consultă Ghiduri de design.
get-design-guidelines
Obține ghidurile de design atașate unui fișier.
Intrare
Ieșire:
{ guidelines }.
guidelines este null dacă nu au fost setate ghiduri.
update-design-guidelines
Setează sau înlocuiește ghidurile de design pentru un fișier. Transmite ghidurile ca șir simplu, în formatul DESIGN.md al Google, nu ca obiect sau JSON. Dacă citești dintr-un fișier, transmite textul acelui fișier.
Intrare
Reguli de validare
- Frontmatter-ul trebuie deschis și închis corect
- Liniile din frontmatter trebuie să fie YAML valid în stil block
- Corpul Markdown nu trebuie să conțină titluri de secțiune
##duplicate
Invalid design guidelines:.
Ieșire: { updated, warnings? }.
warnings enumeră problemele de validare ușoară (chei necunoscute, culori care nu sunt hexazecimale) care au fost acceptate, dar pe care AI-ul le poate ignora. Este omis dacă nu există. Comunică-le acestea utilizatorului.
delete-design-guidelines
Golește ghidurile de design ale unui fișier. Ștergerea ghidurilor care nu există nu are efect.
Intrare
Ieșire:
{ "deleted": true }
Instrumente pentru chat
get-chat-history
Obține conversația de design asociată unui fișier, adică chatul Flowstep al fișierului, nu conversația clientului tău MCP. Folosește-l ca să reiei lucrul anterior la fișier.
Intrare
Ieșire:
{ messages }. messages este gol când nu ai nicio conversație de design pe fișier. Fiecare mesaj are un type ("request" sau "response"), un author ("human" sau "ai") și un content_type. Mesajele de răspuns folosesc "text", "summary" sau "followup".
Instrumente pentru atașamente
upload-attachment
Încarcă un fișier de referință pentru a-l folosi ca atașament în ai-design-screens, sau o imagine pe care să o plasezi în propriul JSX cu add-screen-jsx sau replace-screen-jsx. ai-generate-screen-variant și ai-edit-screen-variant nu acceptă atașamente. Octeții fișierelor nu trec niciodată prin model, iar serverul nu preia URL-uri în numele tău. Ca să faci referire la o pagină web, include adresa ei în message-ul ai-design-screens.
Există două moduri. Folosește exact unul și nu le combina.
Modul A: fișiere și imagini (mimeType + fileName)
Un flux obligatoriu în trei pași pentru orice imagine, PDF sau fișier text mai mare:
-
Apelează
upload-attachmentdoar cumimeTypeșifileName(de exempluimage/pngșidog.png). Răspunsul este o încărcare pregătită, nu un fișier stocat: -
Înlocuiește
LOCAL_FILE_PATHdinuploadCommandcu calea absolută către fișierul tău și rulează exact această comandă în terminal. Trebuie să se încheie cu codul 0. Tokenul dinsignedUrlautorizează doar această singură încărcare. Dacă sari peste acest pas, stocarea rămâne goală, iar instrumentul de design eșuează la verificarea preliminară. -
Transmite doar
{ id, path, type }în listaattachmentsaai-design-screens, nusignedUrl,uploadCommandsaunextStep. Ca să plasezi în schimb o imagine în propriul JSX, puneassetUrlînimg srcsaubg-[url(...)]din JSX-ul pe care îl transmiți cătreadd-screen-jsxorireplace-screen-jsx. Consultă Imagini în JSX.
curl), apoi urmează aceiași trei pași. Nu transmite niciodată un URL către upload-attachment.
Modul B: text scurt (
text + mimeType)
Încarcă text care se află deja în context, fără nevoie de o comandă de shell. Răspunsul este gata de utilizare direct:
Transmite
{ id, path, type } rezultat în lista attachments a ai-design-screens.
Dimensiunea maximă a unui fișier este de 3 MB în ambele moduri, iar PDF-urile sunt limitate la 100 de pagini.
Ieșire: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
type:"image"pentru fișiere imagine și"document"pentru PDF-uri și fișiere text.assetUrl: URL-ul fișierului încărcat, returnat în ambele moduri. Folosește-l în JSX pentruadd-screen-jsxsaureplace-screen-jsxdoar cândtypeeste"image"și numai după ce a rulatuploadCommanddin Modul A.signedUrl,uploadCommand,nextStep: setate doar în Modul A. Nu le transmite către instrumentele de design.
Instrumente pentru Figma
import-figma
Importă un cadru Figma într-un fișier Flowstep, ca elemente editabile pe canvasul lui. Fiecare import adaugă un ecran nou. Importarea aceluiași cadru de două ori îți oferă două ecrane, așa că șterge-l pe cel vechi cu delete-screen dacă vrei să îl înlocuiești. Organizația fișierului trebuie să aibă Figma conectat în setările Flowstep.
Intrare
Ieșire:
{ fileId, screenId, frameCount? }. screenId este ecranul importat. Transmite-l către get-screen-image ca să vezi rezultatul. Când un URL de pagină importă mai multe cadre, screenId este null, iar în schimb se returnează frameCount. Apelează list-screens, apoi get-screen-image pentru fiecare ecran nou.
Instrumente pentru plan și facturare
get-plan-details
Obține planul Flowstep al organizației tale, starea abonamentului, utilizarea și cota rămasă. Nu primește nicio intrare. Organizația se determină din utilizatorul conectat. Folosește-l ca să verifici limita înainte de a apela instrumentele de design AI.
Ieșire: { plan, subscription, limits, usage, remaining }.
Limitele variază în funcție de plan. Consultă Prețuri și Limite de utilizare.
Instrumente de design AI
Aceste trei instrumente proiectează pornind de la o descriere sau de la o presetare. Nu primesc și nu reutilizează niciodată JSX. Fiecare apel consumă din aceeași limită de mesaje ca aplicația Flowstep și blochează până când generarea se termină sau expiră (180 de secunde).
Toate cele trei returnează
{ status, fileId, screenIds, designGuidelinesUpdated }. Apelează get-screen-image o dată pentru fiecare screenId ca să vezi rezultatul.
designGuidelinesUpdated: un rezumat scurt al modificării, atunci când ghidurileDESIGN.mdale fișierului au fost actualizate automat în timpul acestei runde. Altfel,null.
ai-design-screens
Generează unul sau mai multe ecrane noi, modifică ecrane existente pe loc sau pe amândouă într-un singur apel, pornind de la o descriere în text. Include fluxuri noi, teme, text, layout sau modificări coordonate pe mai multe ecrane. Acesta este același agent de design ca chatul din editorul Flowstep. Decide din message și elementIds ce să construiască și ce să modifice.
Omite fileId ca să începi un fișier nou. Transmite fileId ca să lucrezi într-un fișier existent. Dacă cererea s-ar putea aplica unui fișier pe care îl ai deja, agentul tău ar trebui să verifice mai întâi list-files și list-screens. Pentru un pas următor, o stare de eroare sau goală ori o variantă pentru o platformă a unui singur ecran, folosește ai-generate-screen-variant. Pentru o presetare de editare sau de regândire a unui singur ecran, folosește ai-edit-screen-variant. Dacă ai deja JSX, folosește în schimb add-screen-jsx sau replace-screen-jsx.
Intrare
Exemplu: editează un ecran și adaugă altul într-un singur apel:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status:"generated"când au fost construite sau modificate ecrane."chat"când Flowstep a răspuns fără să construiască nimic, caz în carereplyconține răspunsul, iarscreenIdseste gol. Dacă brieful tău este ambiguu, agentul tău ar trebui să îți ceară clarificări și să apeleze din nou instrumentul.screenIds: fiecare ecran construit sau modificat în timpul apelului, inclusiv ecranele editate pe loc. Dacă apelul expiră după ce au fost construite unele ecrane, returnează acele ecrane în loc de o eroare.
ai-generate-screen-variant
Adaugă un ecran nou derivat dintr-un singur ecran existent: pasul următor din flux, o stare de eroare sau goală ori o versiune pentru altă platformă. Ecranul original rămâne neschimbat. Ca să adaugi un ecran care nu este o variantă a unui ecran existent (de exemplu, un ecran de setări), folosește ai-design-screens cu un fileId.
Intrare
Ieșire:
{ status, fileId, screenIds, designGuidelinesUpdated }. status este întotdeauna "generated".
ai-edit-screen-variant
Modifică exact un ecran existent pe loc, folosind o presetare: îl temi sau îl lustruiești, încerci un alt layout sau un alt stil vizual ori îl regândești de la zero. Pentru ecrane noi, instrucțiuni libere sau o modificare precisă a unor elemente individuale, folosește ai-design-screens.
Intrare
Ieșire:
{ status, fileId, screenIds, designGuidelinesUpdated }. status este întotdeauna "generated".
Instrumente redenumite
Numele instrumentelor s-au schimbat în septembrie și octombrie 2026. Dacă ai prompturi, scripturi sau instrucțiuni pentru agenți care folosesc numele vechi, actualizează-le:
S-au schimbat și intrările: instrumentele de design AI primesc
elementIds (sau un singur screenId pentru instrumentele de variante) în loc de targets. add-screen-jsx primește jsx și câmpuri explicite de metadate, în loc de jsxContent cu un comentariu de metadate. create-file primește name în loc de title, iar instrumentele pentru ghidurile de design primesc fileId în loc de resourceId și linkedTo.