Skip to main content
Todas as ferramentas retornam um array content de blocos de conteúdo MCP. Ferramentas de texto retornam { type: "text", text: "<json-string>" }. Ferramentas de imagem retornam { type: "image", data: "<base64>", mimeType: "image/png" }. Em caso de falha, isError: true é definido e o bloco de texto contém a mensagem de erro.

Ferramentas de arquivo

list-files

Liste arquivos Flowstep do usuário atual. Entrada Saída — array JSON de objetos de arquivo.

get-file

Obtenha um único arquivo por ID. O conteúdo do arquivo é intencionalmente omitido — use get-screen ou get-screen-image para inspecionar telas e get-design-guidelines para recuperar diretrizes anexadas. Entrada Saída — objeto JSON de arquivo.

create-file

Crie um novo arquivo Flowstep. Entrada Saída — objeto JSON de arquivo com o id do novo arquivo.
Use o id retornado como fileId em chamadas de ferramentas subsequentes.

update-file

Renomeie um arquivo. Entrada Saída — objeto de arquivo atualizado na mesma forma que get-file.

delete-file

Exclua permanentemente um arquivo. O name que você passa é verificado contra o nome real do arquivo antes da exclusão — se não corresponder, a exclusão é abortada. Isso evita excluir acidentalmente o arquivo errado. Entrada Saída — "File deleted successfully"
Isso é irreversível. Todas as telas no arquivo são excluídas.

Ferramentas de tela

list-screens

Liste todas as telas geradas para um arquivo. Use os valores screenId retornados para referenciar telas em get-screen, get-screen-image e como targets em edit-design, regenerate-design ou expand-design. Entrada Saída — array JSON de resumos de tela.
name é o nome de tela atribuído pelo usuário ou null se sem nome.

get-screen

Obtenha o código JSX para uma tela permitindo que você edite ou use o código fora do Flowstep. Use get-screen-image para uma visualização visual. Entrada Saída — a tela como código (JSX). Observe o comentário da primeira linha que é necessário ao usar a ferramenta add-screen.

add-screen

Adicione uma nova tela a um arquivo Flowstep a partir de uma string JSX bruta. Entrada Nota - Um comentário similar ao abaixo DEVE estar presente como a primeira linha do JSX pois é usado para adicionar a tela corretamente. screenType, name e screenId são todos opcionais — screenId é usado (internamente) se presente (por exemplo, ao passar JSX copiado da saída get-screen) mas não é obrigatório. O nome da tela é obtido do campo name do comentário (exibido como “Copy of <name>”) ou “Untitled” se ausente. <!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" --> Saída — o novo ID de tela adicionado.

get-screen-image

Renderize uma tela para PNG e retorne-a como uma imagem inline. Requer um cliente que suporte blocos de conteúdo de imagem. Entrada Saída — bloco de conteúdo de imagem MCP (image/png).

rename-screen

Renomeie o rótulo da tela — o nome mostrado por list-screens e no editor. Isso altera apenas o rótulo, não o layout, tamanho ou conteúdo da tela — use edit-design para esses. Entrada Saída — { screenId, name }.

Ferramentas de IA

regenerate-design, expand-design e edit-design exigem contexto de design que está presente apenas em telas originalmente geradas com um array designs. Telas geradas sem contexto de design retornarão um erro.

create-new-design

Gere um ou mais designs de tela a partir de um prompt de texto. Omita fileId para criar um novo arquivo automaticamente. Bloqueia até que a geração seja concluída ou expire (180 segundos). Entrada Saída — { fileId, screenIds, designGuidelinesUpdated }. Passe cada screenId para get-screen-image para visualizar resultados. designGuidelinesUpdated informa se as diretrizes de design do arquivo foram alteradas como parte desta geração.

regenerate-design

Refaça telas existentes do zero ou com uma variação de estilo. Requer pelo menos um screenId em targets. Bloqueia até que a geração seja concluída ou expire (180 segundos). Entrada Saída — { fileId, screenIds, designGuidelinesUpdated }. Passe cada screenId para get-screen-image para visualizar resultados.

expand-design

Adicione telas subsequentes a um design existente. Requer pelo menos um screenId em targets e um operationVariant obrigatório. Bloqueia até que a geração seja concluída ou expire (180 segundos). Entrada Saída — { fileId, screenIds, designGuidelinesUpdated }. Passe cada screenId para get-screen-image para visualizar resultados.

edit-design

Modifique telas existentes via um prompt. Requer pelo menos um screenId em targets. Bloqueia até que a geração seja concluída ou expire (180 segundos). Entrada Saída — { fileId, screenIds, designGuidelinesUpdated }. Passe cada screenId para get-screen-image para visualizar resultados.

upload-attachment

Carregue um arquivo para usar como anexo em create-new-design ou edit-design (não regenerate-design ou expand-design). Os bytes de arquivo nunca passam pelo modelo e o servidor nunca busca URLs em seu nome. Existem dois modos — use exatamente um, 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 maior:
  1. Chame upload-attachment com mimeType e fileName apenas (por exemplo image/png e dog.png). A resposta é um carregamento preparado, não um arquivo armazenado:
  2. Substitua LOCAL_FILE_PATH em uploadCommand pelo caminho absoluto para seu arquivo e execute esse comando exato em seu shell — ele deve sair com código 0. O token em signedUrl autoriza apenas este único carregamento. Pular esta etapa deixa o armazenamento vazio e a ferramenta de design falha em sua verificação prévia.
  3. Passe apenas { id, path, type } no array attachments da ferramenta de design — não signedUrl, uploadCommand ou nextStep.
Para anexar um arquivo remoto, baixe-o para um caminho local primeiro (por exemplo com curl) e depois siga os mesmos três passos. Nunca passe uma URL para upload-attachment. Modo B — texto curto (text + mimeType) Carregue texto que já está em contexto — nenhum comando shell necessário. A resposta está pronta para usar diretamente:
Passe o resultado { id, path, type } no array attachments de create-new-design ou edit-design. O tamanho máximo do arquivo é 3 MB em ambos os modos e PDFs são limitados a 100 páginas. type é "image" para arquivos de imagem e "document" para PDFs e arquivos de texto.

Ferramentas de chat

get-chat-history

Obtenha o histórico de mensagens de chat para um arquivo. Entrada Saída — objeto JSON com um array messages. Cada mensagem tem um type ("request" ou "response"), author ("human" ou "ai") e content_type ("text", "summary" ou "followup").

Ferramentas de design

get-design-guidelines

Obtenha as diretrizes de design armazenadas para um arquivo. Entrada Saída
guidelines é null se nenhuma diretriz tiver sido definida.

update-design-guidelines

Defina ou substitua as diretrizes de design para um arquivo. As diretrizes são passadas como uma string de texto simples no formato design.md do Google — não passe um objeto ou JSON. O servidor realiza validação flexível e pode retornar uma seção Warnings: na resposta listando problemas (chaves desconhecidas, cores não hexadecimais) que foram aceitos mas podem ser ignorados pela IA. Mostre esses ao usuário. Entrada Regras de validação
  • O frontmatter deve ser aberto e fechado corretamente
  • As linhas do frontmatter devem ser YAML de estilo de bloco válido
  • O corpo Markdown não deve conter cabeçalhos de seção ## duplicados
Saída — "Design guidelines updated successfully", opcionalmente seguido por uma seção Warnings:.

delete-design-guidelines

Limpe as diretrizes de design para um arquivo. Entrada Saída — "Design guidelines deleted successfully"

Ferramentas Figma

import-figma

Importe um frame Figma para um arquivo Flowstep como elementos editáveis em sua tela. Re-importar o mesmo frame o atualiza no local. A organização do arquivo deve ter Figma conectado nas configurações do Flowstep. Entrada Saída — { fileId, screenId }. screenId é o id do elemento de tela importado — passe para get-screen-image para visualizar o resultado. Quando um URL de página importa vários frames, screenId é null e frameCount é retornado em vez disso.

Ferramentas de cobrança

get-plan-details

Obtenha o plano atual do usuário, status de assinatura e cota restante. Não leva entrada. Saída
Os limites variam por plano. Chame esta ferramenta antes de um lote de gerações para verificar a cota disponível.