> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowstep.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# הפניית כלים MCP

> ערכת קלט, צורת פלט, ודוגמאות לכל 20 כלי Flowstep MCP.

כל הכלים מחזירים מערך `content` של MCP content blocks. כלים טקסט מחזירים `{ type: "text", text: "<json-string>" }`. כלים תמונה מחזירים `{ type: "image", data: "<base64>", mimeType: "image/png" }`. בכישלון, `isError: true` מוגדר והבלוק טקסט מכיל את הודעת השגיאה.

***

## כלי קבצים

### `list-files`

רשום את קבצי Flowstep של המשתמש הנוכחי.

**קלט**

| פרמטר             | סוג               | ברירת מחדל | תיאור               |
| ----------------- | ----------------- | ---------- | ------------------- |
| `orderByCreation` | `boolean`         | `true`     | סדר לפי תאריך יצירה |
| `limit`           | `integer` (1–100) | `20`       | מספר קבצים להחזרה   |
| `offset`          | `integer` (≥0)    | `0`        | Pagination offset   |

**פלט** — מערך JSON של אובייקטי קובץ.

```json theme={"system"}
[
  {
    "id": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
    "name": "Dashboard redesign",
    "created_at": "2026-04-30T15:02:13.120152+00:00",
    "updated_at": "2026-04-30T15:02:13.120152+00:00",
    "owner": true,
    "url": "https://app.flowstep.ai/file?activeFileId=5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0"
  }
]
```

***

### `get-file`

קבל קובץ יחיד לפי ID. תוכן הקובץ מושמט בכוונה — השתמש ב-`get-screen` או `get-screen-image` כדי לבדוק מסכים, וב-`get-design-guidelines` כדי לאחזר הנחיות מצורפות.

**קלט**

| פרמטר | סוג    | תיאור   |
| ----- | ------ | ------- |
| `id`  | `uuid` | File ID |

**פלט** — אובייקט קובץ JSON.

```json theme={"system"}
{
  "file": {
    "id": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
    "name": "Dashboard redesign",
    "project_id": "81cb84d6-c69f-492c-a895-7421b60d1a6d",
    "created_at": "2026-04-30T15:02:13.120152+00:00",
    "updated_at": "2026-04-30T15:02:13.120152+00:00",
    "access_level": "private",
    "owner": true,
    "url": "https://app.flowstep.ai/file?activeFileId=5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0"
  },
  "user_access_level": "write"
}
```

***

### `create-file`

צור קובץ Flowstep חדש.

**קלט**

| פרמטר   | סוג              | תיאור    |
| ------- | ---------------- | -------- |
| `title` | `string` (min 1) | שם הקובץ |

**פלט** — אובייקט קובץ JSON עם ה-`id` של הקובץ החדש.

```json theme={"system"}
{
  "id": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
  "name": "Dashboard redesign",
  "project_id": "81cb84d6-c69f-492c-a895-7421b60d1a6d",
  "created_at": "2026-04-30T15:02:13.120152+00:00",
  "updated_at": "2026-04-30T15:02:13.120152+00:00",
  "access_level": "private",
  "user_access_level": "write",
  "owner": true,
  "url": "https://app.flowstep.ai/file?activeFileId=5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0"
}
```

השתמש ב-`id` המוחזר כ-`fileId` בקריאות כלי הבאות.

***

### `update-file`

שנה שם של קובץ.

**קלט**

| פרמטר  | סוג              | תיאור   |
| ------ | ---------------- | ------- |
| `id`   | `uuid`           | File ID |
| `name` | `string` (min 1) | שם חדש  |

**פלט** — אובייקט קובץ מעודכן באותה צורה כמו `get-file`.

```json theme={"system"}
{
  "file": {
    "id": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
    "name": "Dashboard redesign (v2)",
    "project_id": "81cb84d6-c69f-492c-a895-7421b60d1a6d",
    "created_at": "2026-04-30T15:02:13.120152+00:00",
    "updated_at": "2026-04-30T15:02:13.120152+00:00",
    "access_level": "private",
    "owner": true,
    "url": "https://app.flowstep.ai/file?activeFileId=5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0"
  },
  "user_access_level": "write"
}
```

***

### `delete-file`

מחק קובץ באופן קבוע. ה-`name` שאתה מעביר מאומת כנגד השם בפועל של הקובץ לפני המחיקה — אם הוא לא תואם, המחיקה מבוטלת. זה מונע מחיקה accidental של הקובץ הלא נכון.

**קלט**

| פרמטר  | סוג      | תיאור                                                    |
| ------ | -------- | -------------------------------------------------------- |
| `id`   | `uuid`   | File ID                                                  |
| `name` | `string` | השם הנוכחי של הקובץ — חייב להתאים בדיוק או המחיקה מבוטלת |

**פלט** — `"File deleted successfully"`

<Warning>
  זה בלתי הפיך. כל המסכים בקובץ נמחקים.
</Warning>

***

## כלי מסכים

### `list-screens`

רשום את כל המסכים שנוצרו לקובץ. השתמש בערכי `screenId` המוחזרים כדי להפנות למסכים ב-`get-screen`, `get-screen-image`, `upload-attachment`, וכ-`targets` ב-`edit-design`, `regenerate-design`, או `expand-design`.

**קלט**

| פרמטר    | סוג    | תיאור   |
| -------- | ------ | ------- |
| `fileId` | `uuid` | File ID |

**פלט** — מערך JSON של סיכומי מסך.

```json theme={"system"}
[
  {
    "screenId": "3f9e6eb6-5525-4383-9375-67e0bd762dbe",
    "name": "Mobile login screen",
    "fidelity": "ui",
    "prompt": "Generate a simple mobile login screen with email and password fields and a sign in button",
    "createdAt": "2026-04-30T15:02:37.444139+00:00"
  }
]
```

`name` הוא שם המסך המוקצה למשתמש, או `null` אם ללא שם.

***

### `get-screen`

קבל את קוד JSX למסך המאפשר לך לערוך או להשתמש בקוד מחוץ ל-Flowstep. השתמש ב-`get-screen-image` לתצוגה מקדימה ויזואלית במקום.

**קלט**

| פרמטר      | סוג    | תיאור                                                                                   |
| ---------- | ------ | --------------------------------------------------------------------------------------- |
| `fileId`   | `uuid` | File ID                                                                                 |
| `screenId` | `uuid` | ה-`screenId` המוחזר על ידי `list-screens` או מהמערך `screenIds` המוחזר על ידי כלי עיצוב |

**פלט** — המסך כקוד (JSX). שימו לב לתגובת השורה הראשונה שהיא חובה בעת שימוש בכלי `add-screen`.

```json theme={"system"}
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" screenId: "c13d3707-0efe-49f5-b6cb-0ca5ac5223d0" -->
<div className="bg-white text-zinc-950 w-full h-fit">
  <div className="flex p-6 flex-col gap-6">
    <div className="flex pt-4 justify-between items-center">
      <ArrowLeft className="size-5 text-[#71717b]" />
      <span className="font-semibold text-zinc-950 text-lg leading-7">
        World Clock
      </span>
      <Plus className="size-5 text-[#2b7fff]" />
    </div>
    <div className="rounded-xl bg-zinc-100 flex p-2 items-center gap-2">
      <Search className="size-4 text-[#71717b] ml-2" />
      <span className="text-[#71717b] text-sm leading-5">Search cities...</span>
    </div>
...
    <div className="flex pt-2 pb-4 justify-center items-center gap-4">
      <Button variant="outline" className="rounded-full px-6 gap-2">
        <Clock className="size-4" />
        <span>Compare</span>
      </Button>
      <Button className="rounded-full bg-[#2b7fff] text-blue-50 px-6 gap-2">
        <Bell className="size-4" />
        <span>Set Alert</span>
      </Button>
    </div>
  </div>
</div>;

```

***

### `add-screen`

הוסף מסך חדש לקובץ Flowstep מ-JSX string raw.

**קלט**

| פרמטר        | סוג      | תיאור                                         |
| ------------ | -------- | --------------------------------------------- |
| `fileId`     | `uuid`   | File ID                                       |
| `jsxContent` | `string` | JSX להוספה לקובץ כמסך                         |
| `screenType` | `string` | נדרש אם סוג המסך לא מוגדר כתגובה בתחילת ה-JSX |

**הערה** - תגובה דומה לזו למטה חייבת להיות קיימת בשורה הראשונה של JSX כיוון שהיא משמשת להוספת המסך בצורה נכונה. `screenType`, `name`, ו-`screenId` הם כולם אופציוניים — `screenId` משמש (פנימית) אם קיים (לדוגמה, בעת העברת JSX מהעתקה מפלט `get-screen`) אך אינו חובה. שם המסך נלקח מהשדה `name` של התגובה (מוצג כ-"Copy of \<name>"), או "Untitled" אם היה חסר.

`<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "Change to a light theme" colorTheme: "blue" -->`

**פלט** — ה-ID של המסך שהוסף חדש.

```json theme={"system"}
{ "screenId": "3f9e6eb6-5525-4383-9375-67e0bd762dbf" }
```

***

### `get-screen-image`

עיבוד מסך ל-PNG והחזרה כתמונה בשורה. דורש לקוח התומך בקטעי תוכן תמונה.

**קלט**

| פרמטר      | סוג    | תיאור                                                                                   |
| ---------- | ------ | --------------------------------------------------------------------------------------- |
| `fileId`   | `uuid` | File ID                                                                                 |
| `screenId` | `uuid` | ה-`screenId` המוחזר על ידי `list-screens` או מהמערך `screenIds` המוחזר על ידי כלי עיצוב |

**פלט** — MCP image content block (`image/png`).

***

## כלי AI

<Warning>
  `regenerate-design`, `expand-design`, ו-`edit-design` דורשות הקשר עיצוב הקיים רק במסכים שנוצרו במקור עם מערך `designs`. מסכים שנוצרו ללא הקשר עיצוב יחזירו שגיאה. Workaround: השתמש ב-`upload-attachment` כדי לעיבוד המסך כתמונה, ואז קרא ל-`create-new-design` עם התמונה ב-`attachments` והודעה המתארת את השינויים הרצויים.
</Warning>

### `create-new-design`

ייצור עיצוב מסך אחד או יותר מפרומפט טקסט. השמט `fileId` כדי ליצור קובץ חדש באופן אוטומטי. חוסם עד שהדור מסתיים או הזמן אזל (180 שניות).

**קלט**

| פרמטר         | סוג                               | ברירת מחדל | תיאור                                                                                                                        |
| ------------- | --------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `fileId`      | `uuid`                            | —          | קובץ יעד — השמט כדי ליצור קובץ חדש באופן אוטומטי                                                                             |
| `message`     | `string`                          | —          | פרומפט המתאר את המסכים שיש לייצר                                                                                             |
| `attachments` | `AttachmentRequestData[]` (max 5) | `[]`       | הוספות שעברו טעינה מראש — תמונות, PDFs, או קבצי קוד. תמיד העלה דרך `upload-attachment` קודם; אל תכלול תוכן קובץ בשורה בהודעה |
| `designs`     | `DesignRequestData[]`             | `[]`       | הפניות עיצוב                                                                                                                 |

**פלט** — `{ fileId, screenIds }`. העבר כל `screenId` ל-`get-screen-image` כדי לצפות בתוצאות.

```json theme={"system"}
{
  "fileId": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
  "screenIds": ["3f9e6eb6-5525-4383-9375-67e0bd762dbe"]
}
```

***

### `regenerate-design`

עשה מחדש מסכים קיימים מאפס או עם וריאציה סגנון. דורש לפחות `screenId` אחד ב-`targets`. חוסם עד שהדור מסתיים או הזמן אזל (180 שניות).

**קלט**

| פרמטר              | סוג                                                         | ברירת מחדל | תיאור                                 |
| ------------------ | ----------------------------------------------------------- | ---------- | ------------------------------------- |
| `fileId`           | `uuid`                                                      | —          | קובץ יעד                              |
| `message`          | `string`                                                    | —          | טקסט פרומפט                           |
| `targets`          | `uuid[]` (min 1)                                            | —          | screenIds של מסכים לרגנרציה           |
| `operationVariant` | `"different_layout" \| "different_style" \| "from_scratch"` | —          | וריאציה סגנון אופציונלית              |
| `designs`          | `DesignRequestData[]`                                       | `[]`       | הפניות עיצוב (מתורגמות באופן אוטומטי) |

**פלט** — `{ fileId, screenIds }`. העבר כל `screenId` ל-`get-screen-image` כדי לצפות בתוצאות.

***

### `expand-design`

הוסף מסכים הבאים לעיצוב קיים. דורש לפחות `screenId` אחד ב-`targets` ו-`operationVariant` חובה. חוסם עד שהדור מסתיים או הזמן אזל (180 שניות).

**קלט**

| פרמטר              | סוג                                                                                                                                                            | ברירת מחדל | תיאור                                 |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------- |
| `fileId`           | `uuid`                                                                                                                                                         | —          | קובץ יעד                              |
| `message`          | `string`                                                                                                                                                       | —          | טקסט פרומפט                           |
| `targets`          | `uuid[]` (min 1)                                                                                                                                               | —          | screenIds של מסכים להרחבה מ           |
| `operationVariant` | `"next_screen" \| "error_state" \| "empty_state" \| "web_version" \| "mobile_version" \| "tablet_version" \| "mobile_ios_version" \| "mobile_android_version"` | —          | **חובה** — סוג מסך הבא ליצירה         |
| `designs`          | `DesignRequestData[]`                                                                                                                                          | `[]`       | הפניות עיצוב (מתורגמות באופן אוטומטי) |

**פלט** — `{ fileId, screenIds }`. העבר כל `screenId` ל-`get-screen-image` כדי לצפות בתוצאות.

***

### `edit-design`

שנה מסכים קיימים דרך פרומפט. דורש לפחות `screenId` אחד ב-`targets`. חוסם עד שהדור מסתיים או הזמן אזל (180 שניות).

**קלט**

| פרמטר              | סוג                                              | ברירת מחדל | תיאור                                                           |
| ------------------ | ------------------------------------------------ | ---------- | --------------------------------------------------------------- |
| `fileId`           | `uuid`                                           | —          | קובץ יעד                                                        |
| `message`          | `string`                                         | —          | הוראות המתארות את העריכות ליישום                                |
| `targets`          | `uuid[]` (min 1)                                 | —          | screenIds של מסכים לעריכה                                       |
| `operationVariant` | `"dark_theme" \| "light_theme" \| "make_pretty"` | —          | קיצור סגנון אופציונלי                                           |
| `attachments`      | `AttachmentRequestData[]` (max 5)                | `[]`       | הוספות שעברו טעינה מראש. תמיד העלה דרך `upload-attachment` קודם |
| `designs`          | `DesignRequestData[]`                            | `[]`       | הפניות עיצוב (מתורגמות באופן אוטומטי)                           |

**פלט** — `{ fileId, screenIds }`. העבר כל `screenId` ל-`get-screen-image` כדי לצפות בתוצאות.

***

### `upload-attachment`

העלה קובץ לשימוש כהוספה ב-`create-new-design` או `edit-design`. מחזיר `{ id, path, type, mimeType }` — העבר את האובייקט הזה ישירות למערך `attachments`.

שני מצבים:

**מצב 1 — מסך לפי ID**

העבר `screenId` ו-`fileId`. השרת מביא את מצב המסך מהנתונים ומעיבד אותו כתמונה.

| פרמטר      | סוג    | תיאור                     |
| ---------- | ------ | ------------------------- |
| `fileId`   | `uuid` | קובץ המכיל את המסך (חובה) |
| `screenId` | `uuid` | מסך להעיבוד               |

**מצב 2 — קובץ חיצוני**

העבר תוכן קובץ ישירות. קבצים בינאריים חייבים להיות base64-encoded; קבצי טקסט (כולל קוד המקור) מועברים כמחרוזות UTF-8 רגילות.

| פרמטר      | סוג                                                                                                     | תיאור                                                                      |
| ---------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| `fileData` | `string`                                                                                                | תוכן הקובץ — base64 לקבצים בינאריים, UTF-8 string לטקסט                    |
| `fileName` | `string`                                                                                                | שם קובץ מקורי                                                              |
| `mimeType` | `"image/jpeg" \| "image/png" \| "image/webp" \| "application/pdf" \| "text/plain" \| "text/javascript"` | סוג MIME. השתמש ב-`text/javascript` עבור קבצי `.jsx`, `.tsx`, `.js`, `.ts` |

גודל קובץ מקסימלי: **3 MB**. לתמונות גדולות, העדף `image/jpeg` על `image/png`.

**פלט**

```json theme={"system"}
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "path": "attachments/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "image",
  "mimeType": "image/jpeg"
}
```

`type` הוא `"image"` להוספות תמונה/PDF ו-`"document"` לקבצי טקסט/קוד.

***

## כלי צ'אט

### `get-chat-history`

קבל את היסטוריית הודעות הצ'אט לקובץ.

**קלט**

| פרמטר    | סוג    | תיאור   |
| -------- | ------ | ------- |
| `fileId` | `uuid` | File ID |

**פלט** — אובייקט JSON עם מערך `messages`. לכל הודעה יש `type` (`"request"` או `"response"`), `author` (`"human"` או `"ai"`), ו-`content_type` (`"text"`, `"summary"`, או `"followup"`).

```json theme={"system"}
{
  "messages": [
    {
      "id": "453f593d-2380-425b-ba29-127db08d6a8e",
      "chat_id": "146d0f19-497e-450c-ba53-3de15f6bd70b",
      "type": "request",
      "status": "success",
      "content": "Generate a simple mobile login screen with email and password fields",
      "author": "human",
      "content_type": "text",
      "sequence": 1,
      "request_message_id": null,
      "targets": [],
      "attachments": []
    },
    {
      "id": "d860186b-82d5-4bd1-8e8e-8ba5377a14bf",
      "chat_id": "146d0f19-497e-450c-ba53-3de15f6bd70b",
      "type": "response",
      "status": "success",
      "content": "Generated a mobile login screen with email and password input fields, sign in button, remember me checkbox, forgot password link, social login options (Apple/Google), and sign up link.",
      "author": "ai",
      "content_type": "summary",
      "sequence": 7,
      "request_message_id": "453f593d-2380-425b-ba29-127db08d6a8e",
      "targets": [{ "target_id": "3f9e6eb6-5525-4383-9375-67e0bd762dbe" }],
      "attachments": []
    }
  ]
}
```

***

## כלי עיצוב

### `get-design-guidelines`

קבל את הנחיות העיצוב המאוחסנות לקובץ.

**קלט**

| פרמטר        | סוג      | ברירת מחדל | תיאור    |
| ------------ | -------- | ---------- | -------- |
| `resourceId` | `uuid`   | —          | File ID  |
| `linkedTo`   | `"file"` | `"file"`   | סוג משאב |

**פלט**

```json theme={"system"}
{
  "guidelines": "## Colors\n\nPrimary: #6366F1\nBackground: #FFFFFF\n\n## Typography\n\nFont: Inter",
  "linkedTo": "file"
}
```

`guidelines` הוא `null` אם לא הוגדרו הנחיות.

***

### `update-design-guidelines`

הגדר או החלף את הנחיות העיצוב של קובץ. הנחיות מועברות כמחרוזת טקסט רגילה בפורמט `design.md` של Google — אל תעביר אובייקט או JSON.

השרת מבצע validation רך ועשוי להחזיר קטע `Warnings:` בתגובה המפרטת בעיות (מפתחות לא ידועים, צבעים לא-hex) שתמכו אך עלולים להיות התעלמו על ידי ה-AI. הצג אלה למשתמש.

**קלט**

| פרמטר              | סוג              | ברירת מחדל | תיאור                                                                 |
| ------------------ | ---------------- | ---------- | --------------------------------------------------------------------- |
| `resourceId`       | `uuid`           | —          | File ID                                                               |
| `designGuidelines` | `string` (min 1) | —          | תוכן טקסט גולמי של ההנחיות. חייב להיות מחרוזת רגילה — לא JSON-encoded |
| `linkedTo`         | `"file"`         | `"file"`   | סוג משאב                                                              |

**כללי Validation**

* Frontmatter חייב להיות נפתח וסגור בצורה נכונה
* שורות Frontmatter חייבות להיות YAML תקף בסגנון block
* גוף Markdown חייב שלא יכיל כותרות `##` משוכפלות

**פלט** — `"Design guidelines updated successfully"`, כשלעצמו ואחריו קטע `Warnings:` אופציונלי.

***

### `delete-design-guidelines`

נקה את הנחיות העיצוב של קובץ.

**קלט**

| פרמטר        | סוג      | ברירת מחדל | תיאור    |
| ------------ | -------- | ---------- | -------- |
| `resourceId` | `uuid`   | —          | File ID  |
| `linkedTo`   | `"file"` | `"file"`   | סוג משאב |

**פלט** — `"Design guidelines deleted successfully"`

***

## כלי Figma

### `import-figma`

יבא frame של Figma לתוך קובץ Flowstep כאלמנטים שניתן לעריכה בcanvas שלו. ייבוא חוזר של אותו frame מעדכן אותו במקום. הארגון של הקובץ חייב שיהיה מחובר ל-Figma בהגדרות Flowstep.

**קלט**

| פרמטר      | סוג      | תיאור                                                                                                                                                                                   |
| ---------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `figmaUrl` | `string` | קישור לframe ספציפי של Figma. ב-Figma, לחץ בעכבר ימין על ה-frame ובחר **Copy link to selection**. קישור לעמוד מייבא את כל ה-frames ברמה העליונה באותו עמוד (מוגבל ל-20 frames דרך MCP). |
| `fileId`   | `uuid`   | קובץ Flowstep לייבוא ה-frame פנימה                                                                                                                                                      |

**פלט** — `{ fileId, screenId }`. `screenId` הוא ה-id של אלמנט המסך המיובא — העבר אותו ל-`get-screen-image` כדי לצפות בתוצאה. כאשר URL עמוד מייבא frames מרובים, `screenId` הוא `null` ו-`frameCount` מוחזר במקום.

```json theme={"system"}
{
  "fileId": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
  "screenId": "3f9e6eb6-5525-4383-9375-67e0bd762dbe"
}
```

***

## כלי חיוב

### `get-plan-details`

קבל את התוכנית הנוכחית של המשתמש, מצב המנוי, ויתרת הקוטה. אינו דורש קלט.

**פלט**

```json theme={"system"}
{
  "plan": {
    "name": "Starter",
    "code": "starter",
    "type": "paid"
  },
  "subscription": {
    "isPaid": true,
    "isTrial": false,
    "startDate": "2025-01-01T00:00:00Z",
    "endDate": null,
    "trialDaysRemaining": null
  },
  "limits": {
    "messages": {
      "daily": { "max": 50, "warn": 40 },
      "monthly": { "max": 500, "warn": 400 },
      "unlimited": false
    }
  },
  "usage": {
    "messages": { "daily": 12, "monthly": 87 }
  },
  "remaining": {
    "messages": { "daily": 38, "monthly": 413 }
  }
}
```

הגבלות משתנות לפי תוכנית. קרא את הכלי כדי לבדוק את הקוטה הזמינה לפני קבוצה של דורים.
