get-screen-image retorna el seu resultat dues vegades: com a structuredContent (validat contra l’esquema de sortida publicat de l’eina) i com el mateix objecte serialitzat en un bloc de text, { type: "text", text: "<json-string>" }, per als clients que no llegeixen contingut estructurat. get-screen-image retorna només un bloc d’imatge de MCP: { type: "image", data: "<base64>", mimeType: "image/png" }.
En cas d’error, isError: true s’estableix i el bloc de text conté un missatge d’error breu. Els errors que pots resoldre (una discrepància de nom en esborrar, un enllaç de Figma no vàlid, unes directrius de disseny no vàlides, un problema amb un adjunt o un temps d’espera de generació esgotat) expliquen què cal corregir. Altres errors retornen un missatge genèric com Failed to list files.
Preus: les quatre eines de disseny amb IA (
ai-generate-screens, ai-edit-screens, ai-generate-screen-variant i ai-edit-screen-variant) consumeixen la mateixa quota de missatges que l’aplicació de Flowstep. Totes les altres eines són gratuïtes. Consulta Límits d’ús.delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-edit-screens i ai-edit-screen-variant estan marcades com a destructives perquè eliminen o sobreescriuen contingut existent.
Eines de fitxers
list-files
Llista les metadades dels teus fitxers de Flowstep. Crida-la primer per comprovar si ja existeix un fitxer rellevant. No retorna contingut de pantalles: fes servir get-screen-image o get-screen-jsx per a això.
Entrada
Sortida:
{ files }.
owner:truesi has creat el fitxer.shared_with_me:truesi el fitxer s’ha compartit directament amb tu, no només a través de la teva organització.url: obre el fitxer a l’editor de Flowstep.
get-file
Obté les metadades d’un sol fitxer. El contingut del fitxer s’omet intencionadament: fes servir get-screen-image o get-screen-jsx per inspeccionar pantalles, i get-design-guidelines per obtenir les directrius adjuntes. Si tens una invitació pendent al fitxer, cridar get-file l’accepta.
Entrada
Sortida:
{ file, user_access_level }.
access_level:private,readowrite.visibility:private,memberopublic.user_access_level: el teu accés al fitxer,readowrite.
create-file
Crea un fitxer de Flowstep en blanc, sense pantalles. Per crear un fitxer i generar pantalles en un sol pas, crida ai-generate-screens sense fileId. Fes servir create-file per als fluxos code-first, seguit de add-screen-jsx.
Entrada
Sortida:
{ file, user_access_level }, amb la mateixa forma que get-file. owner és sempre true i user_access_level és sempre write.
Fes servir el file.id retornat com a fileId en les crides posteriors a les eines.
update-file
Canvia el nom d’un fitxer.
Entrada
Sortida:
{ file, user_access_level }, amb la mateixa forma que get-file.
delete-file
Elimina un fitxer de manera permanent. El name que passes es compara amb el nom visible actual del fitxer abans de l’eliminació; si no coincideix, l’eliminació s’aborta. Així s’evita esborrar per error el fitxer equivocat. Els agents tenen instruccions de confirmar-ho amb tu abans.
Entrada
Sortida:
{ "deleted": true }
Eines de pantalles
list-screens
Llista les pantalles d’un fitxer, en l’ordre del llenç. Crida-la després de list-files per veure què hi ha en un fitxer. Fes servir els valors screenId retornats amb les altres eines de pantalla i amb les eines de disseny amb IA.
Entrada
Sortida:
{ screens }.
prompt: l’últim prompt de generació de la pantalla, o una cadena buida si mai no s’ha generat (per exemple, una pantalla afegida ambadd-screen-jsx).fidelity:lofi,hifioui.
get-screen-image
Renderitza una pantalla a PNG i la retorna com a imatge en línia. Requereix un client que admeti blocs d’imatge. Crida-la una vegada per a cada screenId retornat per una eina de disseny amb IA, add-screen-jsx, replace-screen-jsx o import-figma.
Entrada
Sortida: bloc de contingut d’imatge de MCP (
image/png). data és base64 estàndard dels bytes del PNG, no un URI de dades. Aquesta eina no té structuredContent.
get-screen-jsx
Obté una pantalla com a JSX, més les seves metadades, perquè puguis construir-ne a partir d’ella al teu codi, o editar-la i escriure-la de nou amb replace-screen-jsx. Fes servir get-screen-image per a una vista prèvia visual.
Entrada
Sortida:
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
jsx: només marcatge. Els atributsdata-ids’inclouen només quanincludeIdséstrue.prompt: l’últim prompt de generació, o una cadena buida si la pantalla mai no s’ha generat.fragments: elements compartits emmagatzemats a la pantalla, com una barra de navegació, una capçalera o un logotip, com a objectes{ purpose, markup }. És buit quan no n’hi ha cap. Passa’ls de nou areplace-screen-jsxper conservar-los o actualitzar-los.
fidelity, screenType i colorTheme.
add-screen-jsx
Afegeix una pantalla nova a un fitxer a partir de JSX que has escrit. És el camí code-first i és gratuït: fes servir ai-generate-screens quan vulguis que la IA de Flowstep dissenyi la pantalla. add-screen-jsx sempre crea una pantalla nova: per sobreescriure’n una d’existent, fes servir replace-screen-jsx.
Quan la pantalla nova es basa en una d’existent, parteix de get-screen-jsx (sense includeIds) per a name, fidelity, screenType, colorTheme i jsx, i després canvia el que hagi de ser diferent.
Entrada
Sortida:
{ fileId, screenId }. Crida get-screen-image amb screenId per veure el resultat.
replace-screen-jsx
Sobreescriu una pantalla existent amb JSX que has escrit. La pantalla conserva el seu screenId i la seva posició al llenç; els elements niuats reben identificadors nous. És el camí code-first i és gratuït: fes servir ai-edit-screens o ai-edit-screen-variant per als canvis amb IA, i add-screen-jsx per crear-ne una de nova.
Parteix de get-screen-jsx (sense includeIds) i després canvia el que hagi de ser diferent.
Entrada
Sortida:
{ fileId, screenId }. Crida get-screen-image amb screenId per veure el resultat.
rename-screen
Canvia el nom de l’etiqueta d’una pantalla al llenç: el nom que mostren list-screens i l’editor. Només canvia l’etiqueta, no la disposició, la mida ni el contingut de la pantalla; per a això fes servir ai-edit-screens.
Entrada
Sortida:
{ screenId, name }.
delete-screen
Elimina una pantalla d’un fitxer de manera permanent. El name que passes es compara amb el nom visible actual de la pantalla; si no coincideix, l’eliminació s’aborta. Els agents tenen instruccions de confirmar-ho amb tu abans.
Entrada
Sortida:
{ "deleted": true }
Valors dels camps de pantalla
get-screen-jsx retorna aquests valors, i add-screen-jsx i replace-screen-jsx els accepten:
Eines de directrius de disseny
Les directrius de disseny són textDESIGN.md emmagatzemat en un fitxer. Quan s’estableixen, s’injecten en cada generació amb IA d’aquest fitxer. Consulta Directrius de disseny.
get-design-guidelines
Obté les directrius de disseny adjuntes a un fitxer.
Entrada
Sortida:
{ guidelines }.
guidelines és null si no s’han establert directrius.
update-design-guidelines
Estableix o substitueix les directrius de disseny d’un fitxer. Passa les directrius com a cadena de text pla en el format DESIGN.md de Google, no com a objecte ni com a JSON. Si les llegeixes d’un fitxer, passa el text d’aquell fitxer.
Entrada
Regles de validació
- El frontmatter s’ha d’obrir i tancar correctament
- Les línies del frontmatter han de ser YAML vàlid d’estil de bloc
- El cos Markdown no ha de contenir encapçalaments de secció
##duplicats
Invalid design guidelines: (directrius de disseny no vàlides).
Sortida: { updated, warnings? }.
warnings enumera els problemes de validació tova (claus desconegudes, colors no hexadecimals) que s’han acceptat però que la IA podria ignorar. S’omet quan no n’hi ha cap. Mostra’ls a l’usuari.
delete-design-guidelines
Esborra les directrius de disseny d’un fitxer. Esborrar directrius que no existeixen no té cap efecte.
Entrada
Sortida:
{ "deleted": true }
Eines de xat
get-chat-history
Obté la conversa de disseny associada a un fitxer: el xat de Flowstep del fitxer, no la conversa del teu client de MCP. Fes-la servir per reprendre el treball anterior sobre el fitxer.
Entrada
Sortida:
{ messages }. messages és buit quan no tens cap conversa de disseny al fitxer. Cada missatge té un type ("request" o "response"), un author ("human" o "ai") i un content_type. Els missatges de resposta fan servir "text", "summary" o "followup".
Eines d’adjunts
upload-attachment
Puja un fitxer de referència per fer-lo servir com a adjunt a ai-generate-screens o ai-edit-screens (ai-generate-screen-variant i ai-edit-screen-variant no accepten adjunts). Els bytes del fitxer mai no passen pel model, i el servidor mai no obté URL en nom teu. Per referenciar una pàgina web, inclou-ne la URL al message de l’eina de disseny.
Hi ha dues modalitats: fes servir exactament una i no les combinis.
Modalitat A: fitxers i imatges (mimeType + fileName)
Un flux obligatori de tres passos per a qualsevol imatge, PDF o fitxer de text més gran:
-
Crida
upload-attachmentnomés ambmimeTypeifileName(per exempleimage/pngidog.png). La resposta és una pujada preparada, no un fitxer emmagatzemat: -
Substitueix
LOCAL_FILE_PATHauploadCommandpel camí absolut del teu fitxer i executa exactament aquesta ordre a la teva shell: ha de sortir amb codi 0. El token designedUrlautoritza només aquesta única pujada. Si saltes aquest pas, l’emmagatzematge queda buit i l’eina de disseny falla la comprovació prèvia. -
Passa només
{ id, path, type }a l’arrayattachmentsde l’eina de disseny: nosignedUrl,uploadCommandninextStep.
curl) i després segueix els mateixos tres passos. Mai no passis una URL a upload-attachment.
Modalitat B: text curt (
text + mimeType)
Puja text que ja és al context; no cal cap ordre de shell. La resposta està a punt per fer-la servir directament:
Passa el
{ id, path, type } resultant a l’array attachments de ai-generate-screens o ai-edit-screens.
La mida màxima de fitxer és de 3 MB en totes dues modalitats, i els PDF estan limitats a 100 pàgines. type és "image" per als fitxers d’imatge i "document" per als PDF i els fitxers de text.
Eines de Figma
import-figma
Importa un marc de Figma en un fitxer de Flowstep com a elements editables al seu llenç. Cada importació afegeix una pantalla nova: importar el mateix marc dues vegades et dóna dues pantalles, de manera que has d’eliminar l’antiga amb delete-screen si la volies substituir. L’organització del fitxer ha de tenir Figma connectat a la configuració de Flowstep.
Entrada
Sortida:
{ fileId, screenId, frameCount? }. screenId és la pantalla importada: passa-la a get-screen-image per veure el resultat. Quan un enllaç de pàgina importa diversos marcs, screenId és null i es retorna frameCount en lloc seu; crida list-screens i després get-screen-image per a cada pantalla nova.
Eines de pla i facturació
get-plan-details
Obté el pla de Flowstep de la teva organització, l’estat de la subscripció, l’ús i la quota restant. No té entrada: l’organització es resol a partir de l’usuari autenticat. Fes-lo servir per comprovar la teva quota abans de cridar les eines de disseny amb IA.
Sortida: { plan, subscription, limits, usage, remaining }.
Els límits varien segons el pla: consulta Preus i Límits d’ús.
Eines de disseny amb IA
Aquestes quatre eines dissenyen a partir d’una descripció o d’una preconfiguració: mai no accepten ni reutilitzen JSX. Cada crida consumeix la mateixa quota de missatges que l’aplicació de Flowstep i es bloqueja fins que la generació es completa o expira (180 segons).
Totes quatre retornen
{ status, fileId, screenIds, designGuidelinesUpdated }. Crida get-screen-image una vegada per a cada screenId per veure el resultat.
designGuidelinesUpdated: un resum breu del canvi quan les directriusDESIGN.mddel fitxer s’han actualitzat automàticament durant aquest torn; altrament,null.
ai-generate-screens
Genera una o més pantalles noves a partir d’una descripció en text. Omet fileId per crear un fitxer nou automàticament; passa fileId per afegir pantalles a un fitxer existent. Aquesta eina sempre crea pantalles noves: mai no edita les existents in situ.
Entrada
Sortida:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status:"generated"quan s’han construït pantalles."chat"quan Flowstep ha respost sense construir res; en aquest casreplyconté la resposta iscreenIdsés buit. Si el teu encàrrec és ambigu, el teu agent hauria de demanar-te que l’aclareixis i tornar a cridar l’eina.
ai-edit-screens
Canvia una o més pantalles existents in situ a partir d’una instrucció de text: tematització, text, disposició o canvis coordinats en diverses pantalles. Pots apuntar a pantalles completes o a elements individuals dins d’elles. Per a un canvi preconfigurat d’una pantalla completa, ai-edit-screen-variant és més senzill.
Entrada
Sortida:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }, amb el mateix comportament de status i reply que ai-generate-screens.
ai-generate-screen-variant
Afegeix una pantalla nova derivada exactament d’una pantalla existent: el pas següent del flux, un estat d’error o buit, o una versió per a una altra plataforma. La pantalla original no es modifica. Per afegir una pantalla que no sigui una variant d’una pantalla existent (per exemple, una pantalla de configuració), fes servir ai-generate-screens amb un fileId.
Entrada
Sortida:
{ status, fileId, screenIds, designGuidelinesUpdated }. status és sempre "generated".
ai-edit-screen-variant
Canvia exactament una pantalla existent in situ fent servir una preconfiguració: millora’n el tema o l’acabat, prova una disposició o un estil visual diferents, o redissenya-la des de zero. Per a instruccions de text lliure o per a una edició precisa d’elements individuals, fes servir ai-edit-screens.
Entrada
Sortida:
{ status, fileId, screenIds, designGuidelinesUpdated }. status és sempre "generated".
Eines reanomenades
Els noms de les eines han canviat el setembre del 2026. Si tens prompts, scripts o instruccions d’agent que fan servir els noms antics, actualitza’ls:
Els noms dels paràmetres també han canviat: les eines de disseny amb IA reben
elementIds (o un únic screenId per a les eines de variant) en lloc de targets; add-screen-jsx rep jsx i camps de metadades explícits en lloc de jsxContent amb un comentari de metadades; create-file rep name en lloc de title; i les eines de directrius de disseny reben fileId en lloc de resourceId i linkedTo.