content de bloques de contenido MCP. Las herramientas de texto devuelven { type: "text", text: "<json-string>" }. Las herramientas de imagen devuelven { type: "image", data: "<base64>", mimeType: "image/png" }. En caso de fallo, isError: true se establece y el bloque de texto contiene el mensaje de error.
Herramientas de archivo
list-files
Enumera los archivos de Flowstep para el usuario actual.
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
orderByCreation | boolean | true | Ordenar por fecha de creación |
limit | integer (1–100) | 20 | Número de archivos a devolver |
offset | integer (≥0) | 0 | Desplazamiento de paginación |
get-file
Obtén un único archivo por ID. El contenido del archivo se omite intencionalmente — usa get-screen o get-screen-image para inspeccionar pantallas, y get-design-guidelines para recuperar las directrices adjuntas.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
id | uuid | ID del archivo |
create-file
Crea un nuevo archivo de Flowstep.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
title | string (min 1) | Nombre del archivo |
id del nuevo archivo.
id devuelto como fileId en llamadas de herramientas posteriores.
update-file
Cambia el nombre de un archivo.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
id | uuid | ID del archivo |
name | string (min 1) | Nuevo nombre |
get-file.
delete-file
Elimina permanentemente un archivo. El name que pasas se verifica contra el nombre real del archivo antes de la eliminación — si no coincide, la eliminación se cancela. Esto evita eliminar accidentalmente el archivo incorrecto.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
id | uuid | ID del archivo |
name | string | Nombre actual del archivo — debe coincidir exactamente o la eliminación se cancela |
"Archivo eliminado correctamente"
Herramientas de pantalla
list-screens
Enumera todas las pantallas generadas para un archivo. Usa los valores de screenId devueltos para hacer referencia a las pantallas en get-screen, get-screen-image, upload-attachment, y como targets en edit-design, regenerate-design, o expand-design.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
fileId | uuid | ID del archivo |
name es el nombre de pantalla asignado por el usuario, o null si no tiene nombre.
get-screen
Obtén el código JSX de una pantalla para que puedas editar o usar el código fuera de Flowstep. Usa get-screen-image para una vista previa visual en su lugar.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
fileId | uuid | ID del archivo |
screenId | uuid | El screenId devuelto por list-screens o del array screenIds devuelto por una herramienta de diseño |
add-screen.
add-screen
Añade una nueva pantalla a un archivo de Flowstep desde una cadena JSX sin procesar.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
fileId | uuid | ID del archivo |
jsxContent | string | JSX a añadir al archivo como una pantalla |
screenType | string | Se requiere si el tipo de pantalla no se define como comentario al inicio del JSX |
screenType, name, y screenId son todos opcionales — screenId se usa (internamente) si está presente (por ejemplo, al pasar JSX copiado de la salida de get-screen) pero no es obligatorio. El nombre de pantalla se toma del campo name del comentario (mostrado como “Copy of <name>”), u “Untitled” si está ausente.
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" -->
Salida — El Id de la pantalla recién añadida.
get-screen-image
Renderiza una pantalla a PNG y devuélvela como una imagen en línea. Requiere un cliente que admita bloques de contenido de imagen.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
fileId | uuid | ID del archivo |
screenId | uuid | El screenId devuelto por list-screens o del array screenIds devuelto por una herramienta de diseño |
image/png).
Herramientas de IA
create-new-design
Genera uno o más diseños de pantalla desde un prompt de texto. Omite fileId para crear un nuevo archivo automáticamente. Se bloquea hasta que la generación se complete o agote el tiempo de espera (180 segundos).
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
fileId | uuid | — | Archivo de destino — omite para crear un nuevo archivo automáticamente |
message | string | — | Prompt describiendo las pantallas a generar |
attachments | AttachmentRequestData[] (max 5) | [] | Archivos adjuntos precargados — imágenes, PDFs o archivos de código. Siempre sube a través de upload-attachment primero; no incluyas el contenido del archivo en el mensaje |
designs | DesignRequestData[] | [] | Referencias de diseño |
{ fileId, screenIds }. Pasa cada screenId a get-screen-image para ver los resultados.
regenerate-design
Rehace pantallas existentes desde cero o con una variación de estilo. Requiere al menos un screenId en targets. Se bloquea hasta que la generación se complete o agote el tiempo de espera (180 segundos).
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
fileId | uuid | — | Archivo de destino |
message | string | — | Texto del prompt |
targets | uuid[] (min 1) | — | screenIds de pantallas a regenerar |
operationVariant | "different_layout" | "different_style" | "from_scratch" | — | Variante de estilo opcional |
designs | DesignRequestData[] | [] | Referencias de diseño (resueltas automáticamente) |
{ fileId, screenIds }. Pasa cada screenId a get-screen-image para ver los resultados.
expand-design
Añade pantallas de seguimiento a un diseño existente. Requiere al menos un screenId en targets y un operationVariant obligatorio. Se bloquea hasta que la generación se complete o agote el tiempo de espera (180 segundos).
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
fileId | uuid | — | Archivo de destino |
message | string | — | Texto del prompt |
targets | uuid[] (min 1) | — | screenIds de pantallas desde las que expandir |
operationVariant | "next_screen" | "error_state" | "empty_state" | "web_version" | "mobile_version" | "tablet_version" | "mobile_ios_version" | "mobile_android_version" | — | Requerido — tipo de pantalla de seguimiento a generar |
designs | DesignRequestData[] | [] | Referencias de diseño (resueltas automáticamente) |
{ fileId, screenIds }. Pasa cada screenId a get-screen-image para ver los resultados.
edit-design
Modifica pantallas existentes a través de un prompt. Requiere al menos un screenId en targets. Se bloquea hasta que la generación se complete o agote el tiempo de espera (180 segundos).
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
fileId | uuid | — | Archivo de destino |
message | string | — | Instrucciones describiendo las ediciones a aplicar |
targets | uuid[] (min 1) | — | screenIds de pantallas a editar |
operationVariant | "dark_theme" | "light_theme" | "make_pretty" | — | Atajo de estilo opcional |
attachments | AttachmentRequestData[] (max 5) | [] | Archivos adjuntos precargados. Siempre sube a través de upload-attachment primero |
designs | DesignRequestData[] | [] | Referencias de diseño (resueltas automáticamente) |
{ fileId, screenIds }. Pasa cada screenId a get-screen-image para ver los resultados.
upload-attachment
Sube un archivo para usarlo como un archivo adjunto en create-new-design o edit-design. Devuelve { id, path, type, mimeType } — pasa este objeto directamente al array attachments.
Dos modos:
Modo 1 — Pantalla por ID
Pasa screenId y fileId. El servidor obtiene el estado de la pantalla de la base de datos y la renderiza como una imagen.
| Parámetro | Tipo | Descripción |
|---|---|---|
fileId | uuid | Archivo que contiene la pantalla (requerido) |
screenId | uuid | Pantalla a renderizar |
| Parámetro | Tipo | Descripción |
|---|---|---|
fileData | string | Contenido del archivo — base64 para binario, cadena UTF-8 para texto |
fileName | string | Nombre de archivo original |
mimeType | "image/jpeg" | "image/png" | "image/webp" | "application/pdf" | "text/plain" | "text/javascript" | Tipo MIME. Usa text/javascript para archivos .jsx, .tsx, .js, .ts |
image/jpeg sobre image/png.
Salida
type es "image" para cargas de imagen/PDF y "document" para archivos de texto/código.
Herramientas de chat
get-chat-history
Obtén el historial de mensajes de chat de un archivo.
Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
fileId | uuid | ID del archivo |
messages. Cada mensaje tiene un type ("request" o "response"), author ("human" o "ai"), y content_type ("text", "summary", o "followup").
Herramientas de diseño
get-design-guidelines
Obtén las directrices de diseño almacenadas para un archivo.
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
resourceId | uuid | — | ID del archivo |
linkedTo | "file" | "file" | Tipo de recurso |
guidelines es null si no se han establecido directrices.
update-design-guidelines
Establece o reemplaza las directrices de diseño para un archivo. Las directrices se pasan como una cadena de texto plano en el formato design.md de Google — no pases un objeto o JSON.
El servidor realiza una validación suave y puede devolver una sección Warnings: en la respuesta enumerando problemas (claves desconocidas, colores no hexadecimales) que fueron aceptados pero pueden ser ignorados por la IA. Presenta estos al usuario.
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
resourceId | uuid | — | ID del archivo |
designGuidelines | string (min 1) | — | Contenido de texto sin procesar de las directrices. Debe ser una cadena simple — no codificada en JSON |
linkedTo | "file" | "file" | Tipo de recurso |
- El frontmatter debe abrirse y cerrarse correctamente
- Las líneas del frontmatter deben ser YAML de estilo de bloque válido
- El cuerpo de Markdown no debe contener encabezados de sección
##duplicados
"Directrices de diseño actualizadas correctamente", opcionalmente seguido por una sección Warnings:.
delete-design-guidelines
Borra las directrices de diseño para un archivo.
Entrada
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
resourceId | uuid | — | ID del archivo |
linkedTo | "file" | "file" | Tipo de recurso |
"Directrices de diseño eliminadas correctamente"