Spring til hovedindhold
Ved succes returnerer alle værktøjer undtagen 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.
Hvert værktøj publicerer også MCP-annoteringer, så din klient ved, hvad det gør. 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, read eller write.
  • visibility — private, member eller public.
  • user_access_level — din adgang til filen: read eller write.

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 }
Dette kan ikke fortrydes. Alle skærme i filen slettes.

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 med add-screen-jsx).
  • fidelity — lofi, hifi eller ui.

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år includeIds er true.
  • 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 til replace-screen-jsx for at beholde eller opdatere dem.
Se Skærmfeltværdier for værdierne 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.
Dette erstatter skærmens indhold på stedet.

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:
  1. Upload det med upload-attachment i tilstand A (mimeType + fileName), og kør den returnerede uploadCommand.
  2. Hvis svarets type er "image", skal du indsætte dets assetUrl præcis som returneret i img src eller bg-[url(assetUrl)].
Lad alle andre billed-URL’er stå præcis, som 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 er DESIGN.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
Hvis valideringen fejler, returnerer kaldet en fejl, der starter med 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:
  1. Kald upload-attachment med kun mimeType og fileName (for eksempel image/png og dog.png). Svaret er en forberedt upload, ikke en gemt fil:
  2. Erstat LOCAL_FILE_PATH i uploadCommand med den absolutte sti til din fil, og kør netop den kommando i din shell — den skal afslutte med 0. Tokenet i signedUrl godkender kun denne ene upload. Hvis du springer dette trin over, forbliver lageret tomt, og designværktøjet fejler sin preflight-kontrol.
  3. Send kun { id, path, type } ind i arrayet attachments i ai-design-screens — ikke signedUrl, uploadCommand eller nextStep. For at placere et billede i din egen JSX i stedet skal du sætte assetUrl i img src eller bg-[url(...)] i den JSX, du sender til add-screen-jsx eller replace-screen-jsx. Se Billeder i JSX.
For at vedhæfte en fjernfil skal du først selv downloade den til en lokal sti (for eksempel med 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 til add-screen-jsx eller replace-screen-jsx kun når type er "image", og kun efter at uploadCommand fra 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 filens DESIGN.md-retningslinjer blev opdateret automatisk under denne tur; ellers null.

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:
Output — { 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ælde reply indeholder svaret, og screenIds er 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.
Skærme, du beder den om at redigere, overskrives på stedet.

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".
Dette overskriver skærmens indhold på stedet.

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.