Weft
AR

خادم Kanban MCP لـ ChatGPT وClaude وCursor وCodex

بقلم Andrei Finogeev، مؤسس Weft ·

Weft لوحة كانبان مستضافة — Backlog وTodo وDoing وDone، مع سبرنتات اختيارية — وخادم MCP الخاص بها على https://letsweft.com/api/mcp. أضف هذا العنوان إلى عميل الذكاء الاصطناعي لديك وسجّل الدخول مرة واحدة عبر OAuth؛ لا شيء تثبّته أو تشغّله محليًا. ومن بعدها يقرأ المساعد اللوحة، وينشئ البطاقات وينقلها، ويحجز البطاقة قبل العمل عليها كي لا يأخذ وكيلان البطاقة نفسها أبدًا، ويبلّغ بالتقدّم، ويسألك حين يكون القرار لك، ويغلق البطاقة مع ما فعله. مجاني حتى 50 مهمة و200 استدعاء ذكاء اصطناعي شهريًا.

عنوان خادم MCP
https://letsweft.com/api/mcp

Streamable HTTP · OAuth، أو رمز وصول شخصي · 32 أداة

أضفه إلى عميل الذكاء الاصطناعي لديك

ChatGPT

افتح Weft في ChatGPT — أو اضبطه يدويًا:

  1. 1افتح Plugins في الشريط الجانبي لـ ChatGPT — أو Settings ← Plugins.
  2. 2ابحث عن «Weft» وافتح الإدراج.
  3. 3اضغط «Connect» وراجع ما يستطيع Weft الوصول إليه.
  4. 4سجّل الدخول بحسابك في Weft داخل النافذة المنبثقة.

أشِر إلى الإضافة بـ @ في أي محادثة: «@Weft ما الموجود على لوحتي؟» — أو اختر Weft من قائمة +. وإن تخطيت الإعداد، يعرض ChatGPT ربطها في مكانها.

Claude Desktop

  1. 1افتح Claude Desktop ← Settings ← Connectors.
  2. 2اضغط «Add custom connector».
  3. 3الصق رابط Weft MCP أدناه واحفظ.
  4. 4أتمّ OAuth في نافذة المتصفح التي تُفتح.

ابدأ محادثة جديدة واسأل: «ما الموجود على لوحتي في Weft؟» فيجلب Claude حالة لوحتك عبر موصّل Weft.

Claude Code

bash
claude mcp add --transport http weft https://letsweft.com/api/mcp

شغّل `claude` في أي مشروع، ثم اسأل: «ما الموجود على لوحتي؟» وتُفتح نافذة متصفح لإتمام OAuth في المرة الأولى.

Cursor

أضِف إلى Cursor — أو اضبطه يدويًا:

~/.cursor/mcp.json
{
  "mcpServers": {
    "weft": {
      "url": "https://letsweft.com/api/mcp"
    }
  }
}

افتح Cursor ← Settings ← MCP. يُفترض أن يظهر خادم «weft» بمؤشر أخضر بعد إتمامك OAuth.

Codex CLI

~/.codex/config.toml
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"

نفّذ `codex mcp login weft` وسجّل الدخول في المتصفح، ثم شغّل `codex` واسأل: «ما الموجود على لوحتي؟». يعرض `/mcp` الخادم المتصل وأدواته.

VS Code

ثبّت إضافة Weft — أو اضبطه يدويًا:

.vscode/mcp.json
{
  "servers": {
    "weft": {
      "type": "http",
      "url": "https://letsweft.com/api/mcp"
    }
  }
}

افتح المحادثة، اضبط الوضع على Agent واسأل: «ما الموجود على لوحي؟». في المرة الأولى تفتح نافذة متصفّح لإتمام OAuth. ويُفترض أن يظهر weft في «MCP: List Servers» بحالة Running.

Windsurf

  1. 1افتح Windsurf ← Settings ← Cascade ← MCP servers.
  2. 2اضغط «Add server» واختر Remote (HTTP).
  3. 3الصق رابط Weft MCP أدناه واحفظ.
  4. 4أتمّ OAuth في نافذة المتصفح التي تُفتح.

افتح Cascade واسأل: «ما الموجود على لوحتي؟» ويَسِم Cascade الردود التي استعملت خادم Weft.

Gemini CLI

bash
gemini extensions install https://github.com/AndreiFinogeev/weft-gemini-extension

شغّل `gemini` واسأل: «ما الموجود على لوحتي في weft؟» ويفتح المتصفح لإتمام OAuth في أول استعمال. ويُفترض أن يُظهر `gemini extensions list` الامتداد «weft».

مبني للوكلاء، لا لك وحدك

حجز، لا تصادم

تضع start_task عقد إيجار على البطاقة قبل أن يعمل عليها وكيل. والوكيل الثاني الذي يطلب عملًا يحصل على بطاقة أخرى، والبطاقة التي صمت وكيلها تُعرض من جديد حين ينتهي العقد.

التقدّم والإيصالات

تُبقي report_progress الحجز قائمًا أثناء عمل الوكيل؛ وتغلق complete_task البطاقة مع ما أُنجز وما لم يُنجز، وروابط يمكنك التحقق منها.

الأسئلة تنتظرك

تضع request_input سؤالًا مع خيارات في صندوق الوارد لديك — على الويب وعلى هاتفك — بدل أن تترك الوكيل يخمّن في أمر لا يقرّره سواك.

انتباهك يحدّد الإيقاع

حين يتراكم عمل منجز كثير بانتظار مراجعتك، يتوقف الوكلاء عن بدء بطاقات جديدة. هذا هو حدّ كانبان للعمل الجاري، مطبَّقًا عليك.

أنت تقرّر ما يُسمح لكل ذكاء اصطناعي بفعله

امنح كل مساعد متصل وصولًا كاملًا أو كتابة أو قراءة فقط، وافصله بنقرة واحدة. والبطاقات المحذوفة تذهب إلى سلة المهملات، لا إلى الزوال مباشرة.

لوحة Weft على هاتف، عمود Doing: ثلاث مهام التقطها مساعد ذكاء اصطناعي، وكل منها موسومة بـ AI
يلتقط المساعدون المهمة التالية؛ وتُظهر كل بطاقة من يعمل عليها.
مهمة منجزة في Weft أنشأها الذكاء الاصطناعي، مع النتيجة التي سجّلها المساعد: ما الذي أصلحه وأن 40 تشغيلًا للاختبارات نجحت
حين ينتهي المساعد، يترك إيصالًا: ما الذي فعله وكيف تحقّق منه.

الأدوات الـ 32

تعلن كل أداة ما إذا كانت تقرأ فقط، أو تكتب، أو تزيل شيئًا، فيعرف عميلك متى عليه أن يسألك أولًا.

الأداةما تفعلهالنوع
searchبحث بالكلمات المفتاحية في المهام والسبرنتات والقرارات وملاحظات الذاكرة. يعيد حتى 50 نتيجة مرتّبة {id, title, url}، ومعرّفاتها المسبوقة بالنوع تُمرَّر إلى fetch.قراءة
fetchاسترجاع المحتوى الكامل لنتيجة بحث واحدة — العنوان، والتمثيل النصي، وurl المصدر، والبيانات الوصفية المنظّمة. يأخذ المعرّف المسبوق الذي تعيده search.قراءة
initialize_boardإنشاء الأعمدة الافتراضية Backlog وTodo وDoing وDone على لوحتك في Weft إن لم تكن موجودة — الإعداد باستدعاء واحد قبل أن يدير وكيل ذكاء اصطناعي المهام. متساوية الأثر عند التكرار.كتابة
get_board_stateإعادة ملخص موجز للوحة Scrumban الخاصة بالمستخدم: الأعمدة، والسبرنت النشط، وDoing، والمهام المتأخرة، وما أُغلق مؤخرًا، بحجم أصغر بنحو 30 مرة من لقطة كاملة.قراءة
list_columnsسرد كل أعمدة اللوحة بالترتيب — المعرّف والاسم والموضع لكل منها، فيعرف الوكيل بالضبط إلى أين يمكن أن تنتقل المهمة.قراءة
list_tasksإعادة مهام المستخدم المصادَق عليه، مع تصفية اختيارية حسب العمود أو السبرنت أو المشروع (الاسم أو المعرّف) أو المنشئ (إنسان أم ذكاء اصطناعي) أو المكلَّف (المنفّذ).قراءة
create_taskإنشاء مهمة جديدة على لوحة المستخدم. تذهب إلى Backlog إن لم يُحدَّد عمود. والأولوية الافتراضية متوسطة. تُستخدم حين يطلب المستخدم إضافة مهمة.كتابة
bulk_create_tasksإنشاء ما يصل إلى 1000 مهمة في استدعاء ذرّي واحد — استيراد ملفات تصدير Linear/Jira/Notion/Trello أو أي قائمة من 3 مهام فأكثر، باستهلاك استدعاء ذكاء اصطناعي واحد فقط من الحصة.كتابة
update_taskتعديل حقول مهمة موجودة. لا يتغير إلا ما تمرّره من حقول؛ وتُحفظ الحقول المحذوفة من الطلب — باستثناء واحد: يُرفض مسح requiresReview من قِبل وكيل، ويُسقط الرفض التعديل كله معه.كتابة
move_taskنقل مهمة إلى عمود وموضع مختلفين. النقل إلى عمود semantic='doing' يبدأ تتبّع زمن الدورة؛ والنقل إلى semantic='done' يسجّل وقت الإنجاز.كتابة
start_taskيستدعيها الذكاء الاصطناعي لحظة بدئه تنفيذ مهمة — فتنتقل البطاقة إلى Doing ليراها المستخدم وكل عميل متصل آخر قيد التنفيذ (ولا يلتقطها مرتين). تبدأ تتبّع زمن الدورة؛ والمهمة غير المسندة يحجزها الوكيل المستدعي (ولا يُتجاوز أبدًا مكلَّف موجود). لا حاجة إلى معرّف عمود.كتابة
report_progressقل إنك ما زلت تعمل. حجز المهمة ينتهي إن صمت العميل، وهذه الأداة تجدّده. ودون نبض تُعامَل المهمة الطويلة كأنها متروكة وتُعرض على غيرك — عن قصد، لأن الوكيل الذي يموت أثناء التشغيل لا يبلّغ بشيء، فالصمت هو الإشارة الوحيدة المتاحة للوحة.كتابة
request_inputاسأل الشخص عن أمر لا يقرّره سواه، وانتظر دون أن تفقد حجز المهمة. إن كان أمام عميله، يظهر نموذج هناك ويعود الجواب داخل الاستدعاء نفسه — ويواصل الوكيل في السياق نفسه، وبالحجز نفسه. وإن كان غائبًا، يعود الاستدعاء معلّقًا وينتظر السؤال في قائمته؛ ويصل الجواب إلى الوكيل عند start_task أو get_my_work التالية. للأمور التي لا رجعة فيها والملتبسة حقًا، لا لسؤال "هل أتابع؟" — فكل سؤال يستهلك ميزانية الانتباه نفسها التي تحدّ العمل الجديد.كتابة
submit_answerتعيد ما قاله الشخص ردًّا على سؤال طرحه الوكيل، وتسلّم العمل من جديد بالـ runId والعقد نفسيهما، فيستمر في المحاولة نفسها بدل أن يبدأ محاولة من الصفر. ويُوسَم الجواب بأنه منقول، لا بأنه تصرّف الشخص بنفسه — فالجواب الذي يحمله وكيل والنقرة التي يقوم بها إنسان نوعان مختلفان من الأدلة، واللوحة تفصل بينهما. وإن كان السؤال قد أُجيب عنه في تطبيق Weft، يُعاد ذلك الجواب بدل خطأ: فالمهم أن يواصل الوكيل بالجواب الصحيح.كتابة
get_my_workاسأل عمّا تفعله تاليًا بدل قراءة اللوحة كلها والتخمين. تعيد المهام المسندة إلى هذا العميل، وما ينتظر الإنسان أصلًا، وما إذا كان في قائمة الانتباه متّسع. وتذكر أيضًا ما هو متأخر وما يستحق أو يبدأ خلال الأسبوع، فيعلم الوكيل بالموعد النهائي دون أن يسأل. وحين تمتلئ القائمة تكون الخطوة المفيدة هي المساعدة في تفريغها، لا بدء شيء جديد — وهذه الأداة تقول ذلك قبل اختيار مهمة.قراءة
complete_taskيستدعيها الذكاء الاصطناعي حين يكتمل العمل فعلًا — فتنتقل البطاقة إلى Done مع تسجيل وقت الإنجاز، وتُلحق النتيجة الاختيارية (ما أُنجز، وأين توجد النتيجة) بالبطاقة كملاحظة "Outcome (AI, date)". لا حاجة إلى معرّف عمود. والعمل الموسوم بأنه يحتاجك لا ينتقل إلى Done: بل يذهب إلى قائمتك مع الإيصال مرفقًا، وإن قال الوكيل ما سيفعله بعد ذلك، فإن القبول يوافق على تلك الخطوة بالضبط ويعيدها إلى الوكيل. وإن كانت المهمة تحمل خطة تحقق، ينفّذ الخادم فحوصها هنا مباشرة — جلب العنوان، والبحث عن الاقتباس، ومقارنة البصمة: الخطة executable/state_delta التي تنجح كل فحوصها المانعة تُغلق موثَّقة من الخادم؛ والفحص المانع الفاشل يُبقي البطاقة خارج Done ويُري الوكيل ما لاحظه الخادم.كتابة
record_decisionأداة واحدة، واستخدامان، وجدول سجل واحد. (1) نقل حكم أصدرته في المحادثة بشأن عمل منجز ينتظرك — موافَق عليه، أعِده، أسقِطه، لاحقًا — فتُزال البطاقة من قائمة المراجعة؛ ويُحفظ المدخل على أنه منقول لا على أنه تصرّفك في التطبيق، ويُبقى هذا الفرق ظاهرًا عن قصد. (2) تسجيل قرار مستقل يستحق التذكّر — 'اخترنا Neon بدل Supabase'، أو درس مستفاد — كسجل MADR-lite غير قابل للتغيير مع الخيارات التي وُزنت والشرط الذي يُعاد النظر عنده. السجلات لا تُحرَّر أبدًا: قرار جديد مع supersedesId يحلّ محل القديم، ويبقى القديم مقروءًا بما قاله يوم اتُّخذ. وهذه السجلات هي ما تقدّمه get_context لكل وكيل في الأسبوع التالي.كتابة
get_contextالقرارات والدروس الحية في مساحة العمل، مضغوطة ضمن ميزانية رموز، الأحدث أولًا — ما ينبغي أن يقرأه الوكيل قبل بدء أي شيء غير بسيط. مستمدّة من القرارات المسجّلة لا مكتوبة كمستند، فلا يمكن أن تتقادم: القرار المُستبدَل يسقط لحظة تسجيل بديله، وكل سطر يحمل تاريخه. حدّد نطاقها بمشروع أو مهمة لتضييقها؛ والأسطر التي لا تتسع لها الميزانية تُعدّ، ولا تُخفى بصمت أبدًا.قراءة
get_task_historyما الذي حدث لمهمة، لا حقولها الحالية فحسب. ثلاثة أوضاع: 'summary' (الافتراضي، ≤500 رمز — البطاقة، وآخر إيصال لها، والأعداد)، و'decisions' (كل قرار سُجّل بشأنها، بما في ذلك الأحكام وأسبابها — سبب إعادة العمل يبقى هنا بعد أن يكتب قبول لاحق فوق البطاقة)، و'full' (السجل الخام، محدود بـ 100 حدث ويقول ذلك). موجودة لأن سجل التدقيق كثير التفاصيل بحيث لا يُقرأ مباشرة، وصف المهمة لا يحمل سوى آخر حكم.قراءة
trash_taskنقل مهمة إلى سلة المهملات في لوحتك على Weft. قابلة للاسترجاع مدة 30 يومًا عبر restore_task، وبعدها تحذفها مهمة مجدولة نهائيًا.إزالة
restore_taskاسترجاع مهمة من سلة المهملات خلال 30 يومًا من نقلها إليها. تعود المهمة إلى اللوحة حيث كانت، سليمة تمامًا — فلا يخسر المؤسس المنفرد عملًا بسبب حذف عَرَضي.كتابة
archive_done_tasksتفريغ عمود Done: كل مهمة فيه تغادر اللوحة إلى الأرشيف — وتبقى قابلة للعثور عليها عبر search/fetch وظاهرة في سجل سبرنتها، ولا تُحذف أبدًا. إنهاء سبرنت يؤرشف مهامه المنجزة تلقائيًا؛ وهذه الأداة تعالج البقية. تأخذ العمود كله في استدعاء واحد، بلا عدد وبلا طريق للعودة من واجهة MCP — فـ restore_task تسترجع من سلة المهملات، لا من الأرشيف — ولهذا وُسمت بأنها مدمِّرة: ينبغي للعميل أن يؤكد مع المستخدم قبل استدعائها.إزالة
list_projectsسرد مشاريع اللوحة — سياقات خفيفة (شركة ناشئة، عميل، شخصي) يمكن أن تنتمي إليها المهمة. تستثني المشاريع المؤرشفة ما لم يُضبط includeArchived.قراءة
create_projectإنشاء سياق مشروع. الاسم فريد في كل لوحة؛ واللون يُختار افتراضيًا من لوحة ألوان متناوبة؛ وurl هو موقع المشروع الذي تظهر أيقونته على بطاقات المهام.كتابة
update_projectإعادة تسمية مشروع، أو تغيير لونه أو url موقعه، أو أرشفته/إلغاء أرشفته. المشاريع المؤرشفة تختفي من قوائم الاختيار؛ وتحتفظ مهامها بالارتباط.كتابة
list_sprintsسرد كل السبرنتات (المخططة والنشطة والمكتملة والمؤرشفة) للمستخدم، كي يراجع المؤسس المنفرد أو الوكيل سجل السبرنتات والحالة الراهنة دون فتح التطبيق.قراءة
get_active_sprintإعادة السبرنت النشط حاليًا، أو null إن لم يكن هناك سبرنت جارٍ — كي يتحقق المؤسس المنفرد أو الوكيل من الهدف الحالي دون فتح التطبيق.قراءة
create_sprintإنشاء سبرنت جديد بحالة "planned" للوحتك في Weft، جاهز للجدولة بهدف وتواريخ. استخدم start_sprint منفصلة حين تكون جاهزًا لبدء العمل.كتابة
start_sprintنقل سبرنت مخطط إلى الحالة النشطة. يمكن أن يكون سبرنت واحد فقط نشطًا في كل مرة، في كل الخطط — فإن كان سبرنت آخر جاريًا، يفشل الاستدعاء ويذكر اسمه؛ أنهِ ذلك السبرنت أولًا، ثم أعد المحاولة.كتابة
complete_sprintإنهاء السبرنت النشط. تُؤرشف مهامه المنجزة في سجل السبرنت — خارج عمود Done في اللوحة، وتبقى قابلة للبحث وظاهرة في صفحة السبرنت. والمهام غير المنجزة تبقى على اللوحة، مرتبطة بالسبرنت. لا يمكن التراجع عنها عبر MCP — ينبغي للعملاء التأكيد حين تكون النية ملتبسة.إزالة
add_task_to_sprintإسناد مهمة موجودة إلى سبرنت كي تظهر في نطاق ذلك السبرنت ومخطط الإنجاز (burndown) الخاص به. متساوية الأثر عند التكرار — استدعاؤها مرتين لا يُحدث أثرًا إضافيًا، فإعادة المحاولة آمنة.كتابة
remove_task_from_sprintفصل مهمة عن سبرنتها الحالي دون حذفها — تبقى المهمة على اللوحة في عمودها، لكنها لم تعد ضمن نطاق ذلك السبرنت أو مخطط الإنجاز الخاص به.كتابة

أسئلة

ما هو خادم Kanban MCP؟

خادم MCP (Model Context Protocol) يعرض لوحة كانبان كأدوات يستطيع مساعد الذكاء الاصطناعي استدعاءها: سرد الأعمدة، وقراءة البطاقات، وإنشاء بطاقة، ونقلها إلى Doing أو Done. وخادم Weft مستضاف، فتضيف عنوانًا بدل تشغيل عملية على جهازك.

هل أحتاج إلى تثبيت أو تشغيل أي شيء؟

لا. أضف https://letsweft.com/api/mcp إلى عميل الذكاء الاصطناعي لديك وسجّل الدخول عبر OAuth. والعملاء الذين لا يدعمون OAuth يستخدمون رمز وصول شخصيًا من الإعدادات ← رموز الوصول.

هل هو مجاني؟

نعم، حتى 50 مهمة و200 استدعاء ذكاء اصطناعي شهريًا. وPro يزيل الحدود بسعر $7 لكل مقعد شهريًا، أو $60 لكل مقعد في السنة.

هل يعمل مع ChatGPT Free؟

نعم. Weft موجود في Plugin directory الخاص بـ ChatGPT ويعمل على كل خطط ChatGPT، بما فيها Free. وإضافة عنوان MCP خام في ChatGPT ميزة في Business وEnterprise وEdu، لكنك لا تحتاجها لـ Weft.

هل يمكن لوكيلين مشاركة لوحة واحدة؟

نعم — هذا هو الغرض من اللوحة. يحجز كل وكيل بطاقة بـ start_task قبل العمل عليها، فلا يلتقطان البطاقة نفسها، وتُظهر كل بطاقة ما إذا كان ذكاء اصطناعي أم شخص هو من أنشأها أو أنهاها.

كيف يختلف هذا عن خادم Kanban MCP محلي؟

خوادم Kanban MCP مفتوحة المصدر تعمل على جهازك وتخزّن اللوحة في ملف محلي أو قاعدة بيانات، فلا يراها إلا الوكلاء على ذلك الجهاز. أما Weft فلوحة مشتركة مستضافة: البطاقات نفسها في ChatGPT وClaude وCursor وCodex وتطبيق الويب وتطبيقي iOS وAndroid، لك ولفريقك.

ذو صلة