content contenant des blocs de contenu MCP. Les outils texte retournent { type: "text", text: "<json-string>" }. Les outils image retournent { type: "image", data: "<base64>", mimeType: "image/png" }. En cas d’erreur, isError: true est défini et le bloc texte contient le message d’erreur.
Outils fichier
list-files
Énumère les fichiers Flowstep de l’utilisateur actuel.
Entrée
Sortie — Tableau JSON d’objets fichier.
get-file
Obtient un seul fichier par ID. Le contenu du fichier est volontairement omis — utilisez get-screen ou get-screen-image pour inspecter les écrans, et get-design-guidelines pour récupérer les directives jointes.
Entrée
Sortie — Objet fichier JSON.
create-file
Crée un nouveau fichier Flowstep.
Entrée
Sortie — Objet fichier JSON contenant l’
id du nouveau fichier.
id retourné comme fileId dans les appels d’outils ultérieurs.
update-file
Renomme un fichier.
Entrée
Sortie — Objet fichier mis à jour avec la même forme que
get-file.
delete-file
Supprime définitivement un fichier. Le name que vous passez est vérifié par rapport au vrai nom du fichier avant la suppression — s’il ne correspond pas, la suppression est interrompue. Cela empêche de supprimer accidentellement le mauvais fichier.
Entrée
Sortie —
"File deleted successfully"
Outils écran
list-screens
Énumère tous les écrans générés pour un fichier. Utilisez les valeurs screenId retournées pour référencer les écrans dans get-screen, get-screen-image, upload-attachment, et comme targets dans edit-design, regenerate-design, ou expand-design.
Entrée
Sortie — Tableau JSON de résumés d’écrans.
name est le nom d’écran assigné par l’utilisateur, ou null s’il n’est pas nommé.
get-screen
Obtient le code JSX pour un écran vous permettant de modifier ou d’utiliser le code en dehors de Flowstep. Utilisez get-screen-image pour un aperçu visuel à la place.
Entrée
Sortie — L’écran en tant que code (JSX). Remarque : le commentaire de la première ligne est requis lors de l’utilisation de l’outil
add-screen.
add-screen
Ajoute un nouvel écran à un fichier Flowstep à partir d’une chaîne JSX brute.
Entrée
Remarque - Un commentaire similaire à celui ci-dessous DOIT être présent à la première ligne du JSX car il est utilisé pour ajouter l’écran correctement.
screenType, name, et screenId sont tous optionnels — screenId est utilisé (en interne) s’il est présent (par exemple, lors du passage de JSX copié à partir de la sortie de get-screen) mais n’est pas obligatoire. Le nom de l’écran est pris du champ name du commentaire (affiché comme « Copy of <name> »), ou « Untitled » s’il est absent.
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" -->
Sortie — L’ID de l’écran nouvellement ajouté.
get-screen-image
Rend un écran en PNG et le retourne comme image en ligne. Nécessite un client qui prend en charge les blocs de contenu d’image.
Entrée
Sortie — Bloc de contenu image MCP (
image/png).
Outils IA
create-new-design
Générez un ou plusieurs designs d’écrans à partir d’un prompt textuel. Omettez fileId pour créer un nouveau fichier automatiquement. Se bloque jusqu’à ce que la génération se termine ou expire (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Passez chaque screenId à get-screen-image pour voir les résultats.
regenerate-design
Refaites les écrans existants de zéro ou avec une variation de style. Nécessite au moins un screenId dans targets. Se bloque jusqu’à ce que la génération se termine ou expire (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Passez chaque screenId à get-screen-image pour voir les résultats.
expand-design
Ajoutez des écrans de suivi à une conception existante. Nécessite au moins un screenId dans targets et un operationVariant obligatoire. Se bloque jusqu’à ce que la génération se termine ou expire (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Passez chaque screenId à get-screen-image pour voir les résultats.
edit-design
Modifiez les écrans existants via un prompt. Nécessite au moins un screenId dans targets. Se bloque jusqu’à ce que la génération se termine ou expire (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Passez chaque screenId à get-screen-image pour voir les résultats.
upload-attachment
Téléchargez un fichier à utiliser comme pièce jointe dans create-new-design ou edit-design. Retourne { id, path, type, mimeType } — passez cet objet directement dans le tableau attachments.
Deux modes :
Mode 1 — Écran par ID
Passez screenId et fileId. Le serveur récupère l’état de l’écran à partir de la base de données et le rend comme une image.
Mode 2 — Fichier externe
Passez le contenu du fichier directement. Les fichiers binaires doivent être codés en base64 ; les fichiers texte (y compris le code source) sont passés en tant que chaînes UTF-8 simples.
Taille maximale du fichier : 3 MB. Pour les grandes images, préférez
image/jpeg à image/png.
Sortie
type est "image" pour les téléchargements d’image/PDF et "document" pour les fichiers texte/code.
Outils chat
get-chat-history
Obtenez l’historique des messages de chat pour un fichier.
Entrée
Sortie — Objet JSON avec un tableau
messages. Chaque message a un type ("request" ou "response"), author ("human" ou "ai"), et content_type ("text", "summary", ou "followup").
Outils conception
get-design-guidelines
Obtenez les directives de conception stockées pour un fichier.
Entrée
Sortie
guidelines est null si aucune directive n’a été définie.
update-design-guidelines
Définissez ou remplacez les directives de conception pour un fichier. Les directives sont passées en tant que chaîne texte simple au format design.md de Google — ne passez pas un objet ou JSON.
Le serveur effectue une validation logicielle et peut retourner une section Warnings: dans la réponse listant les problèmes (clés inconnues, couleurs non-hex) qui ont été acceptés mais peuvent être ignorés par l’IA. Affichez-les à l’utilisateur.
Entrée
Règles de validation
- Frontmatter doit être ouvert et fermé correctement
- Les lignes Frontmatter doivent être du YAML valide au niveau des blocs
- Le corps Markdown ne doit pas contenir de titres de sections
##dupliqués
"Design guidelines updated successfully", optionnellement suivi d’une section Warnings:.
delete-design-guidelines
Effacez les directives de conception pour un fichier.
Entrée
Sortie —
"Design guidelines deleted successfully"
Outils Figma
import-figma
Importez un cadre Figma dans un fichier Flowstep comme éléments modifiables sur son canevas. Réimporter le même cadre le met à jour sur place. L’organisation du fichier doit avoir Figma connecté dans les paramètres Flowstep.
Entrée
Sortie —
{ fileId, screenId }. screenId est l’id de l’élément d’écran importé — passez-le à get-screen-image pour voir le résultat. Lorsqu’une URL de page importe plusieurs cadres, screenId est null et frameCount est retourné à la place.