الانتقال إلى المحتوى الرئيسي
جميع الأدوات ترجع مصفوفة content من كتل محتوى MCP. تُرجع أدوات النصوص { type: "text", text: "<json-string>" }. تُرجع أدوات الصور { type: "image", data: "<base64>", mimeType: "image/png" }. في حالة الفشل، يتم تعيين isError: true وتحتوي كتلة النص على رسالة الخطأ.

أدوات الملف

list-files

اسرد ملفات Flowstep للمستخدم الحالي. الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
orderByCreationbooleantrueترتيب حسب تاريخ الإنشاء
limitinteger (1–100)20عدد الملفات المراد إرجاعها
offsetinteger (≥0)0إزاحة الترقيم
الإخراج — مصفوفة JSON من كائنات الملف.
[
  {
    "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

احصل على ملف واحد من خلال معرّف. تم حذف محتوى الملف بقصد — استخدم get-screen أو get-screen-image لفحص الشاشات، وget-design-guidelines لاسترجاع الإرشادات المرفقة. الإدخال
البارامترالنوعالوصف
iduuidمعرّف الملف
الإخراج — كائن JSON للملف.
{
  "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 جديد. الإدخال
البارامترالنوعالوصف
titlestring (min 1)اسم الملف
الإخراج — كائن JSON للملف مع id الملف الجديد.
{
  "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

أعد تسمية الملف. الإدخال
البارامترالنوعالوصف
iduuidمعرّف الملف
namestring (min 1)الاسم الجديد
الإخراج — كائن الملف المحدّث بنفس الشكل كـ get-file.
{
  "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 الذي تمرره مقابل اسم الملف الفعلي قبل الحذف — إذا لم تطابق، يتم إيقاف الحذف. يمنع هذا الحذف العرضي للملف الخطأ. الإدخال
البارامترالنوعالوصف
iduuidمعرّف الملف
namestringالاسم الحالي للملف — يجب أن يطابق بدقة وإلا سيتم إيقاف الحذف
الإخراج"File deleted successfully"
هذا لا يمكن التراجع عنه. سيتم حذف جميع الشاشات في الملف.

أدوات الشاشة

list-screens

اسرد جميع الشاشات المُنشأة لملف. استخدم قيم screenId المُرجعة للإشارة إلى الشاشات في get-screen وget-screen-image وupload-attachment، وكـ targets في edit-design أو regenerate-design أو expand-design. الإدخال
البارامترالنوعالوصف
fileIduuidمعرّف الملف
الإخراج — مصفوفة JSON من ملخصات الشاشة.
[
  {
    "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 للحصول على معاينة بصرية بدلاً من ذلك. الإدخال
البارامترالنوعالوصف
fileIduuidمعرّف الملف
screenIduuidscreenId المُرجعة من list-screens أو من مصفوفة screenIds المُرجعة من أداة التصميم
الإخراج — الشاشة كرمز (JSX). لاحظ تعليق السطر الأول المطلوب عند استخدام أداة add-screen.
<!-- 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 نصية. الإدخال
البارامترالنوعالوصف
fileIduuidمعرّف الملف
jsxContentstringJSX لإضافتها إلى الملف كشاشة
screenTypestringمطلوب إذا لم يتم تحديد نوع الشاشة كتعليق في بداية 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" --> الإخراج — معرّف الشاشة المضافة حديثاً.
{ "screenId": "3f9e6eb6-5525-4383-9375-67e0bd762dbf" }

get-screen-image

قم بتصيير الشاشة إلى PNG وأرجعها كصورة مضمنة. يتطلب عميلاً يدعم كتل محتوى الصور. الإدخال
البارامترالنوعالوصف
fileIduuidمعرّف الملف
screenIduuidscreenId المُرجعة من list-screens أو من مصفوفة screenIds المُرجعة من أداة التصميم
الإخراج — كتلة محتوى صورة MCP (image/png).

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

تتطلب regenerate-design وexpand-design وedit-design سياق تصميم موجود فقط على الشاشات المُنشأة أصلاً بمصفوفة designs. ستُرجع الشاشات المُنشأة بدون سياق تصميم خطأ. الحل البديل: استخدم upload-attachment لتصيير الشاشة كصورة، ثم اتصل بـ create-new-design بالصورة في attachments ورسالة تصف التغييرات المطلوبة.

create-new-design

أنشئ تصاميم شاشة واحدة أو أكثر من موجّه نصي. حذف fileId لإنشاء ملف جديد تلقائياً. يحجز حتى اكتمال الإنشاء أو انتهاء المهلة الزمنية (180 ثانية). الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
fileIduuidالملف المستهدف — حذف لإنشاء ملف جديد تلقائياً
messagestringموجّه يصف الشاشات المراد إنشاؤها
attachmentsAttachmentRequestData[] (max 5)[]المرفقات المحملة مسبقاً — صور أو ملفات PDF أو ملفات أكواد. احمِل دائماً عبر upload-attachment أولاً؛ لا تضمّن محتويات الملف في الرسالة
designsDesignRequestData[][]مراجع التصميم
الإخراج{ fileId, screenIds }. مرر كل screenId إلى get-screen-image لعرض النتائج.
{
  "fileId": "5c2170f0-5b09-4a5a-ba7a-4d5c2cfb07e0",
  "screenIds": ["3f9e6eb6-5525-4383-9375-67e0bd762dbe"]
}

regenerate-design

أعِد إنشاء الشاشات الموجودة من الصفر أو بتباين نمط. يتطلب واحدة على الأقل screenId في targets. يحجز حتى اكتمال الإنشاء أو انتهاء المهلة الزمنية (180 ثانية). الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
fileIduuidالملف المستهدف
messagestringنص الموجّه
targetsuuid[] (min 1)معرفات الشاشات المراد إعادة إنشاؤها
operationVariant"different_layout" | "different_style" | "from_scratch"تباين النمط الاختياري
designsDesignRequestData[][]مراجع التصميم (تُحل تلقائياً)
الإخراج{ fileId, screenIds }. مرر كل screenId إلى get-screen-image لعرض النتائج.

expand-design

أضف شاشات متابعة إلى تصميم موجود. يتطلب واحدة على الأقل screenId في targets وoperationVariant إلزامي. يحجز حتى اكتمال الإنشاء أو انتهاء المهلة الزمنية (180 ثانية). الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
fileIduuidالملف المستهدف
messagestringنص الموجّه
targetsuuid[] (min 1)معرفات الشاشات المراد التوسع منها
operationVariant"next_screen" | "error_state" | "empty_state" | "web_version" | "mobile_version" | "tablet_version" | "mobile_ios_version" | "mobile_android_version"مطلوب — نوع الشاشة التالية المراد إنشاؤها
designsDesignRequestData[][]مراجع التصميم (تُحل تلقائياً)
الإخراج{ fileId, screenIds }. مرر كل screenId إلى get-screen-image لعرض النتائج.

edit-design

عدّل الشاشات الموجودة عبر موجّه. يتطلب واحدة على الأقل screenId في targets. يحجز حتى اكتمال الإنشاء أو انتهاء المهلة الزمنية (180 ثانية). الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
fileIduuidالملف المستهدف
messagestringتعليمات تصف التحريرات المراد تطبيقها
targetsuuid[] (min 1)معرفات الشاشات المراد تحريرها
operationVariant"dark_theme" | "light_theme" | "make_pretty"اختصار النمط الاختياري
attachmentsAttachmentRequestData[] (max 5)[]المرفقات المحملة مسبقاً. احمِل دائماً عبر upload-attachment أولاً
designsDesignRequestData[][]مراجع التصميم (تُحل تلقائياً)
الإخراج{ fileId, screenIds }. مرر كل screenId إلى get-screen-image لعرض النتائج.

upload-attachment

احمِل ملف لاستخدامه كمرفق في create-new-design أو edit-design. يُرجع { id, path, type, mimeType } — مرر هذا الكائن مباشرة إلى مصفوفة attachments. نمطان: الوضع 1 — الشاشة حسب المعرّف مرر screenId وfileId. يجلب الخادم حالة الشاشة من قاعدة البيانات ويصيّرها كصورة.
البارامترالنوعالوصف
fileIduuidالملف الذي يحتوي على الشاشة (مطلوب)
screenIduuidالشاشة المراد تصييرها
الوضع 2 — ملف خارجي مرر محتوى الملف مباشرة. يجب ترميز الملفات الثنائية بـ base64؛ تُمرر ملفات النص (بما في ذلك كود المصدر) كسلاسل UTF-8 عادية.
البارامترالنوعالوصف
fileDatastringمحتوى الملف — base64 للملفات الثنائية، سلسلة UTF-8 للنصوص
fileNamestringاسم الملف الأصلي
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. الإخراج
{
  "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

احصل على سجل رسائل الدردشة لملف. الإدخال
البارامترالنوعالوصف
fileIduuidمعرّف الملف
الإخراج — كائن JSON بمصفوفة messages. لكل رسالة type ("request" أو "response")، وauthor ("human" أو "ai")، وcontent_type ("text" أو "summary" أو "followup").
{
  "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

احصل على إرشادات التصميم المخزنة لملف. الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
resourceIduuidمعرّف الملف
linkedTo"file""file"نوع المورد
الإخراج
{
  "guidelines": "## Colors\n\nPrimary: #6366F1\nBackground: #FFFFFF\n\n## Typography\n\nFont: Inter",
  "linkedTo": "file"
}
guidelines هو null إذا لم يتم تعيين أي إرشادات.

update-design-guidelines

عيّن أو استبدل إرشادات التصميم لملف. تُمرر الإرشادات كسلسلة نصية عادية بتنسيق design.md من Google — لا تمرر كائناً أو JSON. يقوم الخادم بالتحقق الناعم وقد يرجع قسم Warnings: في الاستجابة يسرد المشاكل (المفاتيح غير المعروفة والألوان غير السادسة عشرية) التي تم قبولها ولكن قد يتم تجاهلها بواسطة الذكاء الاصطناعي. اعرض هذه للمستخدم. الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
resourceIduuidمعرّف الملف
designGuidelinesstring (min 1)محتوى النص الخام للإرشادات. يجب أن تكون سلسلة عادية — ليست مشفرة بصيغة JSON
linkedTo"file""file"نوع المورد
قواعد التحقق
  • يجب فتح وإغلاق الواجهة الأمامية بشكل صحيح
  • يجب أن تكون سطور الواجهة الأمامية بصيغة YAML صحيحة بأسلوب الكتلة
  • يجب ألا يحتوي نص Markdown على عناوين قسم ## مكررة
الإخراج"Design guidelines updated successfully"، متبوعاً بقسم Warnings: اختياري.

delete-design-guidelines

امسح إرشادات التصميم لملف. الإدخال
البارامترالنوعالقيمة الافتراضيةالوصف
resourceIduuidمعرّف الملف
linkedTo"file""file"نوع المورد
الإخراج"Design guidelines deleted successfully"

أدوات الفوترة

get-plan-details

احصل على خطة المستخدم الحالي وحالة الاشتراك والحصة المتبقية. لا تأخذ إدخال. الإخراج
{
  "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 }
  }
}
تختلف الحدود حسب الخطة. اتصل بهذه الأداة قبل مجموعة من الإنشاءات للتحقق من الحصة المتاحة.