Skip to main content
すべてのツールはMCPコンテンツブロックのcontent配列を返します。テキストツールは{ type: "text", text: "<json-string>" }を返します。画像ツールは{ type: "image", data: "<base64>", mimeType: "image/png" }を返します。失敗時はisError: trueが設定され、テキストブロックにエラーメッセージが含まれます。

ファイルツール

list-files

現在のユーザーの Flowstep ファイルをリストします。 入力 出力 — ファイルオブジェクトのJSON配列。

get-file

ファイルID で単一のファイルを取得します。ファイルコンテンツは意図的に省略されています — get-screen または get-screen-image を使用して画面を検査し、get-design-guidelines を使用して添付されたガイドラインを取得します。 入力 出力 — JSON ファイルオブジェクト。

create-file

新しい Flowstep ファイルを作成します。 入力 出力 — 新しいファイルの id を含む JSON ファイルオブジェクト。
その後のツール呼び出しで fileId として返された id を使用してください。

update-file

ファイルの名前を変更します。 入力 出力 — get-file と同じ形状の更新されたファイルオブジェクト。

delete-file

ファイルを完全に削除します。渡す name はファイルの実際の名前に対して検証されます — 一致しない場合、削除は中止されます。これにより、誤ってファイルを削除することを防ぎます。 入力 出力 — "File deleted successfully"
これは取り消せません。ファイル内のすべての画面が削除されます。

画面ツール

list-screens

ファイルのすべての生成済み画面をリストします。返された screenId 値を使用して get-screen、get-screen-image で画面を参照し、edit-design、regenerate-design、または expand-design の targets として使用します。 入力 出力 — 画面サマリーの JSON 配列。
name はユーザーが割り当てた画面名、または名前がない場合は null です。

get-screen

Flowstep の外で編集または使用できるようにするために、画面の JSX コードを取得します。ビジュアルプレビューには get-screen-image を使用してください。 入力 出力 — 画面をコード (JSX) として。最初の行のコメントに注意してください。これは add-screen ツールを使用する場合に必須です。

add-screen

生の JSX 文字列から Flowstep ファイルに新しい画面を追加します。 入力 注記 — 以下のようなコメントが JSX の最初の行として存在する必要があります。これは画面を正しく追加するために使用されます。screenType、name、screenId はすべてオプションです — screenId が存在する場合は使用されます(例えば、get-screen 出力からコピーされた JSX を渡すとき)が、必須ではありません。画面名はコメントの name フィールドから取得されます(“Copy of <name>” として表示)、またはない場合は “Untitled” です。 <!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" --> 出力 — 新しく追加された画面ID。

get-screen-image

画面を PNG にレンダリングし、インライン画像として返します。イメージコンテンツブロックをサポートするクライアントが必要です。 入力 出力 — MCP イメージコンテンツブロック (image/png)。

rename-screen

画面のキャンバスラベル(list-screensまたはエディターで表示される名前)の名前を変更します。これはラベルのみを変更し、画面のレイアウト、サイズ、またはコンテンツは変わりません — これらについてはedit-designを使用してください。 入力 出力 — { screenId, name }。

AI ツール

regenerate-design、expand-design、edit-design は、最初に designs 配列を使用して生成された画面にのみ存在するデザインコンテキストが必要です。デザインコンテキストなしで生成された画面はエラーを返します。

create-new-design

テキストプロンプトから1つ以上の画面デザインを生成します。fileId を省略すると、新しいファイルが自動的に作成されます。生成完了またはタイムアウト (180 秒) までブロックします。 入力 出力 — { fileId, screenIds, designGuidelinesUpdated }。結果を表示するには、各screenIdをget-screen-imageに渡します。designGuidelinesUpdatedは、このレスポンスの一部としてファイルのデザインガイドラインが変更されたかどうかを報告します。

regenerate-design

既存の画面をスクラッチからまたはスタイルのバリエーション付きで再実行します。targetsに少なくとも1つのscreenIdが必要です。生成完了またはタイムアウト(180秒)までブロックします。 入力 出力 — { fileId, screenIds, designGuidelinesUpdated }。結果を表示するには、各screenIdをget-screen-imageに渡します。

expand-design

既存のデザインに後続の画面を追加します。targetsに少なくとも1つのscreenIdが必要で、必須のoperationVariantが必要です。生成完了またはタイムアウト(180秒)までブロックします。 入力 出力 — { fileId, screenIds, designGuidelinesUpdated }。結果を表示するには、各screenIdをget-screen-imageに渡します。

edit-design

プロンプトを通じて既存の画面を変更します。targetsに少なくとも1つのscreenIdが必要です。生成完了またはタイムアウト(180秒)までブロックします。 入力 出力 — { fileId, screenIds, designGuidelinesUpdated }。結果を表示するには、各screenIdをget-screen-imageに渡します。

upload-attachment

create-new-design または edit-design で使用する添付ファイルとしてファイルをアップロードします (regenerate-design または expand-design ではありません)。ファイル バイトはモデルを通じて渡されず、サーバーはあなたに代わって URL をフェッチしません。 正確に1つのモードを使用し、組み合わせないでください。 モード A — ファイルと画像 (mimeType + fileName) 画像、PDF、またはより大きなテキスト ファイルの場合は必須の3ステップ フロー。
  1. mimeType と fileName のみで upload-attachment を呼び出します (例えば image/png と dog.png)。レスポンスは保存されたファイルではなく、準備されたアップロードです。
  2. uploadCommand の LOCAL_FILE_PATH をファイルへの絶対パスに置き換えて、そのコマンドを shell で実行します — exit 0 である必要があります。signedUrl のトークンはこの単一アップロードのみを認可します。このステップをスキップするとストレージが空のままになり、デザインツールが事前チェックに失敗します。
  3. { id, path, type } のみをデザインツールの attachments 配列に渡します — signedUrl、uploadCommand、または nextStep は渡しません。
リモート ファイルを添付するには、まず自分でローカル パスにダウンロードしてから (例えば curl で)、同じ3ステップに従います。upload-attachment に URL を渡さないでください。 モード B — 短いテキスト (text + mimeType) 既にコンテキストにあるテキストをアップロードします — shell コマンドは不要です。レスポンスはすぐに使用できます。
create-new-design または edit-design の attachments 配列に結果の { id, path, type } を渡します。 最大ファイル サイズは両方のモード全体で 3 MB です。PDF は 100 ページに制限されています。type は画像ファイルの場合 "image"、PDF とテキスト ファイルの場合 "document" です。

チャット ツール

get-chat-history

ファイルのチャット メッセージ履歴を取得します。 入力 出力 — messages 配列を含む JSON オブジェクト。各メッセージは type ("request" または "response")、author ("human" または "ai")、および content_type ("text"、"summary"、または "followup") を持ちます。

デザインツール

get-design-guidelines

ファイル用に保存されたデザインガイドラインを取得します。 入力 出力
guidelines はガイドラインが設定されていない場合は null です。

update-design-guidelines

ファイルのデザインガイドラインを設定または置換します。ガイドラインはGoogle の design.md 形式の平文文字列として渡されます — オブジェクトまたは JSON を渡さないでください。 サーバーはソフト検証を実行し、レスポンス内に Warnings: セクションを返す場合があります。このセクションには受け入れられたが AI が無視する可能性のある問題 (未知のキー、16進数以外の色) をリストしています。これらをユーザーに表示してください。 入力 検証ルール
  • フロントマターは正しく開かれ、閉じられる必要があります
  • フロントマター行は有効なブロック スタイル YAML である必要があります
  • Markdown 本体には重複した ## セクション見出しが含まれません
出力 — "Design guidelines updated successfully" (場合によっては Warnings: セクション)。

delete-design-guidelines

ファイルのデザインガイドラインをクリアします。 入力 出力 — "Design guidelines deleted successfully"

Figma ツール

import-figma

Figma フレームを Flowstep ファイルにキャンバス上の編集可能な要素としてインポートします。同じフレームを再度インポートすると、その場で更新されます。ファイルの組織には Flowstep 設定で Figma が接続されている必要があります。 入力 出力 — { fileId, screenId }。screenId はインポートされた画面要素の ID です — get-screen-image に渡して結果を表示します。ページ URL が複数のフレームをインポートする場合、screenId は null で、frameCount が代わりに返されます。

課金 ツール

get-plan-details

現在のユーザーのプラン、サブスクリプション ステータス、および残りのクォータを取得します。入力は不要です。 出力
制限はプランによって異なります。生成のバッチの前にこのツールを呼び出して、利用可能なクォータを確認してください。