Saltar al contenido principal
Al completarse correctamente, todas las herramientas excepto get-screen-image devuelven su resultado dos veces: como structuredContent (validado con el esquema de salida publicado de la herramienta) y como el mismo objeto serializado en un bloque de texto, { type: "text", text: "<json-string>" }, para los clientes que no leen contenido estructurado. get-screen-image devuelve solo un bloque de imagen de MCP: { type: "image", data: "<base64>", mimeType: "image/png" }. Al fallar, se establece isError: true y el bloque de texto contiene un mensaje de error breve. Los errores que puedes resolver (una falta de coincidencia al eliminar, un enlace de Figma no válido, directrices de diseño no válidas, un problema con un adjunto o un tiempo de espera de generación) explican qué corregir. Otros fallos devuelven un mensaje genérico, como Failed to list files.
Precios: las tres herramientas de diseño con IA (ai-design-screens, ai-generate-screen-variant y ai-edit-screen-variant) usan la misma asignación de mensajes que la app de Flowstep. Todas las demás herramientas son gratuitas. Consulta Límites de uso.
Cada herramienta también publica anotaciones de MCP para que tu cliente sepa qué hace. delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens y ai-edit-screen-variant se marcan como destructivas porque eliminan o sobrescriben contenido existente.

Herramientas de archivos

list-files

Lista los metadatos de tus archivos de Flowstep. Llámala primero para comprobar si ya existe un archivo relevante. No devuelve contenido de pantallas: para eso usa get-screen-image o get-screen-jsx. Entrada Salida: { files }.
  • owner: true si creaste el archivo.
  • shared_with_me: true si el archivo se compartió contigo directamente, no solo a través de tu organización.
  • url: abre el archivo en el editor de Flowstep.

get-file

Obtén los metadatos de un único archivo. El contenido del archivo se omite a propósito: usa get-screen-image o get-screen-jsx para inspeccionar pantallas, y get-design-guidelines para obtener las directrices adjuntas. Si tienes una invitación pendiente al archivo, llamar a get-file la acepta. Entrada Salida: { file, user_access_level }.
  • access_level: private, read o write.
  • visibility: private, member o public.
  • user_access_level: tu acceso al archivo: read o write.

create-file

Crea un archivo de Flowstep en blanco, sin pantallas. Para crear un archivo y generar pantallas en un solo paso, llama a ai-design-screens sin fileId. Usa create-file en flujos de trabajo que empiezan con código, seguido de add-screen-jsx. Entrada Salida: { file, user_access_level }, con la misma forma que get-file. owner siempre es true y user_access_level siempre es write. Usa el file.id devuelto como fileId en las llamadas posteriores a las herramientas.

update-file

Cambia el nombre de un archivo. Entrada Salida: { file, user_access_level }, con la misma forma que get-file.

delete-file

Elimina un archivo de forma permanente. El name que pasas se compara con el nombre visible actual del archivo antes de eliminarlo; si no coincide, la eliminación se cancela. Así se evita borrar por error el archivo equivocado. A los agentes se les indica que te pidan confirmación primero. Entrada Salida: { "deleted": true }
Esta acción es irreversible. Se eliminan todas las pantallas del archivo.

Herramientas de pantallas

list-screens

Lista las pantallas de un archivo, en el orden del lienzo. Llámala después de list-files para ver qué hay en un archivo. Usa los valores screenId devueltos con las demás herramientas de pantallas y con las herramientas de diseño con IA. Entrada Salida: { screens }.
  • prompt: el último prompt de generación de la pantalla, o una cadena vacía si nunca se generó (por ejemplo, una pantalla añadida con add-screen-jsx).
  • fidelity: lofi, hifi o ui.

get-screen-image

Renderiza una pantalla a PNG y la devuelve como imagen en línea. Requiere un cliente que admita bloques de contenido de imagen. Llámala una vez por cada screenId devuelto por una herramienta de diseño con IA, add-screen-jsx, replace-screen-jsx o import-figma. Entrada Salida: bloque de contenido de imagen de MCP (image/png). data es base64 estándar de los bytes del PNG, no una URI de datos. Esta herramienta no devuelve structuredContent.

get-screen-jsx

Obtén una pantalla como JSX, junto con sus metadatos, para que puedas construir a partir de ella en tu código, o editarla y escribirla de vuelta con replace-screen-jsx. Para una vista previa visual, usa get-screen-image. Entrada Salida: { fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
  • jsx: solo marcado. Los atributos data-id se incluyen únicamente cuando includeIds es true.
  • prompt: el último prompt de generación, o una cadena vacía si la pantalla nunca se generó.
  • fragments: elementos compartidos guardados en la pantalla, como una barra de navegación, un encabezado o un logotipo, en forma de objetos { purpose, markup }. Está vacío cuando no hay ninguno. Pásalos de vuelta a replace-screen-jsx para conservarlos o actualizarlos.
Consulta Valores de los campos de pantalla para los valores de fidelity, screenType y colorTheme.

add-screen-jsx

Añade una pantalla nueva a un archivo a partir de JSX que hayas escrito. Es la ruta que empieza con código y es gratuita: usa ai-design-screens cuando quieras que la IA de Flowstep diseñe la pantalla. add-screen-jsx siempre crea una pantalla nueva: para sobrescribir una existente, usa replace-screen-jsx. Para mostrar una imagen que hayas subido, consulta Imágenes en JSX. Cuando la pantalla nueva se basa en una existente, parte de get-screen-jsx (sin includeIds) para name, fidelity, screenType, colorTheme y jsx, y luego cambia lo que deba ser distinto. Entrada Salida: { fileId, screenId }. Llama a get-screen-image con screenId para ver el resultado.

replace-screen-jsx

Sobrescribe una pantalla existente con JSX que hayas escrito. La pantalla conserva su screenId y su posición en el lienzo; los elementos anidados reciben ids nuevos. Es la ruta que empieza con código y es gratuita: usa ai-design-screens o ai-edit-screen-variant para cambios con IA, y add-screen-jsx para crear una pantalla nueva en su lugar. Parte de get-screen-jsx (sin includeIds) y luego cambia lo que deba ser distinto. Para mostrar una imagen que hayas subido, consulta Imágenes en JSX. Entrada Salida: { fileId, screenId }. Llama a get-screen-image con screenId para ver el resultado.
Esto reemplaza el contenido de la pantalla en su lugar.

rename-screen

Cambia el nombre de la etiqueta de una pantalla en el lienzo: el nombre que muestran list-screens y el editor. Esto cambia solo la etiqueta, no la disposición, el tamaño ni el contenido de la pantalla; para eso usa ai-design-screens. Entrada Salida: { screenId, name }.

delete-screen

Elimina una pantalla de un archivo de forma permanente. El name que pasas se compara con el nombre visible actual de la pantalla; si no coincide, la eliminación se cancela. A los agentes se les indica que te pidan confirmación primero. Entrada Salida: { "deleted": true }

Imágenes en JSX

add-screen-jsx y replace-screen-jsx aceptan imágenes en un src de img, o como fondo en className con bg-[url(...)]. Escribe texto alt y ajusta el tamaño de cada imagen según su uso. Para colocar una imagen propia:
  1. Súbela con upload-attachment en el Modo A (mimeType + fileName) y ejecuta el uploadCommand devuelto.
  2. Si el type de la respuesta es "image", pega su assetUrl exactamente como se devolvió en img src o en bg-[url(assetUrl)].
Deja cualquier otra URL de imagen exactamente como la devolvió get-screen-jsx. No pongas path, signedUrl ni uploadCommand en src.

Valores de los campos de pantalla

get-screen-jsx devuelve, y add-screen-jsx y replace-screen-jsx aceptan, estos valores:

Herramientas de directrices de diseño

Las directrices de diseño son texto DESIGN.md almacenado en un archivo. Cuando están definidas, se inyectan en cada generación de IA de ese archivo. Consulta Directrices de diseño.

get-design-guidelines

Obtén las directrices de diseño adjuntas a un archivo. Entrada Salida: { guidelines }.
guidelines es null si no se han definido directrices.

update-design-guidelines

Define o reemplaza las directrices de diseño de un archivo. Pasa las directrices como una cadena de texto plano en el formato DESIGN.md de Google, no como un objeto ni como JSON. Si las lees de un archivo, pasa el texto de ese archivo. Entrada Reglas de validación
  • El frontmatter debe abrirse y cerrarse correctamente
  • Las líneas del frontmatter deben ser YAML válido de estilo bloque
  • El cuerpo en Markdown no debe contener encabezados de sección ## duplicados
Si la validación falla, la llamada devuelve un error que empieza por Invalid design guidelines:. Salida: { updated, warnings? }.
warnings enumera los problemas de validación blanda (claves desconocidas, colores que no son hexadecimales) que se aceptaron pero que la IA podría ignorar. Se omite cuando no hay ninguno. Muéstralos al usuario.

delete-design-guidelines

Borra las directrices de diseño de un archivo. Eliminar directrices que no existen no tiene ningún efecto. Entrada Salida: { "deleted": true }

Herramientas de chat

get-chat-history

Obtén la conversación de diseño asociada a un archivo: el chat de Flowstep del archivo, no la conversación de tu cliente de MCP. Úsala para retomar trabajo anterior en el archivo. Entrada Salida: { messages }. messages está vacío cuando no tienes una conversación de diseño en el archivo. Cada mensaje tiene un type ("request" o "response"), un author ("human" o "ai") y un content_type. Los mensajes de respuesta usan "text", "summary" o "followup".

Herramientas de adjuntos

upload-attachment

Sube un archivo de referencia para usarlo como adjunto en ai-design-screens, o una imagen para colocarla en tu propio JSX con add-screen-jsx o replace-screen-jsx. ai-generate-screen-variant y ai-edit-screen-variant no aceptan adjuntos. Los bytes del archivo nunca pasan por el modelo, y el servidor nunca descarga URL en tu nombre. Para referenciar una página web, incluye su URL en el message de ai-design-screens. Hay dos modos: usa exactamente uno y no los combines. Modo A: archivos e imágenes (mimeType + fileName) Un flujo obligatorio de tres pasos para cualquier imagen, PDF o archivo de texto grande:
  1. Llama a upload-attachment solo con mimeType y fileName (por ejemplo, image/png y dog.png). La respuesta es una subida preparada, no un archivo almacenado:
  2. Reemplaza LOCAL_FILE_PATH en uploadCommand con la ruta absoluta de tu archivo y ejecuta ese comando exacto en tu terminal: debe terminar con código 0. El token de signedUrl autoriza solo esta subida. Omitir este paso deja el almacenamiento vacío y la herramienta de diseño falla su comprobación previa.
  3. Pasa solo { id, path, type } al arreglo attachments de ai-design-screens: no signedUrl, uploadCommand ni nextStep. Para colocar una imagen en tu propio JSX, pon assetUrl en el img src o en el bg-[url(...)] del JSX que pases a add-screen-jsx o replace-screen-jsx. Consulta Imágenes en JSX.
Para adjuntar un archivo remoto, descárgalo primero a una ruta local (por ejemplo, con curl) y luego sigue los mismos tres pasos. Nunca pases una URL a upload-attachment. Modo B: texto corto (text + mimeType) Sube texto que ya está en contexto, sin necesidad de comando de terminal. La respuesta está lista para usarse directamente:
Pasa el { id, path, type } resultante al arreglo attachments de ai-design-screens. La subida máxima es de 3 MB en ambos modos, y los PDF tienen un límite de 100 páginas. Salida: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
  • type: "image" para archivos de imagen y "document" para PDF y archivos de texto.
  • assetUrl: la URL del archivo subido, devuelta en ambos modos. Úsala en el JSX de add-screen-jsx o replace-screen-jsx solo cuando type sea "image", y solo después de ejecutar el uploadCommand del Modo A.
  • signedUrl, uploadCommand, nextStep: se devuelven solo en el Modo A. No los pases a las herramientas de diseño.

Herramientas de Figma

import-figma

Importa un marco de Figma a un archivo de Flowstep como elementos editables en su lienzo. Cada importación añade una pantalla nueva: importar el mismo marco dos veces te da dos pantallas, así que elimina la anterior con delete-screen si querías reemplazarla. La organización del archivo debe tener Figma conectado en la configuración de Flowstep. Entrada Salida: { fileId, screenId, frameCount? }. screenId es la pantalla importada: pásala a get-screen-image para ver el resultado. Cuando una URL de página importa varios marcos, screenId es null y se devuelve frameCount en su lugar; llama a list-screens y luego a get-screen-image para cada pantalla nueva.

Herramientas de plan y facturación

get-plan-details

Obtén el plan de Flowstep de tu organización, el estado de la suscripción, el uso y la cuota restante. No requiere entrada: la organización se determina a partir del usuario que inició sesión. Úsala para revisar tu asignación antes de llamar a las herramientas de diseño con IA. Salida: { plan, subscription, limits, usage, remaining }. Los límites varían según el plan: consulta Precios y Límites de uso.

Herramientas de diseño con IA

Estas tres herramientas diseñan a partir de una descripción o de un preajuste: nunca reciben ni reutilizan JSX. Cada llamada usa la misma asignación de mensajes que la app de Flowstep y se bloquea hasta que la generación termina o agota el tiempo de espera (180 segundos). Las tres devuelven { status, fileId, screenIds, designGuidelinesUpdated }. Llama a get-screen-image una vez por cada screenId para ver el resultado.
  • designGuidelinesUpdated: un resumen breve del cambio cuando las directrices DESIGN.md del archivo se actualizaron automáticamente durante este turno; de lo contrario, null.

ai-design-screens

Genera una o varias pantallas nuevas, cambia pantallas existentes en su lugar, o ambas cosas en una sola llamada, a partir de una descripción de texto: flujos nuevos, temas, textos, disposición o cambios coordinados en varias pantallas. Es el mismo agente de diseño que el chat del editor de Flowstep: decide, a partir de tu message y de elementIds, qué crear y qué cambiar. Omite fileId para empezar un archivo nuevo; pasa fileId para trabajar en uno existente. Si la solicitud podría aplicarse a un archivo que ya tienes, tu agente debe consultar antes list-files y list-screens. Para una variante de siguiente paso, de estado de error o vacío, o de plataforma de una pantalla, usa ai-generate-screen-variant. Para un preajuste de edición o rediseño de una pantalla, usa ai-edit-screen-variant. Si ya tienes JSX, usa add-screen-jsx o replace-screen-jsx. Entrada Ejemplo: edita una pantalla y añade otra en una sola llamada:
Salida: { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status: "generated" cuando se crearon o cambiaron pantallas. "chat" cuando Flowstep respondió sin crear nada; en ese caso, reply contiene su respuesta y screenIds está vacío. Si tu encargo es ambiguo, tu agente debe pedirte que lo aclares y volver a llamar a la herramienta.
  • screenIds: cada pantalla creada o cambiada durante la llamada, incluidas las editadas en su lugar. Si la llamada agota el tiempo de espera después de crear algunas pantallas, devuelve esas pantallas en lugar de un error.
Las pantallas que le pidas editar se sobrescriben en su lugar.

ai-generate-screen-variant

Añade una pantalla nueva derivada de exactamente una pantalla existente: el siguiente paso del flujo, un estado de error o vacío, o una versión para otra plataforma. La pantalla original no cambia. Para añadir una pantalla que no sea variante de una existente (por ejemplo, una pantalla de ajustes), usa ai-design-screens con un fileId. Entrada Salida: { status, fileId, screenIds, designGuidelinesUpdated }. status siempre es "generated".

ai-edit-screen-variant

Cambia exactamente una pantalla existente en su lugar usando un preajuste: ajústala o púlela, prueba una disposición o un estilo visual diferente, o rediséñala desde cero. Para instrucciones libres, nuevas pantallas o una edición precisa de elementos individuales, usa ai-design-screens. Entrada Salida: { status, fileId, screenIds, designGuidelinesUpdated }. status siempre es "generated".
Esto sobrescribe el contenido de la pantalla en su lugar.

Herramientas renombradas

Los nombres de las herramientas cambiaron en septiembre y octubre de 2026. Si tienes prompts, scripts o instrucciones de agente que usan los nombres antiguos, actualízalos: También cambiaron los parámetros: las herramientas de diseño con IA aceptan elementIds (o un único screenId para las herramientas de variantes) en lugar de targets; add-screen-jsx acepta jsx y campos de metadatos explícitos en lugar de jsxContent con un comentario de metadatos; create-file acepta name en lugar de title; y las herramientas de directrices de diseño aceptan fileId en lugar de resourceId y linkedTo.