content com 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
Listar arquivos Flowstep do usuário atual.
Entrada
Saída — Array JSON de objetos de arquivo.
get-file
Obter um único arquivo pelo 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 de design anexadas.
Entrada
Saída — Objeto JSON do arquivo.
create-file
Criar um novo arquivo Flowstep.
Entrada
Saída — Objeto JSON do arquivo com o
id do novo arquivo.
id retornado como fileId em chamadas de ferramentas subsequentes.
update-file
Renomear um arquivo.
Entrada
Saída — Objeto de arquivo atualizado no mesmo formato que
get-file.
delete-file
Excluir permanentemente um arquivo. O name que você passa é verificado em relação ao nome real do arquivo antes da exclusão — se não corresponder, a exclusão é abortada. Isso previne exclusões acidentais.
Entrada
Saída —
"File deleted successfully"
Ferramentas de tela
list-screens
Listar todas as telas geradas para um arquivo. Use os valores screenId retornados para referenciar telas em get-screen, get-screen-image, upload-attachment e como targets em edit-design, regenerate-design ou expand-design.
Entrada
Saída — Array JSON de resumos de telas.
name é o nome da tela atribuído pelo usuário ou null se não nomeada.
get-screen
Obter 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 em vez disso.
Entrada
Saída — A tela como código (JSX). Note o comentário da primeira linha que é necessário ao usar a ferramenta
add-screen.
add-screen
Adicionar uma nova tela a um arquivo Flowstep a partir de uma string JSX bruta.
Entrada
Nota - Um comentário similar ao mostrado 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 de get-screen) mas não é obrigatório. O nome da tela é tirado 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 ID da tela recém-adicionada.
get-screen-image
Renderizar uma tela para PNG e retorná-la 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).
Ferramentas de IA
create-new-design
Gerar 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 }. Passe cada screenId para get-screen-image para visualizar os resultados.
regenerate-design
Refazer 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 }. Passe cada screenId para get-screen-image para visualizar os resultados.
expand-design
Adicionar telas de acompanhamento 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 }. Passe cada screenId para get-screen-image para visualizar os resultados.
edit-design
Modificar 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 }. Passe cada screenId para get-screen-image para visualizar os resultados.
upload-attachment
Enviar um arquivo para usar como anexo em create-new-design ou edit-design. Retorna { id, path, type, mimeType } — passe este objeto diretamente no array attachments.
Dois modos:
Modo 1 — Tela por ID
Passe screenId e fileId. O servidor obtém o estado da tela do banco de dados e a renderiza como uma imagem.
Modo 2 — Arquivo externo
Passe o conteúdo do arquivo diretamente. Arquivos binários devem ser codificados em base64; arquivos de texto (incluindo código-fonte) são passados como strings UTF-8 simples.
Tamanho máximo do arquivo: 3 MB. Para imagens grandes, prefira
image/jpeg a image/png.
Saída
type é "image" para uploads de imagem/PDF e "document" para arquivos de texto/código.
Ferramentas de chat
get-chat-history
Obter 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
Obter as diretrizes de design armazenadas para um arquivo.
Entrada
Saída
guidelines é null se nenhuma diretriz tiver sido definida.
update-design-guidelines
Definir ou substituir 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 executa validação suave e pode retornar uma seção Warnings: na resposta listando problemas (chaves desconhecidas, cores não-hex) que foram aceitos mas podem ser ignorados pela IA. Exiba-os ao usuário.
Entrada
Regras de validação
- O preâmbulo deve ser aberto e fechado corretamente
- As linhas do preâmbulo devem ser YAML válido em estilo de bloco
- O corpo do Markdown não deve conter cabeçalhos
##duplicados
"Design guidelines updated successfully", opcionalmente seguido de uma seção Warnings:.
delete-design-guidelines
Limpar as diretrizes de design para um arquivo.
Entrada
Saída —
"Design guidelines deleted successfully"
Ferramentas Figma
import-figma
Importar um frame Figma para um arquivo Flowstep como elementos editáveis em sua tela. Reimportar o mesmo frame o atualiza no lugar. 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-o para get-screen-image para visualizar o resultado. Quando um URL de página importa múltiplos frames, screenId é null e frameCount é retornado em vez disso.