Saltar para o conteúdo principal
Em caso de sucesso, todas as ferramentas exceto get-screen-image devolvem o resultado duas vezes: como structuredContent (validado contra o esquema de saída publicado da ferramenta) e como o mesmo objeto serializado num bloco de texto, { type: "text", text: "<json-string>" }, para clientes que não leem conteúdo estruturado. get-screen-image devolve apenas um bloco de imagem 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. Os erros que pode resolver (uma incompatibilidade de nome ao eliminar, uma ligação inválida do Figma, diretrizes de design inválidas, um problema com um anexo ou um tempo limite de geração) explicam o que corrigir. Outras falhas devolvem 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 quota de mensagens da aplicação Flowstep. Todas as outras ferramentas são gratuitas. Consulte Limites de utilização.
Cada ferramenta também publica anotações MCP que indicam ao cliente o que faz. delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens e ai-edit-screen-variant estão marcadas como destrutivas, porque removem ou substituem conteúdo existente.

Ferramentas de ficheiros

list-files

Lista os metadados dos seus ficheiros do Flowstep. Chame esta ferramenta primeiro para verificar se já existe um ficheiro relevante. Não devolve conteúdo de ecrãs: para isso, use get-screen-image ou get-screen-jsx. Entrada Saída: { files }.
  • owner: true se criou o ficheiro.
  • shared_with_me: true se o ficheiro foi partilhado consigo diretamente, e não apenas através da sua organização.
  • url: abre o ficheiro no editor do Flowstep.

get-file

Obtém os metadados de um único ficheiro. O conteúdo do ficheiro é omitido de propósito: use get-screen-image ou get-screen-jsx para inspecionar ecrãs, e get-design-guidelines para obter as diretrizes associadas. Se tiver um convite pendente para o ficheiro, chamar get-file aceita-o. 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 ficheiro: read ou write.

create-file

Cria um ficheiro do Flowstep em branco, sem ecrãs. Para criar um ficheiro e gerar ecrãs num só passo, chame ai-design-screens sem fileId. Use create-file em fluxos de trabalho centrados no código, seguido de add-screen-jsx. Entrada Saída: { file, user_access_level }, com a mesma estrutura de get-file. owner é sempre true e user_access_level é sempre write. Use o file.id devolvido como fileId nas chamadas seguintes.

update-file

Muda o nome de um ficheiro. Entrada Saída: { file, user_access_level }, com a mesma estrutura de get-file.

delete-file

Elimina permanentemente um ficheiro. O name que passa é comparado com o nome de apresentação atual do ficheiro antes da eliminação. Se não corresponder, a eliminação é cancelada. Isto evita eliminar o ficheiro errado por engano. Os agentes têm instruções para confirmar consigo primeiro. Entrada Saída: { "deleted": true }
Esta ação é irreversível. Todos os ecrãs do ficheiro são eliminados.

Ferramentas de ecrãs

list-screens

Lista os ecrãs de um ficheiro, pela ordem da tela. Chame esta ferramenta depois de list-files para ver o que já existe num ficheiro. Use os valores screenId devolvidos com as outras ferramentas de ecrãs e com as ferramentas de design com IA. Entrada Saída: { screens }.
  • prompt: o último prompt de geração do ecrã, ou uma string vazia se nunca foi gerado (por exemplo, um ecrã adicionado com add-screen-jsx).
  • fidelity: lofi, hifi ou ui.

get-screen-image

Renderiza um ecrã em PNG e devolve-o como imagem em linha. Requer um cliente que suporte blocos de conteúdo de imagem. Chame esta ferramenta uma vez para cada screenId devolvido por uma ferramenta de design com IA, por add-screen-jsx, por replace-screen-jsx ou por import-figma. Entrada Saída: bloco de conteúdo de imagem MCP (image/png). data é base64 padrão dos bytes do PNG, e não um URI de dados. Esta ferramenta não tem structuredContent.

get-screen-jsx

Obtém um ecrã como JSX, junto com os respetivos metadados, para que possa construir a partir dele no seu código ou editá-lo e devolvê-lo com replace-screen-jsx. Use get-screen-image para uma pré-visualização visual. Entrada Saída: { fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
  • jsx: apenas marcação. Os atributos data-id só são incluídos quando includeIds é true.
  • prompt: o último prompt de geração, ou uma string vazia se o ecrã nunca foi gerado.
  • fragments: elementos partilhados guardados no ecrã, como uma barra de navegação, um cabeçalho ou um logótipo, na forma de objetos { purpose, markup }. Vazio quando não há nenhum. Passe-os de volta para replace-screen-jsx para os manter ou atualizar.
Consulte Valores dos campos para os valores de fidelity, screenType e colorTheme.

add-screen-jsx

Adiciona um novo ecrã a um ficheiro a partir de JSX que escreveu. É o caminho centrado no código e é gratuito. Use ai-design-screens quando quiser que a IA do Flowstep desenhe o ecrã. add-screen-jsx cria sempre um novo ecrã: para substituir um existente, use replace-screen-jsx. Para mostrar uma imagem que carregou, consulte Imagens em JSX. Quando o novo ecrã se baseia num existente, comece por get-screen-jsx (sem includeIds) para obter name, fidelity, screenType, colorTheme e jsx, e depois altere o que deve ser diferente. Entrada Saída: { fileId, screenId }. Chame get-screen-image com o screenId para ver o resultado.

replace-screen-jsx

Substitui um ecrã existente por JSX que escreveu. O ecrã mantém o seu screenId e a sua posição na tela, e os elementos aninhados recebem novos IDs. É o caminho centrado no código e é gratuito. Use ai-design-screens ou ai-edit-screen-variant para alterações feitas por IA, e add-screen-jsx para criar um novo ecrã. Comece por get-screen-jsx (sem includeIds) e depois altere o que deve ser diferente. Para mostrar uma imagem que carregou, consulte Imagens em JSX. Entrada Saída: { fileId, screenId }. Chame get-screen-image com o screenId para ver o resultado.
Isto substitui o conteúdo do ecrã no próprio lugar.

rename-screen

Muda o nome de um ecrã na tela, ou seja, o nome apresentado em list-screens e no editor. Altera apenas a etiqueta, e não o layout, o tamanho ou o conteúdo do ecrã. Para isso, use ai-design-screens. Entrada Saída: { screenId, name }.

delete-screen

Elimina permanentemente um ecrã de um ficheiro. O name que passa é comparado com o nome de apresentação atual do ecrã. Se não corresponder, a eliminação é cancelada. Os agentes têm instruções para confirmar consigo primeiro. Entrada Saída: { "deleted": true }

Imagens em JSX

add-screen-jsx e replace-screen-jsx aceitam imagens num src de img, ou como fundo em className com bg-[url(...)]. Escreva texto alt e dimensione cada imagem de acordo com a sua finalidade. Para colocar uma imagem sua:
  1. Carregue-a com upload-attachment no Modo A (mimeType + fileName) e execute o uploadCommand devolvido.
  2. Se o type da resposta for "image", cole o assetUrl exatamente como foi devolvido em img src ou em bg-[url(assetUrl)].
Mantenha todos os outros URLs de imagens exatamente como get-screen-jsx os devolveu. Não coloque path, signedUrl nem uploadCommand em src.

Valores dos campos

get-screen-jsx devolve, 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 guardado num ficheiro. Quando estão definidas, são injetadas em cada geração de IA desse ficheiro. Consulte Diretrizes de design.

get-design-guidelines

Obtém as diretrizes de design associadas a um ficheiro. Entrada Saída: { guidelines }.
guidelines é null se não tiverem sido definidas diretrizes.

update-design-guidelines

Define ou substitui as diretrizes de design de um ficheiro. Passe as diretrizes como uma string simples no formato DESIGN.md da Google, e não como objeto ou JSON. Se estiver a ler de um ficheiro, passe o texto desse ficheiro. Entrada Regras de validação
  • O cabeçalho (frontmatter) tem de ser aberto e fechado corretamente
  • As linhas do cabeçalho têm de ser YAML válido em estilo de blocos
  • O corpo em Markdown não pode conter títulos de secção ## duplicados
Se a validação falhar, a chamada devolve um erro que começa por Invalid design guidelines:. Saída: { updated, warnings? }.
warnings lista problemas de validação não bloqueantes (chaves desconhecidas, cores que não são hexadecimais) que foram aceites, mas que podem ser ignorados pela IA. Fica omitido quando não há nenhum. Apresente-os ao utilizador.

delete-design-guidelines

Limpa as diretrizes de design de um ficheiro. Eliminar 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 ficheiro, ou seja, o chat do Flowstep do ficheiro, e não a conversa do seu cliente MCP. Use-a para retomar trabalho anterior no ficheiro. Entrada Saída: { messages }. messages fica vazio quando não tem nenhuma conversa de design no ficheiro. Cada mensagem tem um type ("request" ou "response"), um author ("human" ou "ai") e um content_type. As mensagens de resposta usam "text", "summary" ou "followup".

Ferramentas de anexos

upload-attachment

Carrega um ficheiro de referência para o 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 ficheiro nunca passam pelo modelo, e o servidor nunca vai buscar URLs em seu nome. Para referenciar uma página web, inclua o respetivo URL na message de ai-design-screens. Existem dois modos. Use exatamente um e não os combine. Modo A: ficheiros e imagens (mimeType + fileName) Um fluxo obrigatório de três passos para qualquer imagem, PDF ou ficheiro de texto maior:
  1. Chame upload-attachment apenas com mimeType e fileName (por exemplo, image/png e dog.png). A resposta é um upload preparado, e não um ficheiro guardado:
  2. Substitua LOCAL_FILE_PATH em uploadCommand pelo caminho absoluto do seu ficheiro e execute esse comando exato na shell. Tem de terminar com código 0. O token em signedUrl autoriza apenas este carregamento único. Se saltar este passo, o armazenamento fica vazio e a ferramenta de design falha a verificação prévia.
  3. Passe apenas { id, path, type } para o array attachments de ai-design-screens. Não passe 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 passa a add-screen-jsx ou a replace-screen-jsx. Consulte Imagens em JSX.
Para anexar um ficheiro remoto, transfira-o primeiro para um caminho local (por exemplo, com curl) e depois siga os mesmos três passos. Nunca passe um URL para upload-attachment. Modo B: texto curto (text + mimeType) Carrega texto que já está no contexto, sem necessidade de comando de shell. A resposta fica pronta a usar diretamente:
Passe o { id, path, type } resultante para o array attachments de ai-design-screens. O tamanho máximo de ficheiro é de 3 MB em ambos os modos, e os PDFs estão limitados a 100 páginas. Saída: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
  • type: "image" para ficheiros de imagem e "document" para PDFs e ficheiros de texto.
  • assetUrl: o URL do ficheiro carregado, devolvido nos dois modos. Use-o em JSX para add-screen-jsx ou replace-screen-jsx apenas quando type for "image", e só depois de o uploadCommand do Modo A ter sido executado.
  • signedUrl, uploadCommand, nextStep: definidos apenas no Modo A. Não os passe às ferramentas de design.

Ferramentas do Figma

import-figma

Importa um frame do Figma para um ficheiro do Flowstep como elementos editáveis na tela desse ficheiro. Cada importação adiciona um novo ecrã. Importar o mesmo frame duas vezes dá-lhe dois ecrãs, por isso elimine o antigo com delete-screen se pretendia substituí-lo. A organização do ficheiro tem de ter o Figma ligado nas definições do Flowstep. Entrada Saída: { fileId, screenId, frameCount? }. screenId é o ecrã importado: passe-o para get-screen-image para ver o resultado. Quando um URL de página importa vários frames, screenId é null e é devolvido frameCount. Nesse caso, chame list-screens e depois get-screen-image para cada novo ecrã.

Ferramentas de plano e faturação

get-plan-details

Obtém o plano do Flowstep da sua organização, o estado da subscrição, a utilização e a quota restante. Não recebe entradas: a organização é resolvida a partir do utilizador com sessão iniciada. Use-a para verificar a sua quota antes de chamar as ferramentas de design com IA. Saída: { plan, subscription, limits, usage, remaining }. Os limites variam consoante o plano. Consulte Preços e Limites de utilização.

Ferramentas de design com IA

Estas três ferramentas desenham a partir de uma descrição ou de uma predefinição. Nunca recebem nem reutilizam JSX. Cada chamada usa a mesma quota de mensagens da aplicação Flowstep e aguarda até a geração terminar ou expirar (180 segundos). As três devolvem { status, fileId, screenIds, designGuidelinesUpdated }. Chame get-screen-image uma vez para cada screenId para ver o resultado.
  • designGuidelinesUpdated: um resumo breve da alteração quando as diretrizes DESIGN.md do ficheiro foram atualizadas automaticamente durante este turno. Caso contrário, é null.

ai-design-screens

Gera um ou mais ecrãs novos, altera ecrãs existentes no lugar, ou faz as duas coisas numa só chamada, a partir de uma descrição em texto: novos fluxos, temas, texto, layout ou alterações coordenadas em vários ecrãs. É o mesmo agente de design do chat no editor do Flowstep: decide, a partir da sua message e de elementIds, o que criar e o que alterar. Omita fileId para começar um novo ficheiro. Passe fileId para trabalhar num ficheiro existente. Se o pedido puder aplicar-se a um ficheiro que já tem, o seu agente deve verificar primeiro list-files e list-screens. Para um próximo passo, um estado de erro ou vazio, ou uma variante de plataforma de um ecrã, use ai-generate-screen-variant. Para uma edição ou redesenho predefinido de um ecrã, use ai-edit-screen-variant. Se já tiver JSX, use add-screen-jsx ou replace-screen-jsx. Entrada Exemplo: editar um ecrã e adicionar outro numa única chamada:
Saída: { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status: "generated" quando foram criados ou alterados ecrãs. "chat" quando o Flowstep respondeu sem criar nada, caso em que reply contém a resposta e screenIds fica vazio. Se o seu pedido for ambíguo, o agente deve pedir-lhe que esclareça e voltar a chamar a ferramenta.
  • screenIds: todos os ecrãs criados ou alterados durante a chamada, incluindo os ecrãs editados no lugar. Se a chamada expirar depois de alguns ecrãs terem sido criados, devolve esses ecrãs em vez de um erro.
Os ecrãs que pede para editar são substituídos no próprio lugar.

ai-generate-screen-variant

Adiciona um novo ecrã derivado de exatamente um ecrã existente: o passo seguinte do fluxo, um estado de erro ou vazio, ou uma versão para outra plataforma. O ecrã original não é alterado. Para adicionar um ecrã que não seja uma variante de um existente (por exemplo, um ecrã de definições), use ai-design-screens com um fileId. Entrada Saída: { status, fileId, screenIds, designGuidelinesUpdated }. status é sempre "generated".

ai-edit-screen-variant

Altera exatamente um ecrã existente no lugar, usando uma predefinição: aplicar um tema ou polir o ecrã, experimentar um layout ou estilo visual diferente, ou redesenhá-lo de raiz. Para ecrãs novos, instruções de texto livre ou uma edição precisa de elementos individuais, use ai-design-screens. Entrada Saída: { status, fileId, screenIds, designGuidelinesUpdated }. status é sempre "generated".
Isto substitui o conteúdo do ecrã no próprio lugar.

Ferramentas renomeadas

Os nomes de algumas ferramentas mudaram em setembro e outubro de 2026. Se tiver prompts, scripts ou instruções de agentes 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 variantes) 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. As ferramentas de diretrizes de design recebem fileId em vez de resourceId e linkedTo.