Hoppa till huvudinnehåll
Vid lyckat resultat returnerar varje verktyg utom get-screen-image sitt resultat två gånger. Det första är som structuredContent, validerat mot verktygets publicerade utdataschema. Det andra är samma objekt serialiserat i ett textblock, { type: "text", text: "<json-string>" }, för klienter som inte läser strukturerat innehåll. get-screen-image returnerar endast ett MCP-bildblock: { type: "image", data: "<base64>", mimeType: "image/png" }. Vid fel sätts isError: true och textblocket innehåller ett kort felmeddelande. Fel som du kan åtgärda, till exempel en namnkonflikt vid borttagning, en ogiltig Figma-länk, ogiltiga designriktlinjer, ett bilageproblem eller en genereringstimeout, förklarar vad du behöver rätta. Andra fel returnerar ett generiskt meddelande, till exempel Failed to list files.
Priser: de tre AI-designverktygen, ai-design-screens, ai-generate-screen-variant och ai-edit-screen-variant, använder samma meddelandekvot som Flowstep-appen. Alla andra verktyg är gratis. Se Användningsgränser.
Varje verktyg publicerar också MCP-annoteringar så att din klient vet vad det gör. delete-file, delete-screen, delete-design-guidelines, replace-screen-jsx, ai-design-screens och ai-edit-screen-variant är markerade som destruktiva eftersom de tar bort eller skriver över befintligt innehåll.

Filverktyg

list-files

Lista metadata för dina Flowstep-filer. Anropa detta först för att kontrollera om en relevant fil redan finns. Svaret innehåller inget skärminnehåll. Använd get-screen-image eller get-screen-jsx för det. Indata Utdata: { files }.
  • owner: true om du skapade filen.
  • shared_with_me: true om filen delades med dig direkt, inte bara via din organisation.
  • url: öppnar filen i Flowstep-editorn.

get-file

Hämta metadata för en enskild fil. Filinnehållet utelämnas med avsikt. Använd get-screen-image eller get-screen-jsx för att granska skärmar och get-design-guidelines för att hämta kopplade riktlinjer. Om du har en väntande inbjudan till filen accepterar du den genom att anropa get-file. Indata Utdata: { file, user_access_level }.
  • access_level: private, read eller write.
  • visibility: private, member eller public.
  • user_access_level: din åtkomst till filen: read eller write.

create-file

Skapa en tom Flowstep-fil utan skärmar. Om du vill skapa en fil och generera skärmar i ett steg anropar du i stället ai-design-screens utan fileId. Använd create-file för kodfirst-arbetsflöden, följt av add-screen-jsx. Indata Utdata: { file, user_access_level }, i samma form som get-file. owner är alltid true och user_access_level är alltid write. Använd det returnerade file.id som fileId i efterföljande verktygsanrop.

update-file

Byt namn på en fil. Indata Utdata: { file, user_access_level }, i samma form som get-file.

delete-file

Ta bort en fil permanent. name du skickar in kontrolleras mot filens aktuella visningsnamn innan borttagningen. Om det inte stämmer avbryts borttagningen. Det förhindrar att du råkar ta bort fel fil. Agenter instrueras att bekräfta med dig först. Indata Utdata: { "deleted": true }
Detta går inte att ångra. Alla skärmar i filen tas bort.

Skärmverktyg

list-screens

Lista skärmarna i en fil, i canvasordning. Anropa detta efter list-files för att se vad som redan finns i en fil. Använd de returnerade screenId-värdena med de andra skärmverktygen och AI-designverktygen. Indata Utdata: { screens }.
  • prompt: den senaste genereringsprompten för skärmen, eller en tom sträng om den aldrig genererades (till exempel en skärm som lagts till med add-screen-jsx).
  • fidelity: lofi, hifi eller ui.

get-screen-image

Rendera en skärm till PNG och returnera den som en inline-bild. Kräver en klient som stöder bildblock. Anropa verktyget en gång för varje screenId som returneras av ett AI-designverktyg, add-screen-jsx, replace-screen-jsx eller import-figma. Indata Utdata: MCP-bildinnehållsblock (image/png). data är standard-base64 för PNG-bytes, inte en data-URI. Det finns inget structuredContent för detta verktyg.

get-screen-jsx

Hämta en skärm som JSX tillsammans med dess metadata. Då kan du bygga utifrån den i din kodbas, eller redigera den och skriva tillbaka den med replace-screen-jsx. Använd get-screen-image för en visuell förhandsvisning i stället. Indata Utdata: { fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }.
  • jsx: endast markup. data-id-attribut ingår bara när includeIds är true.
  • prompt: den senaste genereringsprompten, eller en tom sträng om skärmen aldrig genererades.
  • fragments: delad gemensam kromkod som lagras på skärmen, till exempel en navigeringsrad, en rubrik eller en logotyp, som objekt av typen { purpose, markup }. Tom när det inte finns några. Skicka tillbaka dem till replace-screen-jsx för att behålla eller uppdatera dem.
Se Skärmfältens värden för värdena för fidelity, screenType och colorTheme.

add-screen-jsx

Lägg till en ny skärm i en fil från JSX som du har skrivit. Detta är den kodfirst-väg som är gratis. Använd ai-design-screens när du vill att Flowstep:s AI ska designa skärmen. add-screen-jsx skapar alltid en ny skärm. Vill du skriva över en befintlig skärm använder du replace-screen-jsx. Om du vill visa en bild du har laddat upp, se Bilder i JSX. När den nya skärmen bygger på en befintlig börjar du med get-screen-jsx (utan includeIds) för name, fidelity, screenType, colorTheme och jsx, och ändrar sedan det som ska skilja sig. Indata Utdata: { fileId, screenId }. Anropa get-screen-image med screenId för att se resultatet.

replace-screen-jsx

Skriv över en befintlig skärm med JSX som du har skrivit. Skärmen behåller sitt screenId och sin position på canvas. Kapslade element får nya ID:n. Detta är den kodfirst-väg som är gratis. Använd ai-design-screens eller ai-edit-screen-variant för AI-ändringar och add-screen-jsx för att skapa en ny skärm i stället. Börja med get-screen-jsx (utan includeIds) och ändra sedan det som ska skilja sig. Om du vill visa en bild du har laddat upp, se Bilder i JSX. Indata Utdata: { fileId, screenId }. Anropa get-screen-image med screenId för att se resultatet.
Detta ersätter skärmens innehåll på plats.

rename-screen

Byt namn på en skärms canvasetikett, det namn som visas i list-screens och i editorn. Detta ändrar endast etiketten, inte skärmens layout, storlek eller innehåll. För sådana ändringar använder du ai-design-screens. Indata Utdata: { screenId, name }.

delete-screen

Ta bort en skärm permanent från en fil. name du skickar in kontrolleras mot skärmens aktuella visningsnamn. Om det inte stämmer avbryts borttagningen. Agenter instrueras att bekräfta med dig först. Indata Utdata: { "deleted": true }

Bilder i JSX

add-screen-jsx och replace-screen-jsx accepterar bilder i ett img-src, eller som bakgrund i className med bg-[url(...)]. Skriv alt-text och anpassa storleken på varje bild efter dess syfte. Så här placerar du en egen bild:
  1. Ladda upp den med upload-attachment i läge A (mimeType + fileName) och kör det returnerade uploadCommand.
  2. Om svarets type är "image" klistrar du in dess assetUrl exakt som den returnerades i img src eller bg-[url(assetUrl)].
Lämna alla andra bild-URL:er exakt som get-screen-jsx returnerade dem. Lägg inte path, signedUrl eller uploadCommand i src.

Skärmfältens värden

get-screen-jsx returnerar, och add-screen-jsx och replace-screen-jsx accepterar, dessa värden:

Verktyg för designriktlinjer

Designriktlinjer är DESIGN.md-text som lagras på en fil. När de är satta injiceras de i varje AI-generering för den filen. Se Designriktlinjer.

get-design-guidelines

Hämta designriktlinjerna som är kopplade till en fil. Indata Utdata: { guidelines }.
guidelines är null om inga riktlinjer har satts.

update-design-guidelines

Sätt eller ersätt designriktlinjerna för en fil. Skicka riktlinjerna som en vanlig sträng i Googles DESIGN.md-format, inte som ett objekt eller JSON. Om du läser från en fil skickar du den filens text. Indata Valideringsregler
  • Frontmatter måste öppnas och stängas korrekt
  • Frontmatter-rader måste vara giltig YAML i blockstil
  • Markdown-brödtexten får inte innehålla dubbla ##-rubriker för sektioner
Om valideringen misslyckas returnerar anropet ett fel som börjar med Invalid design guidelines:. Utdata: { updated, warnings? }.
warnings listar mjuka valideringsproblem (okända nycklar, färger som inte är hex) som accepterades men som AI:n kan ignorera. Den utelämnas när det inte finns några. Visa dessa för användaren.

delete-design-guidelines

Rensa designriktlinjerna för en fil. Att ta bort riktlinjer som inte finns gör inget. Indata Utdata: { "deleted": true }

Chattverktyg

get-chat-history

Hämta designkonversationen som är kopplad till en fil, det vill säga filens Flowstep-chatt och inte din MCP-klients konversation. Använd den för att återuppta tidigare arbete på filen. Indata Utdata: { messages }. messages är tom när det inte finns någon designkonversation på filen. Varje meddelande har en type ("request" eller "response"), en author ("human" eller "ai") och en content_type. Svarsmeddelanden använder "text", "summary" eller "followup".

Bilageverktyg

upload-attachment

Ladda upp en referensfil att använda som bilaga i ai-design-screens, eller en bild att placera i din egen JSX med add-screen-jsx eller replace-screen-jsx. ai-generate-screen-variant och ai-edit-screen-variant tar inte emot bilagor. Filbytes passerar aldrig genom modellen, och servern hämtar aldrig URL:er å dina vägnar. Om du vill referera till en webbsida tar du med dess URL i message för ai-design-screens i stället. Det finns två lägen. Använd exakt ett av dem och kombinera dem inte. Läge A: filer och bilder (mimeType + fileName) Ett obligatoriskt trestegsflöde för bilder, PDF-filer och större textfiler:
  1. Anropa upload-attachment med endast mimeType och fileName (till exempel image/png och dog.png). Svaret är en förberedd uppladdning, inte en lagrad fil:
  2. Ersätt LOCAL_FILE_PATH i uploadCommand med den absoluta sökvägen till din fil och kör exakt det kommandot i din shell. Det måste avslutas med 0. Token i signedUrl godkänner endast denna enskilda uppladdning. Om du hoppar över detta steg blir lagringen tom och designverktyget misslyckas med sin förkontroll.
  3. Skicka endast { id, path, type } i arrayen attachments för ai-design-screens, inte signedUrl, uploadCommand eller nextStep. Om du i stället vill placera en bild i din egen JSX lägger du assetUrl i img src eller bg-[url(...)] i JSX:en som du skickar till add-screen-jsx eller replace-screen-jsx. Se Bilder i JSX.
Om du vill bifoga en fjärrfil laddar du först ner den till en lokal sökväg själv (till exempel med curl) och följer sedan samma tre steg. Skicka aldrig en URL till upload-attachment. Läge B: kort text (text + mimeType) Ladda upp text som redan finns i kontexten. Ingen shell-kommando behövs. Svaret kan användas direkt:
Skicka det resulterande { id, path, type } i arrayen attachments för ai-design-screens. Maximal filstorlek är 3 MB i båda lägena, och PDF-filer är begränsade till 100 sidor. Utdata: { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
  • type: "image" för bildfiler och "document" för PDF-filer och textfiler.
  • assetUrl: den uppladdade filens URL, som returneras i båda lägena. Använd den i JSX för add-screen-jsx eller replace-screen-jsx endast när type är "image", och först efter att uploadCommand i läge A har körts.
  • signedUrl, uploadCommand, nextStep: anges endast i läge A. Skicka dem inte till designverktygen.

Figma-verktyg

import-figma

Importera en Figma-ram till en Flowstep-fil som redigerbara element på dess canvas. Varje import lägger till en ny skärm. Om du importerar samma ram två gånger får du två skärmar, så ta bort den gamla med delete-screen om du menade att ersätta den. Filens organisation måste ha Figma anslutet i Flowstep-inställningarna. Indata Utdata: { fileId, screenId, frameCount? }. screenId är den importerade skärmen. Skicka den till get-screen-image för att se resultatet. När en sid-URL importerar flera ramar är screenId null och frameCount returneras i stället. Anropa då list-screens och sedan get-screen-image för varje ny skärm.

Verktyg för plan och fakturering

get-plan-details

Hämta din organisations Flowstep-plan, prenumerationsstatus, användning och kvarvarande kvot. Tar inga indata. Organisationen fastställs utifrån den inloggade användaren. Använd det för att kontrollera din kvot innan du anropar AI-designverktygen. Utdata: { plan, subscription, limits, usage, remaining }. Gränserna varierar mellan planerna. Se Priser och Användningsgränser.

AI-designverktyg

Dessa tre verktyg designar utifrån en beskrivning eller en förinställning. De tar aldrig emot eller återanvänder JSX. Varje anrop använder samma meddelandekvot som Flowstep-appen och blockeras tills genereringen är klar eller får timeout (180 sekunder). Alla tre returnerar { status, fileId, screenIds, designGuidelinesUpdated }. Anropa get-screen-image en gång för varje screenId för att se resultatet.
  • designGuidelinesUpdated: en kort sammanfattning av ändringen när filens DESIGN.md-riktlinjer uppdaterades automatiskt under den här omgången. Annars null.

ai-design-screens

Generera en eller flera nya skärmar, ändra befintliga skärmar på plats, eller båda i ett anrop, utifrån en textbeskrivning. Detta gäller nya flöden, teman, text, layout eller samordnade ändringar över flera skärmar. Det är samma designagent som chatten i Flowstep-editorn. Den avgör utifrån ditt message och elementIds vad som ska byggas och vad som ska ändras. Utelämna fileId för att starta en ny fil. Skicka fileId för att arbeta i en befintlig fil. Om begäran kan gälla en fil du redan har bör din agent kontrollera list-files och list-screens först. För nästa steg, ett fel- eller tomt tillstånd eller en plattformsvariant av en skärm använder du ai-generate-screen-variant. För en förinställd redigering eller omdesign av en skärm använder du ai-edit-screen-variant. Om du redan har JSX använder du add-screen-jsx eller replace-screen-jsx i stället. Indata Exempel: redigera en skärm och lägg till en annan i ett enda anrop:
Utdata: { status, fileId, screenIds, designGuidelinesUpdated, reply? }.
  • status: "generated" när skärmar byggdes eller ändrades. "chat" när Flowstep svarade utan att bygga. Då innehåller reply svaret och screenIds är tom. Om din beskrivning är tvetydig bör din agent be dig förtydliga och anropa verktyget igen.
  • screenIds: varje skärm som byggdes eller ändrades under anropet, inklusive skärmar som redigerades på plats. Om anropet får timeout efter att vissa skärmar har byggts returnerar det dessa skärmar i stället för ett fel.
Skärmar som du ber det redigera skrivs över på plats.

ai-generate-screen-variant

Lägg till en ny skärm som härleds från exakt en befintlig skärm: nästa steg i flödet, ett fel- eller tomt tillstånd eller en version för en annan plattform. Originalskärmen lämnas oförändrad. För att lägga till en skärm som inte är en variant av en befintlig, till exempel en inställningsskärm, använder du ai-design-screens med ett fileId. Indata Utdata: { status, fileId, screenIds, designGuidelinesUpdated }. status är alltid "generated".

ai-edit-screen-variant

Ändra exakt en befintlig skärm på plats med en förinställning: sätt tema eller polera den, prova en annan layout eller visuell stil, eller designa om den från grunden. För nya skärmar, instruktioner i fritt format eller en exakt redigering av enskilda element använder du ai-design-screens. Indata Utdata: { status, fileId, screenIds, designGuidelinesUpdated }. status är alltid "generated".
Detta skriver över skärmens innehåll på plats.

Omdöpta verktyg

Verktygsnamnen ändrades i september och oktober 2026. Om du har prompter, skript eller agentinstruktioner som använder de gamla namnen uppdaterar du dem: Indata ändrades också: AI-designverktygen tar elementIds (eller ett enskilt screenId för variantverktygen) i stället för targets. add-screen-jsx tar jsx och explicita metadatafält i stället för jsxContent med en metadatakommentar. create-file tar name i stället för title. Verktygen för designriktlinjer tar fileId i stället för resourceId och linkedTo.