get-screen-image نتيجتها مرتين: كـ structuredContent (يُتحقق منه مقابل مخطط المخرجات المنشور للأداة)، وككائن نفسه مُسلسَل في كتلة نصية، { type: "text", text: "<json-string>" }، وذلك للعملاء التي لا تقرأ المحتوى المنظّم. أما get-screen-image فتُعيد كتلة صورة MCP فقط: { type: "image", data: "<base64>", mimeType: "image/png" }.
عند الفشل، تُضبط isError: true وتحتوي الكتلة النصية على رسالة خطأ قصيرة. تشرح الأخطاء التي يمكنك التصرف بناءً عليها، مثل عدم تطابق الاسم عند الحذف، أو رابط Figma غير صالح، أو إرشادات تصميم غير صالحة، أو مشكلة في مرفق، أو انتهاء مهلة التوليد، ما يجب إصلاحه. أما الإخفاقات الأخرى فتُعيد رسالة عامة مثل Failed to list files.
التسعير: تستخدم أدوات التصميم بالذكاء الاصطناعي الثلاث، وهي
ai-design-screens وai-generate-screen-variant وai-edit-screen-variant، حصة الرسائل نفسها التي يستخدمها تطبيق Flowstep. جميع الأدوات الأخرى مجانية. راجع حدود الاستخدام.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 فارغًا دون أي شاشات. لإنشاء ملف وتوليد شاشات في خطوة واحدة، استدعِ ai-design-screens دون fileId بدلًا من ذلك. استخدم create-file لسير العمل الذي يبدأ من الكود، متبوعًا بـ add-screen-jsx.
المدخلات
المخرجات —
{ file, user_access_level }، بالبنية نفسها الموجودة في get-file. قيمة owner دائمًا true، وقيمة user_access_level دائمًا write.
استخدم file.id المُعاد كقيمة fileId في استدعاءات الأدوات اللاحقة.
update-file
أعِد تسمية ملف.
المدخلات
المخرجات —
{ file, user_access_level }، بالبنية نفسها الموجودة في get-file.
delete-file
احذف ملفًا نهائيًا. يُفحص name الذي تمرره مقابل الاسم المعروض الحالي للملف قبل الحذف، فإذا لم يتطابق يُلغى الحذف. هذا يمنع حذف الملف الخطأ عن طريق الصدفة. يُوجَّه الوكلاء لتأكيد الأمر معك أولًا.
المدخلات
المخرجات —
{ "deleted": true }
أدوات الشاشات
list-screens
اعرض الشاشات في ملف، بحسب ترتيبها على اللوحة. استدعِ هذه الأداة بعد list-files لمعرفة ما يحتويه ملف. استخدم قيم screenId المُعادة مع أدوات الشاشات الأخرى وأدوات التصميم بالذكاء الاصطناعي.
المدخلات
المخرجات —
{ screens }.
prompt— آخر موجّه توليد للشاشة، أو نص فارغ إن لم تُولَّد قط (مثلًا شاشة أُضيفت باستخدامadd-screen-jsx).fidelity—lofiأوhifiأوui.
get-screen-image
صيّر شاشة إلى PNG وأعِدها كصورة مضمّنة. تتطلب هذه الأداة عميلًا يدعم كتل الصور. استدعِ الأداة مرة واحدة لكل screenId تُعيده أداة تصميم بالذكاء الاصطناعي، أو add-screen-jsx، أو replace-screen-jsx، أو import-figma.
المدخلات
المخرجات — كتلة محتوى صورة MCP (
image/png). قيمة data هي base64 قياسية لبايتات PNG، وليست URI للبيانات. لا يوجد 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 كتبته. هذا هو المسار الذي يبدأ من الكود، وهو مجاني. استخدم ai-design-screens عندما تريد أن يصمم الذكاء الاصطناعي في Flowstep الشاشة. تُنشئ add-screen-jsx دائمًا شاشة جديدة: لكتابة فوق شاشة موجودة، استخدم replace-screen-jsx.
لعرض صورة رفعتها، راجع الصور في JSX.
إذا كانت الشاشة الجديدة مبنية على شاشة موجودة، فابدأ من get-screen-jsx (دون includeIds) للحصول على name وfidelity وscreenType وcolorTheme وjsx، ثم غيّر ما يجب أن يختلف.
المدخلات
المخرجات —
{ fileId, screenId }. استدعِ get-screen-image مع screenId لعرض النتيجة.
replace-screen-jsx
اكتب فوق شاشة موجودة بـ JSX كتبته. تحتفظ الشاشة بـ screenId وموقعها على اللوحة، وتحصل العناصر المتداخلة على معرّفات جديدة. هذا هو المسار الذي يبدأ من الكود، وهو مجاني. استخدم ai-design-screens أو ai-edit-screen-variant للتغييرات بالذكاء الاصطناعي، واستخدم add-screen-jsx لإنشاء شاشة جديدة بدلًا من ذلك.
ابدأ من get-screen-jsx (دون includeIds)، ثم غيّر ما يجب أن يختلف. لعرض صورة رفعتها، راجع الصور في JSX.
المدخلات
المخرجات —
{ fileId, screenId }. استدعِ get-screen-image مع screenId لعرض النتيجة.
rename-screen
أعِد تسمية شاشة على اللوحة، أي الاسم الذي يظهر في list-screens وفي المحرر. يغيّر هذا التسمية فقط، ولا يغيّر تخطيط الشاشة أو حجمها أو محتواها، لذا استخدم ai-design-screens لذلك.
المدخلات
المخرجات —
{ screenId, name }.
delete-screen
احذف شاشة نهائيًا من ملف. يُفحص name الذي تمرره مقابل الاسم المعروض الحالي للشاشة، فإذا لم يتطابق يُلغى الحذف. يُوجَّه الوكلاء لتأكيد الأمر معك أولًا.
المدخلات
المخرجات —
{ "deleted": true }
الصور في JSX
يقبلadd-screen-jsx وreplace-screen-jsx صورًا في src لعنصر img، أو كخلفية في 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 مخزّن على ملف. عند ضبطها، تُدرج في كل توليد بالذكاء الاصطناعي لذلك الملف. راجع إرشادات التصميم.
get-design-guidelines
احصل على إرشادات التصميم المرفقة بملف.
المدخلات
المخرجات —
{ guidelines }.
guidelines هي null إذا لم تُضبط أي إرشادات.
update-design-guidelines
اضبط إرشادات التصميم لملف أو استبدلها. مرّر الإرشادات كنص عادي بصيغة DESIGN.md من Google، وليس ككائن أو JSON. إذا كنت تقرأ من ملف، فمرّر نص ذلك الملف.
المدخلات
قواعد التحقق
- يجب فتح الواجهة (frontmatter) وإغلاقها بشكل صحيح
- يجب أن تكون أسطر الواجهة بصيغة YAML كتلية (block-style) صالحة
- يجب ألا يحتوي النص الرئيسي بصيغة Markdown على عناوين
##مكررة
Invalid design guidelines:.
المخرجات — { updated, warnings? }.
warnings مشكلات التحقق غير الصارمة (مفاتيح غير معروفة، وألوان ليست بصيغة hex) التي قُبلت لكن قد يتجاهلها الذكاء الاصطناعي. تُحذف هذه القائمة عند عدم وجود مشكلات. اعرض هذه التحذيرات على المستخدم.
delete-design-guidelines
امسح إرشادات التصميم لملف. حذف إرشادات غير موجودة لا يُحدث أي أثر.
المدخلات
المخرجات —
{ "deleted": true }
أدوات المحادثة
get-chat-history
احصل على محادثة التصميم المرتبطة بملف، أي محادثة Flowstep الخاصة بالملف، وليس محادثة عميل MCP لديك. استخدمها لاستئناف العمل السابق على الملف.
المدخلات
المخرجات —
{ messages }. تكون messages فارغة إذا لم تكن لديك محادثة تصميم على الملف. لكل رسالة type (وهو "request" أو "response")، وauthor (وهو "human" أو "ai")، وcontent_type. تستخدم رسائل الاستجابة القيم "text" أو "summary" أو "followup".
أدوات المرفقات
upload-attachment
ارفع ملفًا مرجعيًا ليُستخدم كمرفق في ai-design-screens، أو صورة لوضعها في JSX الخاص بك باستخدام add-screen-jsx أو replace-screen-jsx. لا تقبل ai-generate-screen-variant وai-edit-screen-variant مرفقات. لا تمرّ بايتات الملفات عبر النموذج، ولا يجلب الخادم عناوين URL نيابةً عنك. للإشارة إلى صفحة ويب، ضمّن عنوانها URL في message الخاص بـ ai-design-screens بدلًا من ذلك.
توجد طريقتان، استخدم واحدة فقط ولا تجمع بينهما.
الوضع A: الملفات والصور (mimeType + fileName)
تدفق إلزامي من ثلاث خطوات لأي صورة أو ملف PDF أو ملف نصي كبير:
-
استدعِ
upload-attachmentبالمعاملينmimeTypeوfileNameفقط (مثلًاimage/pngوdog.png). الاستجابة هي رفع مُجهّز، وليست ملفًا مخزّنًا: -
استبدل
LOCAL_FILE_PATHفيuploadCommandبالمسار المطلق لملفك، ثم نفّذ الأمر تمامًا في الصدفة لديك، ويجب أن ينتهي بالرمز 0. يصرّح الرمز المميز فيsignedUrlبهذا الرفع الواحد فقط. تخطّي هذه الخطوة يترك التخزين فارغًا، فتفشل أداة التصميم في فحص التحقق المسبق (preflight). -
مرّر
{ id, path, type }فقط إلى مصفوفةattachmentsفيai-design-screens، لاsignedUrlأوuploadCommandأوnextStep. لوضع صورة في JSX الخاص بك بدلًا من ذلك، ضعassetUrlفيimg srcأوbg-[url(...)]في JSX الذي تمرره إلىadd-screen-jsxأوreplace-screen-jsx. راجع الصور في JSX.
curl)، ثم اتبع الخطوات الثلاث نفسها. لا تمرر عنوان URL إلى upload-attachment أبدًا.
الوضع B: نص قصير (
text + mimeType)
ارفع نصًا موجودًا بالفعل في السياق، دون الحاجة إلى أمر صدفة. الاستجابة جاهزة للاستخدام مباشرةً:
مرّر
{ id, path, type } الناتج إلى مصفوفة attachments في ai-design-screens.
أقصى حجم للملف هو 3 MB في الوضعين، ويقتصر ملف PDF على 100 صفحة.
المخرجات — { id, path, assetUrl, type, mimeType, signedUrl?, uploadCommand?, nextStep? }.
type—"image"للصور، و"document"لملفات PDF والملفات النصية.assetUrl— عنوان URL للملف المرفوع، ويُعاد في الوضعين. استخدمه في JSX معadd-screen-jsxأوreplace-screen-jsxفقط عندما تكون قيمةtypeهي"image"، وبعد تشغيلuploadCommandفي الوضع A.signedUrlوuploadCommandوnextStep— تُضبط في الوضع A فقط. لا تمررها إلى أدوات التصميم.
أدوات Figma
import-figma
استورد إطار Figma إلى ملف Flowstep كعناصر قابلة للتحرير على لوحته. كل استيراد يضيف شاشة جديدة، فاستيراد الإطار نفسه مرتين يعطيك شاشتين، لذا احذف القديمة باستخدام delete-screen إذا كنت تقصد استبدالها. يجب أن تكون مؤسسة الملف متصلة بـ Figma في إعدادات Flowstep.
المدخلات
المخرجات —
{ fileId, screenId, frameCount? }. screenId هو الشاشة المستوردة، مرّرها إلى get-screen-image لعرض النتيجة. عندما يستورد رابط الصفحة عدة إطارات، تكون قيمة screenId هي null ويُعاد frameCount بدلًا منها. استدعِ list-screens ثم get-screen-image لكل شاشة جديدة.
أدوات الخطة والفوترة
get-plan-details
احصل على خطة مؤسستك في Flowstep، وحالة اشتراكها، واستخدامها، والحصة المتبقية. لا تأخذ هذه الأداة أي مدخلات، إذ تُحدَّد المؤسسة من المستخدم المسجّل الدخول. استخدمها للتحقق من حصتك قبل استدعاء أدوات التصميم بالذكاء الاصطناعي.
المخرجات — { plan, subscription, limits, usage, remaining }.
تختلف الحدود حسب الخطة، راجع الأسعار وحدود الاستخدام.
أدوات التصميم بالذكاء الاصطناعي
تصمّم هذه الأدوات الثلاث من وصف أو إعداد جاهز، ولا تستقبل JSX ولا تعيد استخدامه أبدًا. يستهلك كل استدعاء من حصة الرسائل نفسها التي يستخدمها تطبيق Flowstep، وينتظر حتى يكتمل التوليد أو تنتهي مهلته (180 ثانية).
تُعيد الأدوات الثلاث
{ status, fileId, screenIds, designGuidelinesUpdated }. استدعِ get-screen-image مرة واحدة لكل screenId لعرض النتيجة.
designGuidelinesUpdated— ملخص قصير للتغيير عندما تُحدَّث إرشاداتDESIGN.mdللملف تلقائيًا خلال هذا الدور؛ وإلا فقيمتهnull.
ai-design-screens
وَلِّد شاشة أو أكثر جديدة، أو غيّر شاشات موجودة في مكانها، أو افعل الأمرين في استدعاء واحد، انطلاقًا من وصف نصي: تدفقات جديدة، وتطبيق السمات، والنصوص، والتخطيط، أو تغييرات منسقة عبر عدة شاشات. هذا هو وكيل التصميم نفسه الموجود في المحادثة داخل محرر Flowstep: يقرر من message وelementIds ما يجب بناؤه وما يجب تغييره.
احذف fileId لبدء ملف جديد، ومرّر fileId للعمل في ملف موجود. إذا كان الطلب قد ينطبق على ملف موجود لديك، فيجب على وكيلك التحقق من list-files وlist-screens أولًا. للخطوة التالية، أو حالة خطأ أو حالة فارغة، أو نسخة منصة لشاشة واحدة، استخدم ai-generate-screen-variant. لتعديل جاهز أو إعادة تصميم شاشة واحدة، استخدم ai-edit-screen-variant. إذا كان لديك JSX بالفعل، فاستخدم add-screen-jsx أو replace-screen-jsx بدلًا من ذلك.
المدخلات
مثال: عدّل شاشة واحدة وأضف أخرى في استدعاء واحد:
{ status, fileId, screenIds, designGuidelinesUpdated, reply? }.
status—"generated"عندما بُنيت شاشات أو تغيّرت. و"chat"عندما ردّت Flowstep دون بناء، وفي هذه الحالة يحتويreplyعلى إجابتها وتكونscreenIdsفارغة. إذا كان طلبك غامضًا، فيجب على وكيلك أن يطلب منك التوضيح ثم يستدعي الأداة مرة أخرى.screenIds— كل شاشة بُنيت أو تغيّرت أثناء الاستدعاء، بما في ذلك الشاشات المعدّلة في مكانها. إذا انتهت المهلة بعد بناء بعض الشاشات، فإنه يُعيد تلك الشاشات بدلًا من خطأ.
ai-generate-screen-variant
أضف شاشة جديدة مشتقة من شاشة موجودة واحدة بالضبط: الخطوة التالية في التدفق، أو حالة خطأ أو فارغة، أو نسخة لمنصة أخرى. تبقى الشاشة الأصلية دون تغيير. لإضافة شاشة ليست نسخة من شاشة موجودة (مثل شاشة الإعدادات)، استخدم ai-design-screens مع fileId.
المدخلات
المخرجات —
{ status, fileId, screenIds, designGuidelinesUpdated }. قيمة status دائمًا "generated".
ai-edit-screen-variant
غيّر شاشة موجودة واحدة بالضبط في مكانها باستخدام إعداد جاهز: طبّق عليها سمة أو حسّنها، أو جرّب تخطيطًا أو أسلوبًا بصريًا مختلفًا، أو أعد تصميمها من الصفر. للشاشات الجديدة، أو التعليمات الحرة، أو التعديل الدقيق لعناصر فردية، استخدم ai-design-screens.
المدخلات
المخرجات —
{ status, fileId, screenIds, designGuidelinesUpdated }. قيمة status دائمًا "generated".
الأدوات المُعاد تسميتها
تغيّرت أسماء الأدوات في سبتمبر وأكتوبر 2026. إذا كانت لديك موجّهات أو سكربتات أو تعليمات لوكيل تستخدم الأسماء القديمة، فحدّثها:
تغيّرت المدخلات أيضًا: تأخذ أدوات التصميم بالذكاء الاصطناعي
elementIds (أو screenId واحدًا لأدوات النسخ المتغيرة) بدلًا من targets، ويأخذ add-screen-jsx القيمة jsx وحقول بيانات وصفية صريحة بدلًا من jsxContent مع تعليق بيانات وصفية، ويأخذ create-file القيمة name بدلًا من title، وتأخذ أدوات إرشادات التصميم القيمة fileId بدلًا من resourceId وlinkedTo.