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
Salida — Matriz JSON de objetos de archivo.
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
Salida — Objeto de archivo JSON.
create-file
Crea un nuevo archivo de Flowstep.
Entrada
Salida — Objeto de archivo JSON con el
id del nuevo archivo.
id devuelto como fileId en llamadas de herramientas posteriores.
update-file
Cambia el nombre de un archivo.
Entrada
Salida — Objeto de archivo actualizado con la misma forma que
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
Salida —
"File deleted successfully"
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
Salida — Matriz JSON de resúmenes de pantalla.
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
Salida — La pantalla como código (JSX). Nota el comentario de la primera línea que se requiere al usar la herramienta
add-screen.
add-screen
Añade una nueva pantalla a un archivo de Flowstep desde una cadena JSX sin procesar.
Entrada
Nota - Un comentario similar al de abajo DEBE estar presente como la primera línea del JSX ya que se usa para añadir la pantalla correctamente.
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
Salida — Bloque de contenido de imagen MCP (
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
Salida —
{ 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
Salida —
{ 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
Salida —
{ 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
Salida —
{ 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.
Modo 2 — Archivo externo
Pasa el contenido del archivo directamente. Los archivos binarios deben codificarse en base64; los archivos de texto (incluido el código fuente) se pasan como cadenas UTF-8 simples.
Tamaño máximo de archivo: 3 MB. Para imágenes grandes, prefiere
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
Salida — Objeto JSON con un array
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
Salida
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
Reglas de validación
- 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
"Design guidelines updated successfully", opcionalmente seguido por una sección Warnings:.
delete-design-guidelines
Borra las directrices de diseño para un archivo.
Entrada
Salida —
"Design guidelines deleted successfully"
Herramientas de Figma
import-figma
Importa un frame de Figma a un archivo de Flowstep como elementos editables en su lienzo. Reimportar el mismo frame lo actualiza en su lugar. La organización del archivo debe tener Figma conectado en la configuración de Flowstep.
Entrada
Salida —
{ fileId, screenId }. screenId es el id del elemento de pantalla importado — pásalo a get-screen-image para ver el resultado. Cuando una URL de página importa múltiples frames, screenId es null y frameCount se devuelve en su lugar.