get-screen-image を除くすべてのツールが結果を2回返します。1つ目は structuredContent です(ツールの公開された出力スキーマに対して検証されます)。2つ目は、同じオブジェクトをテキストブロック { type: "text", text: "<json-string>" } としてシリアライズしたものです。これは、構造化コンテンツを読み取らないクライアント向けです。get-screen-image は、MCP の画像ブロック { type: "image", data: "<base64>", mimeType: "image/png" } のみを返します。
失敗時は isError: true が設定され、テキストブロックに短いエラーメッセージが含まれます。対処可能なエラー(削除時の名前の不一致、無効なFigmaリンク、無効なデザインガイドライン、添付ファイルの問題、生成のタイムアウトなど)では、修正方法が説明されます。それ以外の失敗では、Failed to list files などの汎用的なメッセージが返されます。
delete-file、delete-screen、delete-design-guidelines、replace-screen-jsx、ai-design-screens、ai-edit-screen-variant は、既存のコンテンツを削除または上書きするため、破壊的な操作としてマークされています。
ファイルツール
list-files
Flowstepのファイルのメタデータを一覧表示します。関連するファイルがすでに存在するかどうかを確認するには、最初にこのツールを呼び出してください。画面の内容は返されません。その場合は get-screen-image または get-screen-jsx を使用してください。
入力
出力 —
{ files }。
owner— 自分が作成したファイルの場合はtrueです。shared_with_me— 組織を経由せず、直接共有されたファイルの場合はtrueです。url— Flowstepエディターでファイルを開きます。
get-file
単一のファイルのメタデータを取得します。ファイルの内容は意図的に省略されています。画面を確認するには get-screen-image または get-screen-jsx を、添付されたガイドラインを取得するには get-design-guidelines を使用してください。ファイルへの保留中の招待がある場合、get-file を呼び出すと招待が承諾されます。
入力
出力 —
{ file, user_access_level }。
access_level—private、read、またはwriteです。visibility—private、member、またはpublicです。user_access_level— ファイルに対するあなたのアクセス権です。readまたはwriteです。
create-file
画面のない空のFlowstepファイルを作成します。ファイルの作成と画面の生成を1つの手順で行うには、代わりに fileId を指定せずに ai-design-screens を呼び出してください。コードファーストのワークフローでは、create-file を使用したあとに add-screen-jsx を使います。
入力
出力 —
get-file と同じ形式の { file, user_access_level }。owner は常に true、user_access_level は常に write です。
返された file.id を、後続のツール呼び出しで fileId として使用します。
update-file
ファイル名を変更します。
入力
出力 —
get-file と同じ形式の { file, user_access_level }。
delete-file
ファイルを完全に削除します。削除前に、渡された name がファイルの現在の表示名と照合されます。一致しない場合、削除は中止されます。これにより、誤って別のファイルを削除することを防げます。エージェントは、削除する前に必ずあなたに確認するよう指示されています。
入力
出力 —
{ "deleted": true }
画面ツール
list-screens
ファイル内の画面を、キャンバスの順序で一覧表示します。list-files を呼び出したあとにこのツールを使うと、ファイルに何が含まれているかを確認できます。返された screenId の値は、他の画面ツールやAIデザインツールで使用できます。
入力
出力 —
{ screens }。
prompt— 画面の最後の生成プロンプトです。一度も生成されていない場合(たとえばadd-screen-jsxで追加された画面など)は、空の文字列です。fidelity—lofi、hifi、またはuiです。
get-screen-image
画面をPNGにレンダリングし、インライン画像として返します。画像コンテンツブロックに対応したクライアントが必要です。AIデザインツール、add-screen-jsx、replace-screen-jsx、または import-figma によって返された screenId ごとに、1回ずつ呼び出してください。
入力
出力 — MCP の画像コンテンツブロック(
image/png)。data は、データURIではなく、PNGのバイト列の標準Base64です。このツールには structuredContent はありません。
get-screen-jsx
画面をJSXとそのメタデータとして取得します。コードベースでそれをもとに実装したり、編集して replace-screen-jsx で書き戻したりできます。視覚的なプレビューが必要な場合は、代わりに get-screen-image を使用してください。
入力
出力 —
{ fileId, screenId, name, prompt, fidelity, screenType, colorTheme, jsx, fragments }。
jsx— マークアップのみです。data-id属性は、includeIdsがtrueの場合にのみ含まれます。prompt— 最後の生成プロンプトです。一度も生成されていない画面の場合は、空の文字列です。fragments— ナビゲーションバー、ヘッダー、ロゴなど、画面に保存された共通のクロームです。{ purpose, markup }オブジェクトとして表されます。存在しない場合は空です。保持または更新するには、replace-screen-jsxに戻して渡します。
fidelity、screenType、colorTheme の値については、画面フィールドの値を参照してください。
add-screen-jsx
作成したJSXから、ファイルに新しい画面を追加します。これはコードファーストの方法で、無料です。Flowstepの AI に画面をデザインさせたい場合は、ai-design-screens を使用してください。add-screen-jsx は常に新しい画面を作成します。既存の画面を上書きするには、replace-screen-jsx を使用してください。
アップロードした画像を表示するには、JSX内の画像を参照してください。
新しい画面が既存の画面に基づく場合は、get-screen-jsx(includeIds なし)から name、fidelity、screenType、colorTheme、jsx を取得し、異なる部分を変更してください。
入力
出力 —
{ fileId, screenId }。結果を表示するには、screenId を指定して get-screen-image を呼び出します。
replace-screen-jsx
作成したJSXで既存の画面を上書きします。画面は screenId とキャンバス上の位置を保持し、入れ子になった要素には新しいIDが付与されます。これはコードファーストの方法で、無料です。AIによる変更には ai-design-screens または ai-edit-screen-variant を使用してください。代わりに新しい画面を作成するには、add-screen-jsx を使用します。
get-screen-jsx(includeIds なし)から開始し、異なる部分を変更してください。アップロードした画像を表示するには、JSX内の画像を参照してください。
入力
出力 —
{ fileId, screenId }。結果を表示するには、screenId を指定して get-screen-image を呼び出します。
rename-screen
画面のキャンバスラベル(list-screens とエディターに表示される名前)を変更します。変更されるのはラベルだけで、画面のレイアウト、サイズ、内容は変わりません。それらを変更するには ai-design-screens を使用してください。
入力
出力 —
{ screenId, name }。
delete-screen
ファイルから画面を完全に削除します。渡された name は、画面の現在の表示名と照合されます。一致しない場合、削除は中止されます。エージェントは、削除する前に必ずあなたに確認するよう指示されています。
入力
出力 —
{ "deleted": true }
JSX内の画像
add-screen-jsx と replace-screen-jsx は、img の src に画像を指定することも、className 内で bg-[url(...)] を使って背景として指定することも受け付けます。alt テキストを記述し、用途に合わせて各画像のサイズを指定してください。
独自の画像を配置するには、次の手順に従います。
upload-attachmentのモードA(mimeType+fileName)で画像をアップロードし、返されたuploadCommandを実行します。- レスポンスの
typeが"image"の場合、返されたassetUrlをそのままimg srcまたはbg-[url(assetUrl)]に貼り付けます。
get-screen-jsx が返したとおりに残してください。path、signedUrl、または uploadCommand を src に記述しないでください。
画面フィールドの値
get-screen-jsx が返し、add-screen-jsx と replace-screen-jsx が受け付ける値は次のとおりです。
デザインガイドラインツール
デザインガイドラインは、ファイルに保存されるDESIGN.md テキストです。設定されると、そのファイルに対するすべてのAI生成に組み込まれます。デザインガイドラインを参照してください。
get-design-guidelines
ファイルに添付されているデザインガイドラインを取得します。
入力
出力 —
{ guidelines }。
guidelines は null です。
update-design-guidelines
ファイルのデザインガイドラインを設定または置き換えます。ガイドラインは、Google の DESIGN.md 形式に従った、プレーンな文字列として渡してください。オブジェクトやJSONではありません。ファイルから読み取る場合は、そのファイルのテキストを渡します。
入力
検証ルール
- フロントマターは、正しく開始および終了している必要があります
- フロントマターの行は、有効なブロック形式のYAMLである必要があります
- Markdown の本文に、重複した
##セクション見出しを含めることはできません
Invalid design guidelines: で始まるエラーを返します。
出力 — { updated, warnings? }。
warnings には、受け入れられたものの AI によって無視される可能性がある、ソフトな検証の問題(不明なキー、16進数ではない色)が一覧表示されます。警告がない場合は省略されます。これらの警告は、必ずあなたに伝えてください。
delete-design-guidelines
ファイルのデザインガイドラインを削除します。存在しないガイドラインを削除しても、何も起こりません。
入力
出力 —
{ "deleted": true }
チャットツール
get-chat-history
ファイルに関連付けられたデザインの会話を取得します。これはMCPクライアントの会話ではなく、ファイルのFlowstepチャットです。ファイルでの以前の作業を再開するために使用します。
入力
出力 —
{ messages }。ファイルにデザインの会話がない場合、messages は空です。各メッセージには、type("request" または "response")、author("human" または "ai")、content_type があります。レスポンスのメッセージでは、"text"、"summary"、または "followup" が使用されます。
添付ファイルツール
upload-attachment
ai-design-screens の添付ファイルとして使用する参照ファイル、または add-screen-jsx や replace-screen-jsx で独自のJSXに配置する画像をアップロードします。ai-generate-screen-variant と ai-edit-screen-variant は添付ファイルを受け付けません。ファイルのバイト列はモデルを経由せず、サーバーがあなたの代わりにURLを取得することもありません。Webページを参照するには、代わりに ai-design-screens の message にそのURLを含めてください。
モードは2つあります。どちらか一方のみを使用し、組み合わせないでください。
モードA — ファイルと画像(mimeType + fileName)
画像、PDF、または大きなテキストファイルに必要な、3ステップのフローです。
-
mimeTypeとfileNameのみを指定してupload-attachmentを呼び出します(例:image/pngとdog.png)。レスポンスは保存済みのファイルではなく、準備されたアップロードです。 -
uploadCommand内のLOCAL_FILE_PATHを、ファイルの絶対パスに置き換え、そのコマンドをシェルでそのまま実行します。終了コードは 0 である必要があります。signedUrlのトークンは、この1回のアップロードのみを許可します。この手順を省略すると、ストレージは空のままになり、デザインツールの事前チェックに失敗します。 -
ai-design-screensのattachments配列には、{ id, path, type }のみを渡します。signedUrl、uploadCommand、nextStepは渡さないでください。代わりに自分のJSXに画像を配置する場合は、add-screen-jsxまたはreplace-screen-jsxに渡すJSXのimg srcまたはbg-[url(...)]にassetUrlを指定します。JSX内の画像を参照してください。
curl を使用)、同じ3つの手順に従います。upload-attachment にURLを渡すことはないでください。
モードB — 短いテキスト(
text + mimeType)
すでにコンテキストにあるテキストをアップロードします。シェルコマンドは不要です。レスポンスはそのまま使用できます。
結果の
{ id, path, type } を、ai-design-screens の attachments 配列に渡します。
両方のモードで、最大ファイルサイズは 3 MB です。また、PDFは100ページに制限されています。
出力 — { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }。
type— 画像ファイルの場合は"image"、PDFとテキストファイルの場合は"document"です。assetUrl— アップロードされたファイルのURLです。両方のモードで返されます。typeが"image"の場合にのみ、モードAのuploadCommandを実行したあとで、add-screen-jsxまたはreplace-screen-jsxのJSXで使用します。signedUrl、uploadCommand、nextStep— モードAでのみ設定されます。デザインツールには渡さないでください。
Figmaツール
import-figma
Figmaのフレームを、キャンバス上の編集可能な要素としてFlowstepファイルに取り込みます。取り込みのたびに新しい画面が追加されます。同じフレームを2回取り込むと、2つの画面が作成されます。置き換えるつもりだった場合は、古い画面を delete-screen で削除してください。ファイルの組織では、Flowstepの設定でFigmaが接続されている必要があります。
入力
出力 —
{ fileId, screenId, frameCount? }。screenId は取り込まれた画面です。結果を表示するには、これを get-screen-image に渡します。ページのURLで複数のフレームが取り込まれた場合、screenId は null になり、代わりに frameCount が返されます。その場合は、list-screens を呼び出したあと、新しい画面ごとに get-screen-image を呼び出してください。
プランと請求ツール
get-plan-details
組織のFlowstepプラン、サブスクリプションの状態、利用状況、残りの利用枠を取得します。入力は不要です。組織はサインインしているユーザーから特定されます。AIデザインツールを呼び出す前に、利用枠を確認するために使用します。
出力 — { plan, subscription, limits, usage, remaining }。
上限はプランによって異なります。料金と利用上限を参照してください。
AIデザインツール
これら3つのツールは、説明またはプリセットからデザインします。JSXを受け取ったり再利用したりすることはありません。各呼び出しは、Flowstepアプリと同じメッセージの利用枠を消費し、生成が完了するかタイムアウト(180秒)になるまでブロックします。
3つすべてが
{ status, fileId, screenIds, designGuidelinesUpdated } を返します。結果を表示するには、screenId ごとに1回ずつ get-screen-image を呼び出します。
designGuidelinesUpdated— この呼び出しの間にファイルのDESIGN.mdガイドラインが自動的に更新された場合の、変更の簡単な要約です。それ以外の場合はnullです。
ai-design-screens
テキストの説明から、1つ以上の新しい画面を生成したり、既存の画面をその場で変更したり、その両方を1回の呼び出しで行ったりします。新しいフロー、テーマ設定、コピー、レイアウト、または複数の画面にまたがる連携した変更が対象です。これは、Flowstepエディターのチャットと同じデザインエージェントです。message と elementIds から、何を構築し、何を変更するかを判断します。
fileId を省略すると新しいファイルを開始します。既存のファイルで作業するには、fileId を渡します。リクエストが既存のファイルに適用される可能性がある場合は、エージェントが最初に list-files と list-screens を確認する必要があります。1つの画面の次のステップ、エラーや空の状態、またはプラットフォームのバリエーションを作成するには、ai-generate-screen-variant を使用します。1つの画面にプリセットを適用して編集またはリデザインするには、ai-edit-screen-variant を使用します。すでにJSXがある場合は、代わりに add-screen-jsx または replace-screen-jsx を使用してください。
入力
例 — 1回の呼び出しで、1つの画面を編集して別の画面を追加する:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }。
status— 画面が構築または変更された場合は"generated"です。Flowstep が構築せずに返信した場合は"chat"です。その場合、replyにその回答が含まれ、screenIdsは空になります。指示が曖昧な場合は、エージェントがあなたに明確化を求め、ツールを再度呼び出す必要があります。screenIds— 呼び出し中に構築または変更されたすべての画面です。その場で編集された画面も含まれます。一部の画面が構築されたあとに呼び出しがタイムアウトした場合は、エラーではなく、それらの画面が返されます。
ai-generate-screen-variant
既存の1つの画面から派生した新しい画面を追加します。フローの次のステップ、エラーや空の状態、または別のプラットフォーム向けのバージョンです。元の画面は変更されません。既存の画面のバリエーションではない画面(たとえば設定画面など)を追加するには、fileId を指定して ai-design-screens を使用してください。
入力
出力 —
{ status, fileId, screenIds, designGuidelinesUpdated }。status は常に "generated" です。
ai-edit-screen-variant
プリセットを使って、既存の1つの画面をその場で変更します。テーマを設定したり、洗練させたり、別のレイアウトや視覚スタイルを試したり、ゼロからリデザインしたりできます。新しい画面、自由形式の指示、または個々の要素への正確な編集には、ai-design-screens を使用してください。
入力
出力 —
{ status, fileId, screenIds, designGuidelinesUpdated }。status は常に "generated" です。
名前が変更されたツール
ツール名は2026年9月と10月に変更されました。古い名前を使用するプロンプト、スクリプト、またはエージェントの指示がある場合は、更新してください。
入力も変更されています。AIデザインツールは、
targets の代わりに elementIds(バリエーションツールの場合は単一の screenId)を受け取ります。add-screen-jsx は、メタデータコメント付きの jsxContent の代わりに、jsx と明示的なメタデータフィールドを受け取ります。create-file は、title の代わりに name を受け取ります。デザインガイドラインツールは、resourceId と linkedTo の代わりに fileId を受け取ります。