content de blocuri de conținut MCP. Uneltele de text returnează { type: "text", text: "<json-string>" }. Uneltele de imagine returnează { type: "image", data: "<base64>", mimeType: "image/png" }. La eșec, se setează isError: true și blocul de text conține mesajul de eroare.
Unelte de fișiere
list-files
Listează fișierele Flowstep pentru utilizatorul curent.
Intrare
Ieșire — Tablou JSON de obiecte fișier.
get-file
Obțin un singur fișier după ID. Conținutul fișierului este intenționat omis — utilizați get-screen sau get-screen-image pentru a inspecta ecranele, și get-design-guidelines pentru a prelua ghidurile atașate.
Intrare
Ieșire — Obiect fișier JSON.
create-file
Creează un nou fișier Flowstep.
Intrare
Ieșire — Obiect fișier JSON cu
id-ul noului fișier.
id-ul returnat ca fileId în apelurile ulterioare de unealtă.
update-file
Redenumiți un fișier.
Intrare
Ieșire — Obiect fișier actualizat în aceeași formă ca
get-file.
delete-file
Ștergeți permanent un fișier. name-ul pe care îl transmiteți este verificat în raport cu numele actual al fișierului înainte de ștergere — dacă nu se potrivește, ștergerea este anulată. Aceasta previne ștergerea accidentală a fișierului greșit.
Intrare
Ieșire —
"File deleted successfully"
Unelte de ecran
list-screens
Listează toate ecranele generate pentru un fișier. Utilizați valorile screenId returnate pentru a face referință la ecrane în get-screen, get-screen-image, upload-attachment, și ca targets în edit-design, regenerate-design, sau expand-design.
Intrare
Ieșire — Tablou JSON de rezumate de ecran.
name este numele ecranului asignat de utilizator, sau null dacă nu are nume.
get-screen
Obțineți codul JSX pentru un ecran, permițând editare sau utilizare a codului în afara Flowstep. Utilizați get-screen-image pentru o previzualizare vizuală.
Intrare
Ieșire — Ecranul ca cod (JSX). Observați comentariul din prima linie care este obligatoriu atunci când utilizați unealta
add-screen.
add-screen
Adaugă un nou ecran la un fișier Flowstep dintr-un șir JSX brut.
Intrare
Notă - Un comentariu asemănător celui de mai jos TREBUIE să fie prezent ca prima linie a JSX, deoarece este utilizat pentru a adăuga ecranul corect.
screenType, name, și screenId sunt toate opționale — screenId este utilizat (intern) dacă este prezent (de exemplu, atunci când transmiteți JSX copiat din ieșirea get-screen) dar nu este obligatoriu. Numele ecranului este preluat din câmpul name al comentariului (afișat ca “Copy of <name>”), sau “Untitled” dacă lipsește.
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" -->
Ieșire — ID-ul ecranului nou adăugat.
get-screen-image
Redați un ecran la PNG și întoarceți-l ca o imagine în linie. Necesită un client care să suporte blocuri de conținut imagine.
Intrare
Ieșire — Bloc de conținut imagine MCP (
image/png).
Unelte AI
create-new-design
Generați unul sau mai multe design-uri de ecran dintr-un prompt text. Omiteți fileId pentru a crea automat un nou fișier. Se blochează până când generarea se completează sau expirează (180 de secunde).
Intrare
Ieșire —
{ fileId, screenIds }. Transmiteți fiecare screenId la get-screen-image pentru a vedea rezultatele.
regenerate-design
Refaceți ecranele existente de la zero sau cu o variație de stil. Necesită cel puțin un screenId în targets. Se blochează până când generarea se completează sau expirează (180 de secunde).
Intrare
Ieșire —
{ fileId, screenIds }. Transmiteți fiecare screenId la get-screen-image pentru a vedea rezultatele.
expand-design
Adaugă ecrane suplimentare la un design existent. Necesită cel puțin un screenId în targets și un operationVariant obligatoriu. Se blochează până când generarea se completează sau expirează (180 de secunde).
Intrare
Ieșire —
{ fileId, screenIds }. Transmiteți fiecare screenId la get-screen-image pentru a vedea rezultatele.
edit-design
Modificați ecranele existente printr-un prompt. Necesită cel puțin un screenId în targets. Se blochează până când generarea se completează sau expirează (180 de secunde).
Intrare
Ieșire —
{ fileId, screenIds }. Transmiteți fiecare screenId la get-screen-image pentru a vedea rezultatele.
upload-attachment
Încărcați un fișier pentru a-l folosi ca atașament în create-new-design sau edit-design. Returnează { id, path, type, mimeType } — transmiteți acest obiect direct în tabloul attachments.
Două moduri:
Modul 1 — Ecran după ID
Transmiteți screenId și fileId. Serverul preia starea ecranului din baza de date și o redă ca imagine.
Modul 2 — Fișier extern
Transmiteți conținutul fișierului direct. Fișierele binare trebuie codificate în base64; fișierele text (inclusiv codul sursă) sunt transmise ca șiruri UTF-8 plain.
Dimensiune maximă a fișierului: 3 MB. Pentru imagini mari, preferați
image/jpeg în locul image/png.
Ieșire
type este "image" pentru încărcări de imagine/PDF și "document" pentru fișiere text/cod.
Unelte de chat
get-chat-history
Obțineți istoricul mesajelor de chat pentru un fișier.
Intrare
Ieșire — Obiect JSON cu un tablou
messages. Fiecare mesaj are un type ("request" sau "response"), author ("human" sau "ai"), și content_type ("text", "summary", sau "followup").
Unelte de design
get-design-guidelines
Obțineți ghidurile de design stocate pentru un fișier.
Intrare
Ieșire
guidelines este null dacă nu au fost setate ghiduri.
update-design-guidelines
Setați sau înlocuiți ghidurile de design pentru un fișier. Ghidurile sunt transmise ca șir de text plain în formatul design.md al Google — nu transmiteți un obiect sau JSON.
Serverul efectuează validare ușoară și poate returna o secțiune Warnings: în răspuns listând probleme (chei necunoscute, culori non-hex) care au fost acceptate dar pot fi ignorate de AI. Afișați-le utilizatorului.
Intrare
Reguli de validare
- Prefața trebuie deschisă și închisă corect
- Liniile din prefață trebuie să fie YAML valid în stil bloc
- Corpul Markdown nu trebuie să conțină titluri duplicate
##
"Design guidelines updated successfully", opțional urmată de o secțiune Warnings:.
delete-design-guidelines
Ștergeți ghidurile de design pentru un fișier.
Intrare
Ieșire —
"Design guidelines deleted successfully"
Unelte Figma
import-figma
Importă un cadru din Figma într-un fișier Flowstep ca elemente editabile pe canvas-ul acestuia. Re-importarea aceluiași cadru îl actualizează la loc. Organizația fișierului trebuie să aibă Figma conectată în setările Flowstep.
Intrare
Ieșire —
{ fileId, screenId }. screenId este id-ul elementului de ecran importat — transmite-l lui get-screen-image pentru a vedea rezultatul. Când un URL de pagină importă mai multe cadre, screenId este null și se returnează frameCount în loc.