Pular para o conteúdo principal
Em caso de sucesso, todas as ferramentas, exceto 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.
Cada ferramenta também publica anotações do MCP para que o seu cliente saiba o que ela faz. 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: true se você criou o arquivo.
  • shared_with_me: true se 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, read ou write.
  • visibility: private, member ou public.
  • user_access_level: o seu acesso ao arquivo: read ou write.

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 }
Esta ação é irreversível. Todas as telas do arquivo são excluídas.

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 com add-screen-jsx).
  • fidelity: lofi, hifi ou ui.

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 atributos data-id são incluídos apenas quando includeIds é 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 para replace-screen-jsx para mantê-los ou atualizá-los.
Veja Valores dos campos da tela para os valores de 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.
Isso substitui o conteúdo da tela no lugar.

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:
  1. Envie-a com upload-attachment no Modo A (mimeType + fileName) e execute o uploadCommand retornado.
  2. Se o type da resposta for "image", cole o assetUrl exatamente como retornado no img src ou em bg-[url(assetUrl)].
Mantenha todas as outras URLs de imagem exatamente como 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 texto DESIGN.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
Se a validação falhar, a chamada retorna um erro que começa com 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:
  1. Chame upload-attachment somente com mimeType e fileName (por exemplo, image/png e dog.png). A resposta é um envio preparado, não um arquivo armazenado:
  2. Substitua LOCAL_FILE_PATH em uploadCommand pelo caminho absoluto do seu arquivo e execute esse comando exato no seu shell. Ele precisa terminar com código 0. O token em signedUrl autoriza somente este envio único. Pular esta etapa deixa o armazenamento vazio, e a ferramenta de design falha na verificação prévia.
  3. Passe somente { id, path, type } para o array attachments de ai-design-screens, não signedUrl, uploadCommand nem nextStep. Para colocar uma imagem no seu próprio JSX, coloque o assetUrl no img src ou em bg-[url(...)] do JSX que você passa para add-screen-jsx ou replace-screen-jsx. Veja Imagens em JSX.
Para anexar um arquivo remoto, baixe-o antes para um caminho local (por exemplo, com 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 de add-screen-jsx ou replace-screen-jsx somente quando type for "image", e somente depois de executar o uploadCommand do 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 diretrizes DESIGN.md do 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:
Saída: { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status: "generated" quando telas foram criadas ou alteradas. "chat" quando o Flowstep respondeu sem construir nada; nesse caso, reply contém a resposta e screenIds fica 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.
As telas que você pede para editar são sobrescritas no lugar.

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".
Isso sobrescreve o conteúdo da tela no lugar.

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.