> ## 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

> مخطط الإدخال والمخرجات والأمثلة لجميع أدوات Flowstep MCP البالغ عددها 20 أداة.

تعيد جميع الأدوات صفيف `content` من كتل محتوى MCP. تعيد أدوات النصوص `{ 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`       | إزاحة الترقيم              |

**المخرجات** — صفيف JSON من كائنات الملفات.

```json theme={"system"}
[
  {
    "id": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
    "name": "إعادة تصميم لوحة المعلومات",
    "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`

احصل على ملف واحد حسب المعرّف. يتم حذف محتوى الملف عن قصد — استخدم `get-screen` أو `get-screen-image` لفحص الشاشات، و `get-design-guidelines` لاسترجاع الإرشادات المرفقة.

**الإدخال**

| المعامل | النوع  | الوصف       |
| ------- | ------ | ----------- |
| `id`    | `uuid` | معرّف الملف |

**المخرجات** — كائن ملف JSON.

```json theme={"system"}
{
  "file": {
    "id": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
    "name": "إعادة تصميم لوحة المعلومات",
    "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": "إعادة تصميم لوحة المعلومات",
  "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`           | معرّف الملف  |
| `name`  | `string` (min 1) | الاسم الجديد |

**المخرجات** — كائن الملف المحدث بنفس شكل `get-file`.

```json theme={"system"}
{
  "file": {
    "id": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
    "name": "إعادة تصميم لوحة المعلومات (الإصدار 2)",
    "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`

حذف ملف بشكل دائم. يتم التحقق من الاسم الذي تمرره مقابل اسم الملف الفعلي قبل الحذف — إذا لم يطابق، يتم إيقاف الحذف. هذا يمنع الحذف العرضي للملف الخاطئ.

**الإدخال**

| المعامل | النوع    | الوصف                                                       |
| ------- | -------- | ----------------------------------------------------------- |
| `id`    | `uuid`   | معرّف الملف                                                 |
| `name`  | `string` | الاسم الحالي للملف — يجب أن يطابق تماماً أو يتم إيقاف الحذف |

**المخرجات** — `"تم حذف الملف بنجاح"`

<Warning>
  هذا لا رجعة فيه. يتم حذف جميع الشاشات في الملف.
</Warning>

***

## أدوات الشاشة

### `list-screens`

قائمة جميع الشاشات المُنشأة لملف. استخدم قيم `screenId` المرجعة لعزل الشاشات في `get-screen` و `get-screen-image` و `upload-attachment` وكـ `targets` في `edit-design` و `regenerate-design` أو `expand-design`.

**الإدخال**

| المعامل  | النوع  | الوصف       |
| -------- | ------ | ----------- |
| `fileId` | `uuid` | معرّف الملف |

**المخرجات** — صفيف JSON من ملخصات الشاشات.

```json theme={"system"}
[
  {
    "screenId": "3f9e6eb6-5525-4383-9375-67e0bd762dbe",
    "name": "شاشة تسجيل الدخول الجوال",
    "fidelity": "ui",
    "prompt": "أنشئ شاشة تسجيل دخول جوال بسيطة مع حقول البريد الإلكتروني وكلمة المرور وزر تسجيل الدخول",
    "createdAt": "2026-04-30T15:02:37.444139+00:00"
  }
]
```

`name` هو اسم الشاشة المخصص من قِبل المستخدم، أو `null` إذا لم يتم تسميتها.

***

### `get-screen`

احصل على رمز JSX لشاشة تسمح لك بتحرير أو استخدام الكود خارج Flowstep. استخدم `get-screen-image` لمعاينة بصرية بدلاً من ذلك.

**الإدخال**

| المعامل    | النوع  | الوصف                                                                                             |
| ---------- | ------ | ------------------------------------------------------------------------------------------------- |
| `fileId`   | `uuid` | معرّف الملف                                                                                       |
| `screenId` | `uuid` | المعرّف `screenId` المُرجع بواسطة `list-screens` أو من صفيف `screenIds` المُرجع بواسطة أداة تصميم |

**المخرجات** — الشاشة كرمز (JSX). لاحظ تعليق السطر الأول المطلوب عند استخدام أداة `add-screen`.

```json theme={"system"}
<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "تغيير إلى موضوع فاتح" 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">
        عالم الساعات
      </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">البحث عن المدن...</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>مقارنة</span>
      </Button>
      <Button className="rounded-full bg-[#2b7fff] text-blue-50 px-6 gap-2">
        <Bell className="size-4" />
        <span>تعيين تنبيه</span>
      </Button>
    </div>
  </div>
</div>;
```

***

### `add-screen`

أضف شاشة جديدة إلى ملف Flowstep من سلسلة JSX الخام.

**الإدخال**

| المعامل      | النوع    | الوصف                                                 |
| ------------ | -------- | ----------------------------------------------------- |
| `fileId`     | `uuid`   | معرّف الملف                                           |
| `jsxContent` | `string` | JSX لإضافة إلى الملف كشاشة                            |
| `screenType` | `string` | مطلوب إذا لم يتم تحديد نوع الشاشة كتعليق في بداية JSX |

**ملاحظة** - يجب أن يكون تعليق مشابه لما يلي موجوداً كسطر أول من JSX لأنه يُستخدم لإضافة الشاشة بشكل صحيح. `screenType` و `name` و `screenId` كلها اختيارية — يُستخدم `screenId` (داخلياً) إذا كان موجوداً (على سبيل المثال عند تمرير JSX المنسوخ من مخرجات `get-screen`) لكنه ليس إلزامياً. يتم أخذ اسم الشاشة من حقل `name` في التعليق (معروض كـ "نسخة من \<name>")، أو "بدون عنوان" إذا كان غائباً.

`<!-- screenType: "iphone-x-vertical" width: "375" height: "812" name: "تغيير إلى موضوع فاتح" colorTheme: "blue" -->`

**المخرجات** — معرّف الشاشة المضافة حديثاً.

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

***

### `get-screen-image`

عرّض شاشة إلى PNG وأعدها كصورة مدمجة. يتطلب عميلاً يدعم كتل محتوى الصور.

**الإدخال**

| المعامل    | النوع  | الوصف                                                                                             |
| ---------- | ------ | ------------------------------------------------------------------------------------------------- |
| `fileId`   | `uuid` | معرّف الملف                                                                                       |
| `screenId` | `uuid` | المعرّف `screenId` المُرجع بواسطة `list-screens` أو من صفيف `screenIds` المُرجع بواسطة أداة تصميم |

**المخرجات** — كتلة محتوى صورة MCP (`image/png`).

***

## أدوات الذكاء الاصطناعي

<Warning>
  `regenerate-design` و `expand-design` و `edit-design` تتطلب سياق تصميم موجود فقط على الشاشات التي تم إنشاؤها أصلاً باستخدام صفيف `designs`. ستعيد الشاشات التي تم إنشاؤها بدون سياق تصميم خطأ. الحل: استخدم `upload-attachment` لعرض الشاشة كصورة، ثم استدع `create-new-design` بالصورة في `attachments` ورسالة تصف التغييرات المطلوبة.
</Warning>

### `create-new-design`

أنشئ تصاميم شاشة واحدة أو أكثر من موجه نصي. اترك `fileId` لإنشاء ملف جديد تلقائياً. ينتظر حتى ينتهي الإنشاء أو ينتهي (180 ثانية).

**الإدخال**

| المعامل       | النوع                             | الافتراضي | الوصف                                                                                                                                         |
| ------------- | --------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `fileId`      | `uuid`                            | —         | الملف الهدف — اترك لإنشاء ملف جديد تلقائياً                                                                                                   |
| `message`     | `string`                          | —         | موجه يصف الشاشات المراد إنشاؤها                                                                                                               |
| `attachments` | `AttachmentRequestData[]` (max 5) | `[]`      | المرفقات المُحمّلة مسبقاً — صور أو ملفات PDF أو ملفات رمز. قم دائماً بالتحميل عبر `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 — الشاشة حسب المعرّف**

مرّر `screenId` و `fileId`. يجلب الخادم حالة الشاشة من قاعدة البيانات ويعرضها كصورة.

| المعامل    | النوع  | الوصف                               |
| ---------- | ------ | ----------------------------------- |
| `fileId`   | `uuid` | الملف الذي يحتوي على الشاشة (مطلوب) |
| `screenId` | `uuid` | الشاشة المراد عرضها                 |

**النمط 2 — الملف الخارجي**

مرّر محتوى الملف مباشرة. يجب أن تكون الملفات الثنائية مشفرة بـ base64؛ تُمرر الملفات النصية (بما في ذلك رمز المصدر) كسلاسل UTF-8 عادية.

| المعامل    | النوع                                                                                                   | الوصف                                                                     |
| ---------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `fileData` | `string`                                                                                                | محتوى الملف — base64 للملفات الثنائية وسلسلة UTF-8 للنصوص                 |
| `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` | معرّف الملف |

**المخرجات** — كائن 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": "أنشئ شاشة تسجيل دخول جوال بسيطة مع حقول البريد الإلكتروني وكلمة المرور",
      "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": "تم إنشاء شاشة تسجيل دخول جوال مع حقول إدخال البريد الإلكتروني وكلمة المرور وزر تسجيل الدخول وخانة اختيار تذكرني ورابط كلمة مرور منسية وخيارات تسجيل اجتماعية (Apple/Google) ورابط التسجيل.",
      "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`   | —         | معرّف الملف |
| `linkedTo`   | `"file"` | `"file"`  | نوع المورد  |

**المخرجات**

```json theme={"system"}
{
  "guidelines": "## الألوان\n\nالأساسي: #6366F1\nالخلفية: #FFFFFF\n\n## الطباعة\n\nالخط: Inter",
  "linkedTo": "file"
}
```

`guidelines` هو `null` إذا لم تتم تعيين أي إرشادات.

***

### `update-design-guidelines`

عيّن أو استبدل إرشادات التصميم لملف. تُمرر الإرشادات كسلسلة نص عادية بصيغة `design.md` من Google — لا تمرر كائناً أو JSON.

يجري الخادم التحقق الناعم وقد يعيد قسم `Warnings:` في الاستجابة يسرد المشاكل (مفاتيح غير معروفة وألوان غير سادسة عشرية) التي تم قبولها لكن قد يتم تجاهلها من قِبل الذكاء الاصطناعي. أظهر هذه للمستخدم.

**الإدخال**

| المعامل            | النوع            | الافتراضي | الوصف                                                              |
| ------------------ | ---------------- | --------- | ------------------------------------------------------------------ |
| `resourceId`       | `uuid`           | —         | معرّف الملف                                                        |
| `designGuidelines` | `string` (min 1) | —         | محتوى نص خام للإرشادات. يجب أن تكون سلسلة عادية — ليس JSON-encoded |
| `linkedTo`         | `"file"`         | `"file"`  | نوع المورد                                                         |

**قواعد التحقق**

* يجب فتح وإغلاق الواجهة الأمامية بشكل صحيح
* يجب أن تكون أسطر الواجهة الأمامية عبارة عن YAML صحيح على شكل كتلة
* لا يجب أن يحتوي جسم Markdown على رؤوس `##` قسم مكررة

**المخرجات** — `"تم تحديث إرشادات التصميم بنجاح"`، اختياراً متبوعاً بقسم `Warnings:`.

***

### `delete-design-guidelines`

امسح إرشادات التصميم لملف.

**الإدخال**

| المعامل      | النوع    | الافتراضي | الوصف       |
| ------------ | -------- | --------- | ----------- |
| `resourceId` | `uuid`   | —         | معرّف الملف |
| `linkedTo`   | `"file"` | `"file"`  | نوع المورد  |

**المخرجات** — `"تم حذف إرشادات التصميم بنجاح"`

***

## أدوات Figma

### `import-figma`

استورد إطار Figma إلى ملف Flowstep كعناصر قابلة للتحرير على حافظته. يؤدي إعادة استيراد نفس الإطار إلى تحديثه في مكانه. يجب أن تكون مؤسسة الملف متصلة بـ Figma في إعدادات Flowstep.

**الإدخال**

| المعامل    | النوع    | الوصف                                                                                                                                                                                                                          |
| ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `figmaUrl` | `string` | رابط إطار Figma محدد. في Figma، انقر بزر الماوس الأيمن على الإطار واختر **Copy link to selection** (نسخ الرابط للاختيار). يستورد الرابط إلى صفحة جميع الإطارات ذات المستوى الأعلى على تلك الصفحة (مغطاة بـ 20 إطاراً عبر MCP). |
| `fileId`   | `uuid`   | ملف Flowstep للاستيراد إليه                                                                                                                                                                                                    |

**المخرجات** — `{ fileId, screenId }`. `screenId` هو معرّف عنصر الشاشة المستوردة — مرّره إلى `get-screen-image` لعرض النتيجة. عند استيراد URL صفحة إطارات متعددة، يكون `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": "البداية",
    "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 }
  }
}
```

تختلف الحدود حسب الخطة. استدع هذه الأداة قبل دفعة من الإنشاءات للتحقق من الحصة المتاحة.
