content de 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 de fichier
list-files
Lister les fichiers Flowstep de l’utilisateur actuel.
Entrée
Sortie — Tableau JSON d’objets fichier.
get-file
Récupérer un seul fichier par ID. Le contenu du fichier est intentionnellement omis — utilisez get-screen ou get-screen-image pour inspecter les écrans, et get-design-guidelines pour récupérer les consignes attachées.
Entrée
Sortie — Objet fichier JSON.
create-file
Créer un nouveau fichier Flowstep.
Entrée
Sortie — Objet fichier JSON avec l’
id du nouveau fichier.
id retourné comme fileId dans les appels d’outil suivants.
update-file
Renommer un fichier.
Entrée
Sortie — Objet fichier mis à jour de la même forme que
get-file.
delete-file
Supprimer définitivement un fichier. Le name que vous transmettez est vérifié par rapport au nom réel du fichier avant la suppression — s’il ne correspond pas, la suppression est interrompue. Cela empêche la suppression accidentelle d’un mauvais fichier.
Entrée
Sortie —
"File deleted successfully"
Outils d’écran
list-screens
Lister 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’écran.
name est le nom d’écran assigné par l’utilisateur, ou null s’il n’est pas nommé.
get-screen
Récupérer le code JSX d’un écran pour vous permettre 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). Notez le commentaire de la première ligne qui est requis lors de l’utilisation de l’outil
add-screen.
add-screen
Ajouter un nouvel écran à un fichier Flowstep à partir d’une chaîne JSX brute.
Entrée
Note - Un commentaire similaire à celui ci-dessous DOIT être présent comme 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 ex. lors de la transmission du JSX copié de la sortie get-screen) mais n’est pas obligatoire. Le nom de l’écran est extrait 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 du nouvel écran ajouté.
get-screen-image
Rendre un écran au PNG et le retourner en tant qu’image intégrée. Nécessite un client qui prend en charge les blocs de contenu image.
Entrée
Sortie — Bloc de contenu image MCP (
image/png).
Outils IA
create-new-design
Générer une ou plusieurs conceptions d’écran à partir d’un prompt texte. Omettez fileId pour créer automatiquement un nouveau fichier. Bloque jusqu’à la fin de la génération ou jusqu’à expiration du délai (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Transmettez chaque screenId à get-screen-image pour voir les résultats.
regenerate-design
Refaire les écrans existants à partir de zéro ou avec une variation de style. Nécessite au moins un screenId dans targets. Bloque jusqu’à la fin de la génération ou jusqu’à expiration du délai (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Transmettez chaque screenId à get-screen-image pour voir les résultats.
expand-design
Ajouter des écrans de suivi à une conception existante. Nécessite au moins un screenId dans targets et un operationVariant obligatoire. Bloque jusqu’à la fin de la génération ou jusqu’à expiration du délai (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Transmettez chaque screenId à get-screen-image pour voir les résultats.
edit-design
Modifier les écrans existants via un prompt. Nécessite au moins un screenId dans targets. Bloque jusqu’à la fin de la génération ou jusqu’à expiration du délai (180 secondes).
Entrée
Sortie —
{ fileId, screenIds }. Transmettez chaque screenId à get-screen-image pour voir les résultats.
upload-attachment
Télécharger un fichier à utiliser comme pièce jointe dans create-new-design ou edit-design. Retourne { id, path, type, mimeType } — transmettez cet objet directement dans le tableau attachments.
Deux modes :
Mode 1 — Écran par ID
Transmettez screenId et fileId. Le serveur récupère l’état de l’écran de la base de données et le rend en tant qu’image.
Mode 2 — Fichier externe
Transmettez le contenu du fichier directement. Les fichiers binaires doivent être codés en base64 ; les fichiers texte (y compris le code source) sont transmis en tant que chaînes UTF-8 simples.
Taille de fichier maximale : 3 MB. Pour les grandes images, préférez
image/jpeg à image/png.
Sortie
type est "image" pour les téléchargements image/PDF et "document" pour les fichiers texte/code.
Outils de chat
get-chat-history
Récupérer l’historique des messages de chat pour un fichier.
Entrée
Sortie — Objet JSON avec un tableau
messages. Chaque message possède un type ("request" ou "response"), un author ("human" ou "ai"), et un content_type ("text", "summary", ou "followup").
Outils de conception
get-design-guidelines
Récupérer les consignes de conception stockées pour un fichier.
Entrée
Sortie
guidelines est null si aucune consigne n’a été définie.
update-design-guidelines
Définir ou remplacer les consignes de conception pour un fichier. Les consignes sont transmises en tant que chaîne texte simple au format design.md de Google — ne transmettez pas un objet ou JSON.
Le serveur effectue une validation souple 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. Présentez-les à l’utilisateur.
Entrée
Règles de validation
- L’en-tête doit être ouvert et fermé correctement
- Les lignes d’en-tête doivent être du YAML valide en style bloc
- Le corps Markdown ne doit pas contenir de titres de section
##dupliqués
"Design guidelines updated successfully", optionnellement suivi d’une section Warnings:.
delete-design-guidelines
Effacer les consignes de conception pour un fichier.
Entrée
Sortie —
"Design guidelines deleted successfully"
Outils Figma
import-figma
Importer un écran Figma dans un fichier Flowstep comme éléments modifiables sur son canevas. Réimporter le même écran 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 écran importé — transmettez-le à get-screen-image pour voir le résultat. Lorsqu’une URL de page importe plusieurs écrans, screenId est null et frameCount est retourné à la place.