content de blocos de conteúdo MCP. Ferramentas de texto devolvem { type: "text", text: "<json-string>" }. Ferramentas de imagem devolvem { type: "image", data: "<base64>", mimeType: "image/png" }. Em caso de erro, isError: true é definido e o bloco de texto contém a mensagem de erro.
Ferramentas de ficheiros
list-files
Lista os ficheiros do Flowstep do utilizador atual.
Entrada
Saída — Array JSON de objetos de ficheiro.
get-file
Obtém um único ficheiro por ID. O conteúdo do ficheiro é propositalmente omitido — utiliza get-screen ou get-screen-image para inspecionar ecrãs, e get-design-guidelines para recuperar as diretrizes anexadas.
Entrada
Saída — Objeto JSON de ficheiro.
create-file
Cria um novo ficheiro Flowstep.
Entrada
Saída — Objeto JSON de ficheiro com o
id do novo ficheiro.
id devolvido como fileId nas chamadas de ferramenta subsequentes.
update-file
Muda o nome de um ficheiro.
Entrada
Saída — Objeto de ficheiro atualizado com a mesma forma que
get-file.
delete-file
Elimina permanentemente um ficheiro. O name que passes é verificado contra o nome real do ficheiro antes da eliminação — se não corresponder, a eliminação é abortada. Isto previne a eliminação acidental do ficheiro errado.
Entrada
Saída —
"File deleted successfully"
Ferramentas de ecrã
list-screens
Lista todos os ecrãs gerados para um ficheiro. Utiliza os valores de screenId devolvidos para referenciar ecrãs 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 ecrã.
name é o nome do ecrã atribuído pelo utilizador, ou null se sem nome.
get-screen
Obtém o código JSX para um ecrã permitindo-te editar ou utilizar o código fora do Flowstep. Utiliza get-screen-image para uma pré-visualização visual em vez disso.
Entrada
Saída — O ecrã como código (JSX). Nota o comentário da primeira linha que é necessário ao utilizar a ferramenta
add-screen.
add-screen
Adiciona um novo ecrã a um ficheiro Flowstep a partir de uma string JSX bruta.
Entrada
Nota - Um comentário semelhante ao abaixo TEM de estar presente como a primeira linha do JSX já que é utilizado para adicionar o ecrã corretamente.
screenType, name, e screenId são todos opcionais — screenId é utilizado (internamente) se presente (por exemplo, ao passar JSX copiado da saída de get-screen) mas não é obrigatório. O nome do ecrã é tirado do campo name do comentário (apresentado 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 do ecrã recém-adicionado.
get-screen-image
Renderiza um ecrã para PNG e devolve-o como uma imagem em linha. 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
Gera um ou mais designs de ecrã a partir de um prompt de texto. Omite fileId para criar um novo ficheiro automaticamente. Bloqueia até a geração estar completa ou até expiração do tempo (180 segundos).
Entrada
Saída —
{ fileId, screenIds }. Passa cada screenId para get-screen-image para ver resultados.
regenerate-design
Refaz ecrãs existentes do zero ou com uma variação de estilo. Requer pelo menos um screenId em targets. Bloqueia até a geração estar completa ou até expiração do tempo (180 segundos).
Entrada
Saída —
{ fileId, screenIds }. Passa cada screenId para get-screen-image para ver resultados.
expand-design
Adiciona ecrãs de seguimento a um design existente. Requer pelo menos um screenId em targets e um operationVariant obrigatório. Bloqueia até a geração estar completa ou até expiração do tempo (180 segundos).
Entrada
Saída —
{ fileId, screenIds }. Passa cada screenId para get-screen-image para ver resultados.
edit-design
Modifica ecrãs existentes através de um prompt. Requer pelo menos um screenId em targets. Bloqueia até a geração estar completa ou até expiração do tempo (180 segundos).
Entrada
Saída —
{ fileId, screenIds }. Passa cada screenId para get-screen-image para ver resultados.
upload-attachment
Envia um ficheiro para utilizar como um anexo em create-new-design ou edit-design. Devolve { id, path, type, mimeType } — passa este objeto diretamente no array attachments.
Dois modos:
Modo 1 — Ecrã por ID
Passa screenId e fileId. O servidor obtém o estado do ecrã da base de dados e renderiza-o como uma imagem.
Modo 2 — Ficheiro externo
Passa o conteúdo do ficheiro diretamente. Ficheiros binários têm de estar codificados em base64; ficheiros de texto (incluindo código-fonte) são passados como strings UTF-8 simples.
Tamanho máximo do ficheiro: 3 MB. Para imagens grandes, prefere
image/jpeg em relação a image/png.
Saída
type é "image" para uploads de imagem/PDF e "document" para ficheiros de texto/código.
Ferramentas de chat
get-chat-history
Obtém o histórico de mensagens de chat para um ficheiro.
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
Obtém as diretrizes de design armazenadas para um ficheiro.
Entrada
Saída
guidelines é null se não foram definidas diretrizes.
update-design-guidelines
Define ou substitui as diretrizes de design para um ficheiro. As diretrizes são passadas como uma string de texto simples no formato design.md do Google — não passes um objeto ou JSON.
O servidor realiza validação branda e pode devolver uma secção Warnings: na resposta listando problemas (chaves desconhecidas, cores não-hex) que foram aceites mas podem ser ignoradas pela IA. Mostra estes ao utilizador.
Entrada
Regras de validação
- O frontmatter tem de estar aberto e fechado corretamente
- As linhas frontmatter têm de ser YAML válido em estilo de bloco
- O corpo Markdown não deve conter cabeçalhos
##duplicados
"Design guidelines updated successfully", opcionalmente seguido por uma secção Warnings:.
delete-design-guidelines
Limpa as diretrizes de design para um ficheiro.
Entrada
Saída —
"Design guidelines deleted successfully"
Ferramentas de Figma
import-figma
Importa um frame do Figma para um ficheiro Flowstep como elementos editáveis na sua tela. Re-importar o mesmo frame actualiza-o no local. A organização do ficheiro tem de ter o Figma ligado nas definições do Flowstep.
Entrada
Saída —
{ fileId, screenId }. screenId é o id do elemento de ecrã importado — passa-o para get-screen-image para ver o resultado. Quando uma URL de página importa múltiplos frames, screenId é null e frameCount é devolvido em vez disso.