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.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:truesi creaste el archivo.shared_with_me:truesi 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,readowrite.visibility:private,memberopublic.user_access_level: tu acceso al archivo:readowrite.
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 }
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 conadd-screen-jsx).fidelity:lofi,hifioui.
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 atributosdata-idse incluyen únicamente cuandoincludeIdsestrue.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 areplace-screen-jsxpara conservarlos o actualizarlos.
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.
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:
- Súbela con
upload-attachmenten el Modo A (mimeType+fileName) y ejecuta eluploadCommanddevuelto. - Si el
typede la respuesta es"image", pega suassetUrlexactamente como se devolvió enimg srco enbg-[url(assetUrl)].
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 textoDESIGN.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
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:
-
Llama a
upload-attachmentsolo conmimeTypeyfileName(por ejemplo,image/pngydog.png). La respuesta es una subida preparada, no un archivo almacenado: -
Reemplaza
LOCAL_FILE_PATHenuploadCommandcon la ruta absoluta de tu archivo y ejecuta ese comando exacto en tu terminal: debe terminar con código 0. El token designedUrlautoriza solo esta subida. Omitir este paso deja el almacenamiento vacío y la herramienta de diseño falla su comprobación previa. -
Pasa solo
{ id, path, type }al arregloattachmentsdeai-design-screens: nosignedUrl,uploadCommandninextStep. Para colocar una imagen en tu propio JSX, ponassetUrlen elimg srco en elbg-[url(...)]del JSX que pases aadd-screen-jsxoreplace-screen-jsx. Consulta Imágenes en JSX.
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 deadd-screen-jsxoreplace-screen-jsxsolo cuandotypesea"image", y solo después de ejecutar eluploadCommanddel 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 directricesDESIGN.mddel 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:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status:"generated"cuando se crearon o cambiaron pantallas."chat"cuando Flowstep respondió sin crear nada; en ese caso,replycontiene su respuesta yscreenIdsestá 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.
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".
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.