get-screen-image, retornam o resultado duas vezes: como structuredContent (validado contra o esquema de saída publicado da ferramenta) e como o mesmo objeto serializado em um bloco de texto, { type: "text", text: "<json-string>" }, para clientes que não leem conteúdo estruturado. get-screen-image retorna somente um bloco de imagem do MCP: { type: "image", data: "<base64>", mimeType: "image/png" }.
Em caso de falha, isError: true é definido e o bloco de texto contém uma mensagem de erro curta. Erros que você pode resolver, como um nome que não corresponde na exclusão, um link inválido do Figma, diretrizes de design inválidas, um problema com anexo ou um tempo limite de geração, explicam o que corrigir. Outras falhas retornam uma mensagem genérica, como Failed to list files.
Preços: as três ferramentas de design com IA (
ai-design-screens, ai-generate-screen-variant e ai-edit-screen-variant) usam a mesma cota de mensagens do aplicativo Flowstep. Todas as outras ferramentas são gratuitas. Veja Limites de uso.delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens e ai-edit-screen-variant são marcadas como destrutivas, porque removem ou sobrescrevem conteúdo existente.
Ferramentas de arquivo
list-files
Lista os metadados dos seus arquivos do Flowstep. Chame-a primeiro para verificar se já existe um arquivo relevante. Ela não retorna conteúdo de telas: use get-screen-image ou get-screen-jsx para isso.
Entrada
Saída:
{ files }.
owner:truese você criou o arquivo.shared_with_me:truese o arquivo foi compartilhado diretamente com você, não apenas pela sua organização.url: abre o arquivo no editor do Flowstep.
get-file
Obtém os metadados de um único arquivo. O conteúdo do arquivo é omitido de propósito: use get-screen-image ou get-screen-jsx para inspecionar telas e get-design-guidelines para obter as diretrizes anexadas. Se você tiver um convite pendente para o arquivo, chamar get-file o aceita.
Entrada
Saída:
{ file, user_access_level }.
access_level:private,readouwrite.visibility:private,memberoupublic.user_access_level: o seu acesso ao arquivo:readouwrite.
create-file
Cria um arquivo em branco do Flowstep, sem telas. Para criar um arquivo e gerar telas em uma única etapa, chame ai-design-screens sem fileId. Use create-file em fluxos que começam pelo código, seguido de add-screen-jsx.
Entrada
Saída:
{ file, user_access_level }, no mesmo formato de get-file. owner é sempre true e user_access_level é sempre write.
Use o file.id retornado como fileId nas chamadas de ferramenta seguintes.
update-file
Renomeia um arquivo.
Entrada
Saída:
{ file, user_access_level }, no mesmo formato de get-file.
delete-file
Exclui um arquivo permanentemente. O name que você passa é comparado com o nome de exibição atual do arquivo antes da exclusão. Se não corresponder, a exclusão é cancelada. Isso evita apagar o arquivo errado por engano. Os agentes são instruídos a confirmar com você antes.
Entrada
Saída:
{ "deleted": true }
Ferramentas de tela
list-screens
Lista as telas de um arquivo, na ordem do canvas. Chame-a depois de list-files para ver o que já existe em um arquivo. Use os valores screenId retornados com as outras ferramentas de tela e com as ferramentas de design com IA.
Entrada
Saída:
{ screens }.
prompt: o último prompt de geração da tela, ou uma string vazia se ela nunca foi gerada (por exemplo, uma tela adicionada comadd-screen-jsx).fidelity:lofi,hifiouui.
get-screen-image
Renderiza uma tela em PNG e a retorna como imagem na conversa. Requer um cliente que ofereça suporte a blocos de conteúdo de imagem. Chame-a uma vez para cada screenId retornado por uma ferramenta de design com IA, por add-screen-jsx, replace-screen-jsx ou import-figma.
Entrada
Saída: bloco de conteúdo de imagem do MCP (
image/png). data é base64 padrão dos bytes do PNG, não uma data URI. Essa ferramenta não tem structuredContent.
get-screen-jsx
Obtém uma tela como JSX, junto com os seus metadados, para que você possa construir a partir dela no seu código ou editá-la e gravá-la de volta com replace-screen-jsx. Use get-screen-image para uma prévia visual.
Entrada
Saída:
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
jsx: somente a marcação. Os atributosdata-idsão incluídos apenas quandoincludeIdsétrue.prompt: o último prompt de geração, ou uma string vazia se a tela nunca foi gerada.fragments: elementos compartilhados armazenados na tela, como uma barra de navegação, um cabeçalho ou um logotipo, no formato de objetos{ purpose, markup }. Vazio quando não há nenhum. Passe-os de volta parareplace-screen-jsxpara mantê-los ou atualizá-los.
fidelity, screenType e colorTheme.
add-screen-jsx
Adiciona uma nova tela a um arquivo a partir de JSX que você escreveu. É o caminho para quem começa pelo código e é gratuito: use ai-design-screens quando quiser que a IA do Flowstep desenhe a tela. add-screen-jsx sempre cria uma nova tela: para sobrescrever uma existente, use replace-screen-jsx.
Para mostrar uma imagem que você enviou, veja Imagens em JSX.
Quando a nova tela se basear em uma existente, comece por get-screen-jsx (sem includeIds) para name, fidelity, screenType, colorTheme e jsx, e depois altere o que deve ser diferente.
Entrada
Saída:
{ fileId, screenId }. Chame get-screen-image com screenId para ver o resultado.
replace-screen-jsx
Sobrescreve uma tela existente com JSX que você escreveu. A tela mantém o seu screenId e a sua posição no canvas; os elementos aninhados recebem novos ids. É o caminho para quem começa pelo código e é gratuito: use ai-design-screens ou ai-edit-screen-variant para alterações com IA, e add-screen-jsx para criar uma nova tela.
Comece por get-screen-jsx (sem includeIds) e depois altere o que deve ser diferente. Para mostrar uma imagem que você enviou, veja Imagens em JSX.
Entrada
Saída:
{ fileId, screenId }. Chame get-screen-image com screenId para ver o resultado.
rename-screen
Renomeia o rótulo da tela no canvas: o nome exibido em list-screens e no editor. Isso altera somente o rótulo, não o layout, o tamanho ou o conteúdo da tela. Para isso, use ai-design-screens.
Entrada
Saída:
{ screenId, name }.
delete-screen
Exclui uma tela de um arquivo permanentemente. O name que você passa é comparado com o nome de exibição atual da tela. Se não corresponder, a exclusão é cancelada. Os agentes são instruídos a confirmar com você antes.
Entrada
Saída:
{ "deleted": true }
Imagens em JSX
add-screen-jsx e replace-screen-jsx aceitam imagens em um src de img ou como plano de fundo em className, com bg-[url(...)]. Escreva o texto de alt e dimensione cada imagem de acordo com a sua finalidade.
Para colocar uma imagem sua:
- Envie-a com
upload-attachmentno Modo A (mimeType+fileName) e execute ouploadCommandretornado. - Se o
typeda resposta for"image", cole oassetUrlexatamente como retornado noimg srcou embg-[url(assetUrl)].
get-screen-jsx as retornou. Não coloque path, signedUrl ou uploadCommand em src.
Valores dos campos da tela
get-screen-jsx retorna, e add-screen-jsx e replace-screen-jsx aceitam, estes valores:
Ferramentas de diretrizes de design
As diretrizes de design são textoDESIGN.md armazenado em um arquivo. Quando definidas, são injetadas em todas as gerações de IA desse arquivo. Veja Diretrizes de design.
get-design-guidelines
Obtém as diretrizes de design anexadas a um arquivo.
Entrada
Saída:
{ guidelines }.
guidelines é null se nenhuma diretriz tiver sido definida.
update-design-guidelines
Define ou substitui as diretrizes de design de um arquivo. Passe as diretrizes como uma string simples no formato DESIGN.md do Google, não como objeto ou JSON. Se você estiver lendo de um arquivo, passe o texto desse arquivo.
Entrada
Regras de validação
- O frontmatter precisa ser aberto e fechado corretamente
- As linhas do frontmatter precisam ser YAML válido no estilo de blocos
- O corpo em Markdown não pode conter cabeçalhos de seção
##duplicados
Invalid design guidelines:.
Saída: { updated, warnings? }.
warnings lista problemas de validação leves (chaves desconhecidas, cores que não são hexadecimais) que foram aceitos, mas que a IA pode ignorar. Ele é omitido quando não há nenhum. Mostre esses avisos ao usuário.
delete-design-guidelines
Limpa as diretrizes de design de um arquivo. Excluir diretrizes que não existem não tem efeito.
Entrada
Saída:
{ "deleted": true }
Ferramentas de chat
get-chat-history
Obtém a conversa de design associada a um arquivo: o chat do Flowstep do arquivo, não a conversa do seu cliente MCP. Use-a para retomar um trabalho anterior no arquivo.
Entrada
Saída:
{ messages }. messages fica vazio quando você não tem uma conversa de design no arquivo. Cada mensagem tem um type ("request" ou "response"), um author ("human" ou "ai") e um content_type. Mensagens de resposta usam "text", "summary" ou "followup".
Ferramentas de anexos
upload-attachment
Envia um arquivo de referência para usar como anexo em ai-design-screens, ou uma imagem para colocar no seu próprio JSX com add-screen-jsx ou replace-screen-jsx. ai-generate-screen-variant e ai-edit-screen-variant não aceitam anexos. Os bytes do arquivo nunca passam pelo modelo, e o servidor nunca busca URLs em seu nome. Para referenciar uma página da web, inclua a URL no message de ai-design-screens.
Há dois modos. Use exatamente um deles e não os combine.
Modo A: arquivos e imagens (mimeType + fileName)
Um fluxo obrigatório de três etapas para qualquer imagem, PDF ou arquivo de texto grande:
-
Chame
upload-attachmentsomente commimeTypeefileName(por exemplo,image/pngedog.png). A resposta é um envio preparado, não um arquivo armazenado: -
Substitua
LOCAL_FILE_PATHemuploadCommandpelo caminho absoluto do seu arquivo e execute esse comando exato no seu shell. Ele precisa terminar com código 0. O token emsignedUrlautoriza somente este envio único. Pular esta etapa deixa o armazenamento vazio, e a ferramenta de design falha na verificação prévia. -
Passe somente
{ id, path, type }para o arrayattachmentsdeai-design-screens, nãosignedUrl,uploadCommandnemnextStep. Para colocar uma imagem no seu próprio JSX, coloque oassetUrlnoimg srcou embg-[url(...)]do JSX que você passa paraadd-screen-jsxoureplace-screen-jsx. Veja Imagens em JSX.
curl) e depois siga as mesmas três etapas. Nunca passe uma URL para upload-attachment.
Modo B: texto curto (
text + mimeType)
Envia texto que já está no contexto, sem comando de shell. A resposta já pode ser usada diretamente:
Passe o
{ id, path, type } resultante para o array attachments de ai-design-screens.
O tamanho máximo do arquivo é de 3 MB nos dois modos, e PDFs são limitados a 100 páginas.
Saída: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
type:"image"para arquivos de imagem e"document"para PDFs e arquivos de texto.assetUrl: a URL do arquivo enviado, retornada nos dois modos. Use-a no JSX deadd-screen-jsxoureplace-screen-jsxsomente quandotypefor"image", e somente depois de executar ouploadCommanddo Modo A.signedUrl,uploadCommand,nextStep: definidos somente no Modo A. Não os passe para as ferramentas de design.
Ferramentas do Figma
import-figma
Importa um quadro do Figma para um arquivo do Flowstep como elementos editáveis no canvas dele. Cada importação adiciona uma nova tela: importar o mesmo quadro duas vezes gera duas telas, então exclua a antiga com delete-screen se você quis substituí-la. A organização do arquivo precisa ter o Figma conectado nas configurações do Flowstep.
Entrada
Saída:
{ fileId, screenId, frameCount? }. screenId é a tela importada: passe-o para get-screen-image para ver o resultado. Quando um link de página importa vários quadros, screenId é null e frameCount é retornado no lugar; chame list-screens e depois get-screen-image para cada nova tela.
Ferramentas de plano e cobrança
get-plan-details
Obtém o plano do Flowstep da sua organização, o status da assinatura, o uso e a cota restante. Não recebe entrada: a organização é identificada pelo usuário conectado. Use-a para verificar sua cota antes de chamar as ferramentas de design com IA.
Saída: { plan, subscription, limits, usage, remaining }.
Os limites variam conforme o plano. Veja Preços e Limites de uso.
Ferramentas de design com IA
Essas três ferramentas desenham a partir de uma descrição ou de uma predefinição. Elas nunca recebem nem reutilizam JSX. Cada chamada usa a mesma cota de mensagens do aplicativo Flowstep e bloqueia até que a geração termine ou atinja o tempo limite (180 segundos).
As três retornam
{ status, fileId, screenIds, designGuidelinesUpdated }. Chame get-screen-image uma vez para cada screenId para ver o resultado.
designGuidelinesUpdated: um resumo curto da alteração quando as diretrizesDESIGN.mddo arquivo foram atualizadas automaticamente durante este turno; caso contrário,null.
ai-design-screens
Gera uma ou mais telas novas, altera telas existentes no lugar, ou faz as duas coisas em uma única chamada, a partir de uma descrição em texto: novos fluxos, temas, textos, layout ou alterações coordenadas em várias telas. É o mesmo agente de design do chat no editor do Flowstep: ele decide, com base na sua message e em elementIds, o que criar e o que alterar.
Omita fileId para começar um novo arquivo; passe fileId para trabalhar em um arquivo existente. Se o pedido puder se aplicar a um arquivo que você já tem, o agente deve verificar list-files e list-screens primeiro. Para uma variante de próxima etapa, de estado de erro ou vazio, ou de plataforma de uma tela, use ai-generate-screen-variant. Para uma edição predefinida ou um redesenho de uma tela, use ai-edit-screen-variant. Se você já tiver JSX, use add-screen-jsx ou replace-screen-jsx.
Entrada
Exemplo: edite uma tela e adicione outra em uma única chamada:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status:"generated"quando telas foram criadas ou alteradas."chat"quando o Flowstep respondeu sem construir nada; nesse caso,replycontém a resposta escreenIdsfica vazio. Se o seu pedido for ambíguo, o agente deve pedir que você esclareça e chamar a ferramenta novamente.screenIds: todas as telas criadas ou alteradas durante a chamada, incluindo as telas editadas no lugar. Se a chamada atingir o tempo limite depois que algumas telas já foram criadas, ela retorna essas telas em vez de um erro.
ai-generate-screen-variant
Adiciona uma nova tela derivada de exatamente uma tela existente: a próxima etapa do fluxo, um estado de erro ou vazio, ou uma versão para outra plataforma. A tela original não é alterada. Para adicionar uma tela que não é variante de uma existente (por exemplo, uma tela de configurações), use ai-design-screens com um fileId.
Entrada
Saída:
{ status, fileId, screenIds, designGuidelinesUpdated }. status é sempre "generated".
ai-edit-screen-variant
Altera exatamente uma tela existente no lugar, usando uma predefinição: aplica um tema ou um acabamento visual, testa outro layout ou estilo visual, ou redesenha a tela do zero. Para instruções livres ou para uma edição precisa de elementos individuais, use ai-design-screens.
Entrada
Saída:
{ status, fileId, screenIds, designGuidelinesUpdated }. status é sempre "generated".
Ferramentas renomeadas
Os nomes de algumas ferramentas mudaram em setembro e outubro de 2026. Se você tiver prompts, scripts ou instruções de agente que usem os nomes antigos, atualize-os:
Os parâmetros também mudaram: as ferramentas de design com IA recebem
elementIds (ou um único screenId nas ferramentas de variante) em vez de targets; add-screen-jsx recebe jsx e campos de metadados explícitos em vez de jsxContent com um comentário de metadados; create-file recebe name em vez de title; e as ferramentas de diretrizes de design recebem fileId em vez de resourceId e linkedTo.