Skip to main content
En cas de succès, tous les outils sauf get-screen-image renvoient leur résultat deux fois : sous forme de structuredContent (validé par rapport au schéma de sortie publié de l’outil), et sous forme du même objet sérialisé dans un bloc texte, { type: "text", text: "<json-string>" }, pour les clients qui ne lisent pas le contenu structuré. get-screen-image renvoie uniquement un bloc image MCP : { type: "image", data: "<base64>", mimeType: "image/png" }. En cas d’échec, isError: true est défini et le bloc texte contient un bref message d’erreur. Les erreurs sur lesquelles vous pouvez agir (un nom qui ne correspond pas lors d’une suppression, un lien Figma invalide, des consignes de conception invalides, un problème de pièce jointe ou un dépassement de délai de génération) expliquent ce qu’il faut corriger. Les autres échecs renvoient un message générique, comme Failed to list files.
Tarifs : les quatre outils de conception par IA, c’est-à-dire ai-generate-screens, ai-edit-screens, ai-generate-screen-variant et ai-edit-screen-variant, utilisent le même quota de messages que l’application Flowstep. Tous les autres outils sont gratuits. Consultez Limites d’utilisation.
Chaque outil publie également des annotations MCP qui indiquent à votre client ce qu’il fait. delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-edit-screens et ai-edit-screen-variant sont marqués comme destructifs, car ils suppriment ou écrasent du contenu existant.

Outils de fichiers

list-files

Liste les métadonnées de vos fichiers Flowstep. Appelez cet outil en premier pour vérifier qu’un fichier pertinent n’existe pas déjà. Il ne renvoie aucun contenu d’écran : utilisez get-screen-image ou get-screen-jsx pour cela. Entrée Sortie : { files }.
  • owner : true si vous avez créé le fichier.
  • shared_with_me : true si le fichier vous a été partagé directement, et pas seulement par l’intermédiaire de votre organisation.
  • url : ouvre le fichier dans l’éditeur Flowstep.

get-file

Obtient les métadonnées d’un fichier. Le contenu du fichier est volontairement omis : utilisez get-screen-image ou get-screen-jsx pour inspecter les écrans, et get-design-guidelines pour récupérer les consignes de conception associées. Si vous avez une invitation en attente pour le fichier, l’appel à get-file l’accepte. Entrée Sortie : { file, user_access_level }.
  • access_level : private, read ou write.
  • visibility : private, member ou public.
  • user_access_level : votre accès au fichier, soit read soit write.

create-file

Crée un fichier Flowstep vierge, sans écran. Pour créer un fichier et générer des écrans en une seule étape, appelez plutôt ai-generate-screens sans fileId. Utilisez create-file pour les workflows axés sur le code, suivi de add-screen-jsx. Entrée Sortie : { file, user_access_level }, dans la même forme que get-file. owner vaut toujours true et user_access_level vaut toujours write. Utilisez le file.id renvoyé comme fileId dans les appels d’outils suivants.

update-file

Renomme un fichier. Entrée Sortie : { file, user_access_level }, dans la même forme que get-file.

delete-file

Supprime définitivement un fichier. Le name que vous transmettez est comparé au nom affiché actuel du fichier avant la suppression ; s’il ne correspond pas, la suppression est annulée. Cela évite de supprimer le mauvais fichier par erreur. Les agents sont instruits de vous demander confirmation au préalable. Entrée Sortie : { "deleted": true }
Cette action est irréversible. Tous les écrans du fichier sont supprimés.

Outils d’écrans

list-screens

Liste les écrans d’un fichier, dans l’ordre du canevas. Appelez cet outil après list-files pour voir ce qui se trouve déjà dans un fichier. Utilisez les valeurs screenId renvoyées avec les autres outils d’écrans et les outils de conception par IA. Entrée Sortie : { screens }.
  • prompt : le dernier prompt de génération de l’écran, ou une chaîne vide s’il n’a jamais été généré (par exemple, un écran ajouté avec add-screen-jsx).
  • fidelity : lofi, hifi ou ui.

get-screen-image

Affiche un écran au format PNG et le renvoie sous forme d’image en ligne. Nécessite un client qui prend en charge les blocs de contenu image. Appelez-le une fois pour chaque screenId renvoyé par un outil de conception par IA, add-screen-jsx, replace-screen-jsx ou import-figma. Entrée Sortie : bloc de contenu image MCP (image/png). data est du base64 standard des octets PNG, et non une URI de données. Cet outil ne renvoie aucun structuredContent.

get-screen-jsx

Obtient un écran sous forme de JSX, ainsi que ses métadonnées, afin que vous puissiez développer à partir de celui-ci dans votre base de code, ou le modifier et le réintégrer avec replace-screen-jsx. Utilisez get-screen-image pour un aperçu visuel. Entrée Sortie : { fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
  • jsx : balisage uniquement. Les attributs data-id ne sont inclus que lorsque includeIds vaut true.
  • prompt : le dernier prompt de génération, ou une chaîne vide si l’écran n’a jamais été généré.
  • fragments : éléments communs stockés sur l’écran, comme une barre de navigation, un en-tête ou un logo, sous forme d’objets { purpose, markup }. Vide s’il n’y en a pas. Transmettez-les à replace-screen-jsx pour les conserver ou les mettre à jour.
Consultez Valeurs des champs d’écran pour les valeurs de fidelity, screenType et colorTheme.

add-screen-jsx

Ajoute un nouvel écran à un fichier à partir de JSX que vous avez écrit. C’est la voie axée sur le code, et elle est gratuite. Utilisez ai-generate-screens si vous voulez que l’IA de Flowstep conçoive l’écran. add-screen-jsx crée toujours un nouvel écran : pour écraser un écran existant, utilisez replace-screen-jsx. Si le nouvel écran est basé sur un écran existant, partez de get-screen-jsx (sans includeIds) pour name, fidelity, screenType, colorTheme et jsx, puis modifiez ce qui doit changer. Entrée Sortie : { fileId, screenId }. Appelez get-screen-image avec le screenId pour voir le résultat.

replace-screen-jsx

Écrase un écran existant avec du JSX que vous avez écrit. L’écran conserve son screenId et sa position sur le canevas ; les éléments imbriqués reçoivent de nouveaux identifiants. C’est la voie axée sur le code, et elle est gratuite. Utilisez ai-edit-screens ou ai-edit-screen-variant pour des modifications par IA, et add-screen-jsx pour créer un nouvel écran à la place. Partez de get-screen-jsx (sans includeIds), puis modifiez ce qui doit changer. Entrée Sortie : { fileId, screenId }. Appelez get-screen-image avec le screenId pour voir le résultat.
Cette action remplace le contenu de l’écran sur place.

rename-screen

Renomme l’étiquette d’un écran sur le canevas, c’est-à-dire le nom affiché par list-screens et dans l’éditeur. Cette action modifie uniquement l’étiquette, et non la mise en page, la taille ou le contenu de l’écran. Pour ces modifications, utilisez ai-edit-screens. Entrée Sortie : { screenId, name }.

delete-screen

Supprime définitivement un écran d’un fichier. Le name que vous transmettez est comparé au nom affiché actuel de l’écran ; s’il ne correspond pas, la suppression est annulée. Les agents sont instruits de vous demander confirmation au préalable. Entrée Sortie : { "deleted": true }

Valeurs des champs d’écran

get-screen-jsx renvoie, et add-screen-jsx et replace-screen-jsx acceptent, ces valeurs :

Outils de consignes de conception

Les consignes de conception sont du texte DESIGN.md stocké sur un fichier. Lorsqu’elles sont définies, elles sont injectées dans chaque génération IA de ce fichier. Consultez Consignes de conception.

get-design-guidelines

Obtient les consignes de conception associées à un fichier. Entrée Sortie : { guidelines }.
guidelines vaut null si aucune consigne n’a été définie.

update-design-guidelines

Définit ou remplace les consignes de conception d’un fichier. Transmettez les consignes sous forme de chaîne de texte brut, au format DESIGN.md de Google, et non sous forme d’objet ou de JSON. Si vous lisez les consignes depuis un fichier, transmettez le texte de ce fichier. Entrée Règles de validation
  • Le frontmatter doit être correctement ouvert et fermé
  • Les lignes du frontmatter doivent être du YAML valide au format bloc
  • Le corps Markdown ne doit pas contenir de titres de section ## en double
Si la validation échoue, l’appel renvoie une erreur qui commence par Invalid design guidelines:. Sortie : { updated, warnings? }.
warnings liste les problèmes de validation non bloquants (clés inconnues, couleurs non hexadécimales) qui ont été acceptés mais que l’IA risque d’ignorer. Il est omis lorsqu’il n’y en a aucun. Signalez-les à l’utilisateur.

delete-design-guidelines

Supprime les consignes de conception d’un fichier. Supprimer des consignes inexistantes ne produit aucun effet. Entrée Sortie : { "deleted": true }

Outils de chat

get-chat-history

Obtient la conversation de conception associée à un fichier, c’est-à-dire le chat Flowstep du fichier, et non la conversation de votre client MCP. Utilisez-le pour reprendre un travail antérieur sur le fichier. Entrée Sortie : { messages }. messages est vide lorsque vous n’avez aucune conversation de conception sur le fichier. Chaque message possède un type ("request" ou "response"), un author ("human" ou "ai") et un content_type. Les messages de réponse utilisent "text", "summary" ou "followup".

Outils de pièces jointes

upload-attachment

Importe un fichier de référence à utiliser comme pièce jointe dans ai-generate-screens ou ai-edit-screens (ai-generate-screen-variant et ai-edit-screen-variant n’acceptent pas de pièces jointes). Les octets du fichier ne transitent jamais par le modèle, et le serveur ne récupère jamais d’URL en votre nom. Pour référencer une page web, incluez plutôt son URL dans le message de l’outil de conception. Il existe deux modes : utilisez-en un seul, et ne les combinez pas. Mode A : fichiers et images (mimeType + fileName) Un processus obligatoire en trois étapes pour toute image, tout PDF ou tout fichier texte volumineux :
  1. Appelez upload-attachment avec uniquement mimeType et fileName (par exemple image/png et dog.png). La réponse est un téléversement préparé, et non un fichier stocké :
  2. Remplacez LOCAL_FILE_PATH dans uploadCommand par le chemin absolu de votre fichier, puis exécutez cette commande exacte dans votre shell. Elle doit se terminer avec le code 0. Le jeton de signedUrl n’autorise que ce téléversement unique. Ignorer cette étape laisse le stockage vide, et l’outil de conception échoue à sa vérification préalable.
  3. Transmettez uniquement { id, path, type } dans le tableau attachments de l’outil de conception, et non signedUrl, uploadCommand ou nextStep.
Pour joindre un fichier distant, téléchargez-le d’abord vers un chemin local (par exemple avec curl), puis suivez les mêmes trois étapes. Ne transmettez jamais d’URL à upload-attachment. Mode B : texte court (text + mimeType) Téléverse un texte déjà présent dans le contexte, sans commande shell. La réponse est directement utilisable :
Transmettez le { id, path, type } obtenu dans le tableau attachments de ai-generate-screens ou ai-edit-screens. La taille maximale d’un fichier est de 3 Mo dans les deux modes, et les PDF sont limités à 100 pages. type vaut "image" pour les fichiers image et "document" pour les PDF et les fichiers texte.

Outils Figma

import-figma

Importe un cadre Figma dans un fichier Flowstep sous forme d’éléments modifiables sur son canevas. Chaque importation ajoute un nouvel écran : importer deux fois le même cadre vous donne deux écrans. Supprimez donc l’ancien avec delete-screen si vous vouliez le remplacer. L’organisation du fichier doit avoir Figma connecté dans les paramètres de Flowstep. Entrée Sortie : { fileId, screenId, frameCount? }. screenId est l’écran importé : transmettez-le à get-screen-image pour voir le résultat. Lorsqu’une URL de page importe plusieurs cadres, screenId vaut null et frameCount est renvoyé à la place : appelez alors list-screens, puis get-screen-image pour chaque nouvel écran.

Outils de forfait et de facturation

get-plan-details

Obtient le forfait Flowstep de votre organisation, son statut d’abonnement, son utilisation et son quota restant. Ne prend aucune entrée : l’organisation est déterminée à partir de l’utilisateur connecté. Utilisez-le pour vérifier votre quota avant d’appeler les outils de conception par IA. Sortie : { plan, subscription, limits, usage, remaining }. Les limites varient selon le forfait. Consultez Tarifs et Limites d’utilisation.

Outils de conception par IA

Ces quatre outils conçoivent à partir d’une description ou d’un préréglage. Ils n’acceptent jamais de JSX et ne le réutilisent jamais. Chaque appel utilise le même quota de messages que l’application Flowstep, et l’appel attend la fin de la génération ou le dépassement de délai (180 secondes). Les quatre renvoient { status, fileId, screenIds, designGuidelinesUpdated }. Appelez get-screen-image une fois pour chaque screenId afin de voir le résultat.
  • designGuidelinesUpdated : un bref résumé de la modification lorsque les consignes DESIGN.md du fichier ont été mises à jour automatiquement pendant ce tour ; sinon null.

ai-generate-screens

Génère un ou plusieurs nouveaux écrans à partir d’une description textuelle. Omettez fileId pour créer automatiquement un nouveau fichier ; transmettez fileId pour ajouter des écrans à un fichier existant. Cet outil crée toujours de nouveaux écrans : il ne modifie jamais les écrans existants sur place. Entrée Sortie : { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status : "generated" lorsque des écrans ont été créés. "chat" lorsque Flowstep a répondu sans créer d’écran ; dans ce cas, reply contient sa réponse et screenIds est vide. Si votre demande est ambiguë, votre agent doit vous demander des précisions et rappeler l’outil.

ai-edit-screens

Modifie sur place un ou plusieurs écrans existants à partir d’une instruction textuelle : thème, texte, mise en page ou modifications coordonnées sur plusieurs écrans. Vous pouvez cibler des écrans entiers ou des éléments individuels à l’intérieur de ceux-ci. Pour une modification prédéfinie d’un écran entier, ai-edit-screen-variant est plus simple. Entrée Sortie : { status, fileId, screenIds, designGuidelinesUpdated, reply? }, avec le même comportement de status et reply que ai-generate-screens.
Cette action remplace le contenu des écrans ciblés sur place.

ai-generate-screen-variant

Ajoute un nouvel écran dérivé d’exactement un écran existant : l’étape suivante du parcours, un état d’erreur ou vide, ou une version pour une autre plateforme. L’écran d’origine reste inchangé. Pour ajouter un écran qui n’est pas une variante d’un écran existant (par exemple, un écran de paramètres), utilisez ai-generate-screens avec un fileId. Entrée Sortie : { status, fileId, screenIds, designGuidelinesUpdated }. status vaut toujours "generated".

ai-edit-screen-variant

Modifie sur place exactement un écran existant à l’aide d’un préréglage : appliquer un thème ou un rendu plus soigné, essayer une autre mise en page ou un autre style visuel, ou le refondre entièrement. Pour des instructions libres ou une modification précise d’éléments individuels, utilisez ai-edit-screens. Entrée Sortie : { status, fileId, screenIds, designGuidelinesUpdated }. status vaut toujours "generated".
Cette action remplace le contenu de l’écran sur place.

Outils renommés

Les noms de certains outils ont changé en septembre 2026. Si vos prompts, scripts ou instructions d’agent utilisent les anciens noms, mettez-les à jour : Les entrées ont aussi changé : les outils de conception par IA acceptent elementIds (ou un screenId unique pour les outils de variantes) au lieu de targets ; add-screen-jsx accepte jsx et des champs de métadonnées explicites au lieu de jsxContent avec un commentaire de métadonnées ; create-file accepte name au lieu de title ; et les outils de consignes de conception acceptent fileId au lieu de resourceId et linkedTo.