get-screen-image deres resultat to gange: som structuredContent (valideret mod værktøjets publicerede outputskema) og som det samme objekt serialiseret i en tekstblok, { type: "text", text: "<json-string>" }, til klienter, der ikke læser structured content. get-screen-image returnerer kun en MCP-billedblok: { type: "image", data: "<base64>", mimeType: "image/png" }.
Ved fejl sættes isError: true, og tekstblokken indeholder en kort fejlbesked. Fejl, du kan handle på — en navnefejl ved sletning, et ugyldigt Figma-link, ugyldige designretningslinjer, et problem med en vedhæftning eller en genereringstimeout — forklarer, hvad der skal rettes. Andre fejl returnerer en generisk besked, såsom Failed to list files.
Priser: de tre AI-designværktøjer —
ai-design-screens, ai-generate-screen-variant og ai-edit-screen-variant — trækker på den samme beskedkvote som Flowstep-appen. Alle andre værktøjer er gratis. Se Brugsgrænser.delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens og ai-edit-screen-variant er markeret som destruktive, fordi de fjerner eller overskriver eksisterende indhold.
Filværktøjer
list-files
Listér metadata for dine Flowstep-filer. Kald dette først for at tjekke, om en relevant fil allerede findes. Det returnerer intet skærmindhold — brug get-screen-image eller get-screen-jsx til det.
Input
Output —
{ files }.
owner—true, hvis du oprettede filen.shared_with_me—true, hvis filen blev delt med dig direkte, ikke kun via din organisation.url— åbner filen i Flowstep-editoren.
get-file
Hent metadata for en enkelt fil. Filindholdet er bevidst udeladt — brug get-screen-image eller get-screen-jsx til at inspicere skærme, og get-design-guidelines til at hente tilknyttede retningslinjer. Hvis du har en ventende invitation til filen, accepterer et kald til get-file den.
Input
Output —
{ file, user_access_level }.
access_level—private,readellerwrite.visibility—private,memberellerpublic.user_access_level— din adgang til filen:readellerwrite.
create-file
Opret en tom Flowstep-fil uden skærme. For at oprette en fil og generere skærme i ét trin skal du i stedet kalde ai-design-screens uden et fileId. Brug create-file til code-first-workflows, efterfulgt af add-screen-jsx.
Input
Output —
{ file, user_access_level }, i samme form som get-file. owner er altid true, og user_access_level er altid write.
Brug det returnerede file.id som fileId i efterfølgende værktøjskald.
update-file
Omdøb en fil.
Input
Output —
{ file, user_access_level }, i samme form som get-file.
delete-file
Slet en fil permanent. Det name, du sender, tjekkes mod filens aktuelle visningsnavn før sletning — hvis det ikke matcher, afbrydes sletningen. Det forhindrer, at du ved en fejl sletter den forkerte fil. Agenter får besked på at bekræfte med dig først.
Input
Output —
{ "deleted": true }
Skærmværktøjer
list-screens
Listér skærmene i en fil, i lærredets rækkefølge. Kald dette efter list-files for at se, hvad der allerede findes i en fil. Brug de returnerede screenId-værdier med de andre skærmværktøjer og AI-designværktøjerne.
Input
Output —
{ screens }.
prompt— den seneste genereringsprompt for skærmen, eller en tom streng, hvis den aldrig er genereret (for eksempel en skærm tilføjet medadd-screen-jsx).fidelity—lofi,hifiellerui.
get-screen-image
Render en skærm til PNG og returnér den som et indlejret billede. Kræver en klient, der understøtter billedindholdsblokke. Kald det én gang for hvert screenId, der returneres af et AI-designværktøj, add-screen-jsx, replace-screen-jsx eller import-figma.
Input
Output — MCP-billedindholdsblok (
image/png). data er standard base64 af PNG-bytes, ikke en data-URI. Der er intet structuredContent for dette værktøj.
get-screen-jsx
Hent en skærm som JSX samt dens metadata — så du kan bygge videre på den i din kodebase, eller redigere den og skrive den tilbage med replace-screen-jsx. Brug get-screen-image til en visuel forhåndsvisning i stedet.
Input
Output —
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
jsx— kun markup.data-id-attributter inkluderes kun, nårincludeIdsertrue.prompt— den seneste genereringsprompt, eller en tom streng, hvis skærmen aldrig er genereret.fragments— delt chrome gemt på skærmen, såsom en navigationsbjælke, header eller logo, som{ purpose, markup }-objekter. Tom, når der ingen er. Send dem tilbage tilreplace-screen-jsxfor at beholde eller opdatere dem.
fidelity, screenType og colorTheme.
add-screen-jsx
Tilføj en ny skærm til en fil ud fra JSX, du har skrevet. Dette er code-first-vejen og er gratis — brug ai-design-screens, når du vil have Flowsteps AI til at designe skærmen. add-screen-jsx opretter altid en ny skærm: for at overskrive en eksisterende skal du bruge replace-screen-jsx.
For at vise et billede, du har uploadet, se Billeder i JSX.
Når den nye skærm er baseret på en eksisterende, skal du starte fra get-screen-jsx (uden includeIds) for name, fidelity, screenType, colorTheme og jsx, og derefter ændre det, der skal være anderledes.
Input
Output —
{ fileId, screenId }. Kald get-screen-image med screenId for at se resultatet.
replace-screen-jsx
Overskriv en eksisterende skærm med JSX, du har skrevet. Skærmen beholder sit screenId og sin position på lærredet; indlejrede elementer får nye id’er. Dette er code-first-vejen og er gratis — brug ai-design-screens eller ai-edit-screen-variant til AI-ændringer, og add-screen-jsx til at oprette en ny skærm i stedet.
Start fra get-screen-jsx (uden includeIds), og ændr derefter det, der skal være anderledes. For at vise et billede, du har uploadet, se Billeder i JSX.
Input
Output —
{ fileId, screenId }. Kald get-screen-image med screenId for at se resultatet.
rename-screen
Omdøb en skærms navn på lærredet — navnet, der vises af list-screens og i editoren. Dette ændrer kun navnet, ikke skærmens layout, størrelse eller indhold — brug ai-design-screens til det.
Input
Output —
{ screenId, name }.
delete-screen
Slet en skærm permanent fra en fil. Det name, du sender, tjekkes mod skærmens aktuelle visningsnavn — hvis det ikke matcher, afbrydes sletningen. Agenter får besked på at bekræfte med dig først.
Input
Output —
{ "deleted": true }
Billeder i JSX
add-screen-jsx og replace-screen-jsx accepterer billeder i en img-src eller som baggrund i className med bg-[url(...)]. Skriv alt-tekst, og tilpas størrelsen på hvert billede til dets formål.
Sådan placerer du et billede, du selv har:
- Upload det med
upload-attachmenti tilstand A (mimeType+fileName), og kør den returneredeuploadCommand. - Hvis svarets
typeer"image", skal du indsætte detsassetUrlpræcis som returneret iimg srcellerbg-[url(assetUrl)].
get-screen-jsx returnerede dem. Sæt ikke path, signedUrl eller uploadCommand i src.
Skærmfeltværdier
get-screen-jsx returnerer, og add-screen-jsx og replace-screen-jsx accepterer, disse værdier:
Designretningslinjer-værktøjer
Designretningslinjer erDESIGN.md-tekst gemt på en fil. Når de er sat, indsprøjtes de i hver AI-generering for den fil. Se Designretningslinjer.
get-design-guidelines
Hent designretningslinjerne tilknyttet en fil.
Input
Output —
{ guidelines }.
guidelines er null, hvis der ikke er sat nogen retningslinjer.
update-design-guidelines
Sæt eller erstat designretningslinjerne for en fil. Send retningslinjerne som en almindelig streng i Googles DESIGN.md-format — ikke som et objekt eller JSON. Hvis du læser fra en fil, skal du sende den filens tekst.
Input
Valideringsregler
- Frontmatter skal åbnes og lukkes korrekt
- Frontmatter-linjer skal være gyldig YAML i blokformat
- Markdown-brødteksten må ikke indeholde dublerede
##-sektionsoverskrifter
Invalid design guidelines:.
Output — { updated, warnings? }.
warnings lister bløde valideringsproblemer (ukendte nøgler, ikke-hex-farver), der blev accepteret, men som AI’en muligvis ignorerer. Det udelades, når der ingen er. Vis disse til brugeren.
delete-design-guidelines
Ryd designretningslinjerne for en fil. Sletning af retningslinjer, der ikke findes, har ingen effekt.
Input
Output —
{ "deleted": true }
Chatværktøjer
get-chat-history
Hent designsamtalen tilknyttet en fil — filens Flowstep-chat, ikke din MCP-klients samtale. Brug den til at genoptage tidligere arbejde på filen.
Input
Output —
{ messages }. messages er tom, når du ikke har nogen designsamtale på filen. Hver besked har en type ("request" eller "response"), en author ("human" eller "ai") og en content_type. Svarbeskeder bruger "text", "summary" eller "followup".
Vedhæftningsværktøjer
upload-attachment
Upload en referencefil til brug som vedhæftning i ai-design-screens, eller et billede, der skal placeres i din egen JSX med add-screen-jsx eller replace-screen-jsx. ai-generate-screen-variant og ai-edit-screen-variant tager ikke vedhæftninger. Filbytes passerer aldrig gennem modellen, og serveren henter aldrig URL’er på dine vegne. For at henvise til en webside skal du i stedet tage dens URL med i message for ai-design-screens.
Der er to tilstande — brug præcis én, og kombinér dem ikke.
Tilstand A — filer og billeder (mimeType + fileName)
En påkrævet trinvis proces på tre trin for ethvert billede, en PDF eller en større tekstfil:
-
Kald
upload-attachmentmed kunmimeTypeogfileName(for eksempelimage/pngogdog.png). Svaret er en forberedt upload, ikke en gemt fil: -
Erstat
LOCAL_FILE_PATHiuploadCommandmed den absolutte sti til din fil, og kør netop den kommando i din shell — den skal afslutte med 0. Tokenet isignedUrlgodkender kun denne ene upload. Hvis du springer dette trin over, forbliver lageret tomt, og designværktøjet fejler sin preflight-kontrol. -
Send kun
{ id, path, type }ind i arrayetattachmentsiai-design-screens— ikkesignedUrl,uploadCommandellernextStep. For at placere et billede i din egen JSX i stedet skal du sætteassetUrliimg srcellerbg-[url(...)]i den JSX, du sender tiladd-screen-jsxellerreplace-screen-jsx. Se Billeder i JSX.
curl) og derefter følge de samme tre trin. Send aldrig en URL til upload-attachment.
Tilstand B — kort tekst (
text + mimeType)
Upload tekst, der allerede er i konteksten — ingen shell-kommando er nødvendig. Svaret kan bruges direkte:
Send den resulterende
{ id, path, type } ind i arrayet attachments i ai-design-screens.
Den maksimale filstørrelse er 3 MB på tværs af begge tilstande, og PDF’er er begrænset til 100 sider.
Output — { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
type—"image"for billedfiler og"document"for PDF’er og tekstfiler.assetUrl— den uploadede fils URL, returneret i begge tilstande. Brug den i JSX tiladd-screen-jsxellerreplace-screen-jsxkun nårtypeer"image", og kun efter atuploadCommandfra tilstand A er kørt.signedUrl,uploadCommand,nextStep— sættes kun i tilstand A. Send dem ikke videre til designværktøjerne.
Figma-værktøjer
import-figma
Importér en Figma-frame til en Flowstep-fil som redigerbare elementer på dens lærred. Hver import tilføjer en ny skærm — at importere den samme frame to gange giver dig to skærme, så slet den gamle med delete-screen, hvis du mente at erstatte den. Filens organisation skal have Figma forbundet i Flowstep-indstillingerne.
Input
Output —
{ fileId, screenId, frameCount? }. screenId er den importerede skærm — send den til get-screen-image for at se resultatet. Når en side-URL importerer flere frames, er screenId null, og frameCount returneres i stedet; kald list-screens og derefter get-screen-image for hver ny skærm.
Abonnements- og faktureringsværktøjer
get-plan-details
Hent din organisations Flowstep-abonnement, abonnementsstatus, forbrug og resterende kvote. Tager ingen input — organisationen findes ud fra den loggede ind bruger. Brug det til at tjekke din kvote, før du kalder AI-designværktøjerne.
Output — { plan, subscription, limits, usage, remaining }.
Grænserne varierer efter abonnement — se Priser og Brugsgrænser.
AI-designværktøjer
Disse tre værktøjer designer ud fra en beskrivelse eller en forudindstilling — de tager eller genbruger aldrig JSX. Hvert kald trækker på den samme beskedkvote som Flowstep-appen og blokerer, indtil genereringen er færdig eller timer ud (180 sekunder).
Alle tre returnerer
{ status, fileId, screenIds, designGuidelinesUpdated }. Kald get-screen-image én gang for hvert screenId for at se resultatet.
designGuidelinesUpdated— en kort opsummering af ændringen, når filensDESIGN.md-retningslinjer blev opdateret automatisk under denne tur; ellersnull.
ai-design-screens
Generér en eller flere nye skærme, ændr eksisterende skærme på stedet eller begge dele i ét kald ud fra en tekstbeskrivelse — nye flows, theming, tekst, layout eller koordinerede ændringer på tværs af flere skærme. Dette er den samme designagent som chatten i Flowstep-editoren: den afgør ud fra din message og elementIds, hvad der skal bygges, og hvad der skal ændres.
Udelad fileId for at starte en ny fil; send fileId for at arbejde i en eksisterende. Hvis anmodningen kunne gælde for en fil, du allerede har, bør din agent tjekke list-files og list-screens først. Til et næste trin, en fejl- eller tom-tilstand eller en platformvariant af én skærm skal du bruge ai-generate-screen-variant. Til en forudindstillet redigering eller redesign af én skærm skal du bruge ai-edit-screen-variant. Hvis du allerede har JSX, skal du i stedet bruge add-screen-jsx eller replace-screen-jsx.
Input
Eksempel — rediger én skærm og tilføj en anden i ét kald:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status—"generated", når skærme blev bygget eller ændret."chat", når Flowstep svarede uden at bygge, i hvilket tilfældereplyindeholder svaret, ogscreenIdser tom. Hvis din opgave er tvetydig, bør din agent bede dig præcisere og kalde værktøjet igen.screenIds— hver skærm, der blev bygget eller ændret under kaldet, inklusive skærme redigeret på stedet. Hvis kaldet timer ud, efter at nogle skærme er bygget, returnerer det disse skærme i stedet for en fejl.
ai-generate-screen-variant
Tilføj en ny skærm afledt af præcis én eksisterende skærm — det næste trin i flowet, en fejl- eller tom-tilstand eller en version til en anden platform. Den oprindelige skærm forbliver uændret. For at tilføje en skærm, der ikke er en variant af en eksisterende (for eksempel en indstillingsskærm), skal du bruge ai-design-screens med et fileId.
Input
Output —
{ status, fileId, screenIds, designGuidelinesUpdated }. status er altid "generated".
ai-edit-screen-variant
Ændr præcis én eksisterende skærm på stedet ved hjælp af en forudindstilling — tema den eller polere den, prøv et andet layout eller en anden visuel stil, eller redesign den fra bunden. Til nye skærme, fritekstinstruktioner eller en præcis redigering af enkelte elementer skal du bruge ai-design-screens.
Input
Output —
{ status, fileId, screenIds, designGuidelinesUpdated }. status er altid "generated".
Omdøbte værktøjer
Værktøjsnavne blev ændret i september og oktober 2026. Hvis du har prompts, scripts eller agentinstruktioner, der bruger de gamle navne, skal du opdatere dem:
Inputs er også ændret: AI-designværktøjerne tager
elementIds (eller et enkelt screenId for variant-værktøjerne) i stedet for targets, add-screen-jsx tager jsx og eksplicitte metadatafelter i stedet for jsxContent med en metadatakommentar, create-file tager name i stedet for title, og designretningslinje-værktøjerne tager fileId i stedet for resourceId og linkedTo.