Passer au contenu principal
En cas de réussite, chaque outil sauf get-screen-image renvoie son 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 de texte, { type: "text", text: "<json-string>" }, pour les clients qui ne lisent pas le contenu structuré. get-screen-image ne renvoie qu’un bloc d’image MCP : { type: "image", data: "<base64>", mimeType: "image/png" }. En cas d’échec, isError: true est défini et le bloc de texte contient un bref message d’erreur. Les erreurs sur lesquelles vous pouvez agir (une incohérence de nom lors d’une suppression, un lien Figma invalide, des directives de conception non valides, un problème de pièce jointe ou un délai de génération dépassé) expliquent quoi corriger. Les autres échecs renvoient un message générique, tel que Failed to list files.
Tarification : les trois outils de conception IA (ai-design-screens, ai-generate-screen-variant et ai-edit-screen-variant) utilisent la même allocation de messages que l’application Flowstep. Tous les autres outils sont gratuits. Consultez Limites d’utilisation.
Chaque outil publie aussi des annotations MCP qui indiquent à votre client ce qu’il fait. delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens et ai-edit-screen-variant sont marqués comme destructifs, car ils suppriment ou écrasent du contenu existant.

Outils de fichiers

list-files

Listez les métadonnées de vos fichiers Flowstep. Appelez cet outil en premier pour vérifier si un fichier pertinent existe 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 a été partagé directement avec vous, et non seulement par l’intermédiaire de votre organisation.
  • url : ouvre le fichier dans l’éditeur Flowstep.

get-file

Obtenez les métadonnées d’un seul 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 directives associées. Si vous avez une invitation en attente pour le fichier, appeler 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 ou write.

create-file

Créez 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-design-screens sans fileId. Utilisez create-file pour les flux de travail « code d’abord », 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

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

delete-file

Supprimez définitivement un fichier. Le name que vous transmettez est comparé au nom d’affichage 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

Listez les écrans d’un fichier, dans l’ordre du canevas. Appelez cet outil après list-files pour voir ce qu’un fichier contient déjà. Utilisez les valeurs screenId renvoyées avec les autres outils d’écrans et avec les outils de conception 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

Rendez un écran en PNG et renvoyez-le 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 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

Obtenez un écran en JSX, ainsi que ses métadonnées, pour pouvoir bâtir à partir de celui-ci dans votre base de code, ou le modifier et le réécrire avec replace-screen-jsx. Utilisez plutôt get-screen-image pour un aperçu visuel. Entrée Sortie : { fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
  • jsx : balisage seulement. 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 aucun. 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

Ajoutez un nouvel écran à un fichier à partir de JSX que vous avez écrit. C’est le chemin « code d’abord », et il est gratuit. Utilisez ai-design-screens lorsque vous voulez que l’IA de Flowstep conçoive l’écran. add-screen-jsx crée toujours un nouvel écran : pour en écraser un existant, utilisez replace-screen-jsx. Pour afficher une image que vous avez téléversée, consultez Images dans le JSX. Lorsque 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 être différent. Entrée Sortie : { fileId, screenId }. Appelez get-screen-image avec screenId pour voir le résultat.

replace-screen-jsx

Écrasez 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 le chemin « code d’abord », et il est gratuit. Utilisez ai-design-screens ou ai-edit-screen-variant pour des modifications par IA, et add-screen-jsx pour créer plutôt un nouvel écran. Partez de get-screen-jsx (sans includeIds), puis modifiez ce qui doit être différent. Pour afficher une image que vous avez téléversée, consultez Images dans le JSX. Entrée Sortie : { fileId, screenId }. Appelez get-screen-image avec screenId pour voir le résultat.
Cette action remplace le contenu de l’écran sur place.

rename-screen

Renommez l’étiquette d’un écran sur le canevas, c’est-à-dire le nom affiché par list-screens et dans l’éditeur. Cela ne change que l’étiquette, et non la mise en page, la taille ni le contenu de l’écran. Utilisez ai-design-screens pour ces modifications. Entrée Sortie : { screenId, name }.

delete-screen

Supprimez définitivement un écran d’un fichier. Le name que vous transmettez est comparé au nom d’affichage 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 }

Images dans le JSX

add-screen-jsx et replace-screen-jsx acceptent des images dans un src d’img, ou en arrière-plan dans className avec bg-[url(...)]. Rédigez un texte alt et dimensionnez chaque image selon son usage. Pour placer une image qui vous appartient :
  1. Téléversez-la avec upload-attachment en mode A (mimeType + fileName), puis exécutez la uploadCommand renvoyée.
  2. Si le type de la réponse vaut "image", collez son assetUrl exactement tel quel dans img src ou dans bg-[url(assetUrl)].
Laissez toutes les autres URL d’image exactement telles que get-screen-jsx les a renvoyées. Ne placez pas path, signedUrl ni uploadCommand dans src.

Valeurs des champs d’écran

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

Outils de directives de conception

Les directives 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 par IA pour ce fichier. Consultez Directives de conception.

get-design-guidelines

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

update-design-guidelines

Définissez ou remplacez les directives de conception d’un fichier. Transmettez les directives sous forme de chaîne de caractères simple, selon le format DESIGN.md de Google, et non sous forme d’objet ni de JSON. Si vous lisez à partir d’un fichier, transmettez le texte de ce fichier. Entrée Règles de validation
  • Le bloc frontmatter doit être correctement ouvert et fermé
  • Les lignes du frontmatter doivent être du YAML en style bloc valide
  • 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 énumère les problèmes de validation souples (clés inconnues, couleurs non hexadécimales) qui ont été acceptés, mais que l’IA pourrait ignorer. Il est omis lorsqu’il n’y en a aucun. Signalez-les à l’utilisateur.

delete-design-guidelines

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

Outils de clavardage

get-chat-history

Obtenez la conversation de conception associée à un fichier, c’est-à-dire le clavardage Flowstep du fichier, et non la conversation de votre client MCP. Utilisez cet outil pour reprendre un travail antérieur sur le fichier. Entrée Sortie : { messages }. messages est vide si vous n’avez aucune conversation de conception sur le fichier. Chaque message a 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

Téléversez un fichier de référence à utiliser comme pièce jointe dans ai-design-screens, ou une image à placer dans votre propre JSX avec add-screen-jsx ou replace-screen-jsx. Les outils ai-generate-screen-variant et ai-edit-screen-variant n’acceptent pas de pièces jointes. Le contenu des fichiers ne transite jamais par le modèle, et le serveur ne récupère jamais d’URL à votre place. Pour référencer une page Web, incluez plutôt son URL dans le message de ai-design-screens. Il existe deux modes : utilisez-en exactement un, et ne les combinez pas. Mode A : fichiers et images (mimeType + fileName) Un flux obligatoire en trois étapes pour toute image, tout PDF ou tout fichier texte volumineux :
  1. Appelez upload-attachment avec seulement mimeType et fileName (par exemple image/png et dog.png). La réponse est un téléversement préparé, et non un fichier déjà 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 dans signedUrl n’autorise que ce téléversement unique. Si vous sautez cette étape, le stockage reste vide et l’outil de conception échoue à sa vérification préalable.
  3. Transmettez uniquement { id, path, type } dans le tableau attachments de ai-design-screens, et non signedUrl, uploadCommand ni nextStep. Pour placer une image dans votre propre JSX à la place, mettez assetUrl dans le img src ou le bg-[url(...)] du JSX que vous transmettez à add-screen-jsx ou replace-screen-jsx. Consultez Images dans le JSX.
Pour joindre un fichier distant, téléchargez-le d’abord vers un chemin local (par exemple avec curl), puis suivez les trois mêmes étapes. Ne transmettez jamais une URL à upload-attachment. Mode B : texte court (text + mimeType) Téléversez du texte déjà présent dans le contexte, sans commande shell. La réponse est prête à être utilisée directement :
Transmettez le { id, path, type } obtenu dans le tableau attachments de ai-design-screens. La taille maximale d’un fichier est de 3 Mo pour les deux modes, et les PDF sont limités à 100 pages. Sortie : { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
  • type : "image" pour les fichiers image et "document" pour les PDF et les fichiers texte.
  • assetUrl : l’URL du fichier téléversé, renvoyée dans les deux modes. Utilisez-la dans le JSX pour add-screen-jsx ou replace-screen-jsx uniquement lorsque type vaut "image", et seulement après l’exécution de la uploadCommand du mode A.
  • signedUrl, uploadCommand, nextStep : présents uniquement en mode A. Ne les transmettez pas aux outils de conception.

Outils Figma

import-figma

Importez 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 propriétaire 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

Obtenez le forfait Flowstep de votre organisation, l’état de son abonnement, son utilisation et son quota restant. Cet outil n’exige aucune entrée : l’organisation est déterminée à partir de l’utilisateur connecté. Utilisez-le pour vérifier votre allocation avant d’appeler les outils de conception IA. Sortie : { plan, subscription, limits, usage, remaining }. Les limites varient selon le forfait. Consultez la page Tarifs et Limites d’utilisation.

Outils de conception IA

Ces trois outils conçoivent à partir d’une description ou d’un préréglage. Ils n’acceptent ni ne réutilisent jamais de JSX. Chaque appel utilise la même allocation de messages que l’application Flowstep, et bloque jusqu’à la fin de la génération ou jusqu’à l’expiration du délai (180 secondes). Les trois outils 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 directives DESIGN.md du fichier ont été mises à jour automatiquement pendant ce tour. Sinon, il vaut null.

ai-design-screens

Générez un ou plusieurs nouveaux écrans, modifiez des écrans existants sur place, ou les deux en un seul appel, à partir d’une description textuelle : nouveaux parcours, thèmes, texte, mise en page ou modifications coordonnées sur plusieurs écrans. C’est le même agent de conception que le clavardage de l’éditeur Flowstep : il décide, à partir de votre message et de vos elementIds, ce qu’il faut construire et ce qu’il faut modifier. Omettez fileId pour démarrer un nouveau fichier ; transmettez fileId pour travailler dans un fichier existant. Si la demande pourrait s’appliquer à un fichier que vous possédez déjà, votre agent doit d’abord consulter list-files et list-screens. Pour une étape suivante, un état d’erreur ou vide, ou une variante de plateforme d’un écran, utilisez ai-generate-screen-variant. Pour un préréglage de modification ou de refonte d’un écran, utilisez ai-edit-screen-variant. Si vous avez déjà du JSX, utilisez plutôt add-screen-jsx ou replace-screen-jsx. Entrée Exemple : modifier un écran et en ajouter un autre dans un seul appel :
Sortie : { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status : "generated" lorsque des écrans ont été construits ou modifiés. "chat" lorsque Flowstep a répondu sans rien construire ; reply contient alors sa réponse, et screenIds est vide. Si votre demande est ambiguë, votre agent doit vous demander de la préciser, puis rappeler l’outil.
  • screenIds : chaque écran construit ou modifié pendant l’appel, y compris les écrans modifiés sur place. Si l’appel expire après la construction de certains écrans, il renvoie ces écrans au lieu d’une erreur.
Les écrans que vous demandez de modifier sont écrasés sur place.

ai-generate-screen-variant

Ajoutez un nouvel écran dérivé d’exactement un écran existant : l’étape suivante du flux, 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-design-screens avec un fileId. Entrée Sortie : { status, fileId, screenIds, designGuidelinesUpdated }. status vaut toujours "generated".

ai-edit-screen-variant

Modifiez sur place exactement un écran existant à l’aide d’un préréglage : thématisez-le ou soignez-le, essayez une mise en page ou un style visuel différent, ou refaites-le entièrement. Pour des instructions libres ou une modification précise d’éléments individuels, utilisez ai-design-screens. Entrée Sortie : { status, fileId, screenIds, designGuidelinesUpdated }. status vaut toujours "generated".
Cette action écrase le contenu de l’écran, sur place.

Outils renommés

Les noms d’outils ont changé en septembre et octobre 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 IA acceptent elementIds (ou un seul screenId pour les outils de variante) 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 directives de conception acceptent fileId au lieu de resourceId et linkedTo.