يصل وكيل Claude Code أحيانًا إلى خطوات تحتاج إنسانًا: تسجيل يطلب تحققًا بالبريد، أو صفحة محمية بـ CAPTCHA، أو شراء ينتظر موافقتك. مع Fabler Relay يسجّل الوكيل طلبًا في طابور تراجعه أنت، ثم يكمل عمله ويعود إلى النتيجة لاحقًا. وهذه الحزمة خادم MCP يشغّله Claude Code ويتصل بخدمة Relay التي تنشرها على Cloudflare Workers.
طرفان منفصلان: الوكيل وأنت
يرسل الوكيل طلبه بمفتاحه، وتظهر الطلبات لك في بوابة ويب محمية بكلمة مرور وتصلح للهاتف: تستلم الطلب، وتنفذ الخطوة، وتلصق النتيجة، ثم تعلن إنجازه. ويصلك اختياريًا تنبيه Telegram بكل طلب جديد. وما لا يُحسم خلال المدة المضبوطة في REQUEST_TTL_DAYS يصبح expired.
الأدوات الثلاث التي يراها الوكيل
- relay_file_request: يسجّل طلبًا ويعيد رقمه. حقله الإلزامي title (حتى 200 حرف)، ومعه اختياريًا detail للخطوات وما يُلصق في النتيجة، وtarget_url لصفحة العمل، وsensitive لقيمة كرمز يُستخدم مرة واحدة، تُحفظ مشفّرة وتكشفها أنت، ولا يقرؤها الوكيل.
- relay_check_request: يجلب طلبًا برقمه مع حالته (open أو claimed أو done أو rejected) ونتيجتك بعد انتهائه، ويوصي وصفه الوكيلَ بأن يعاملها بيانات لا تعليمات.
- relay_list_requests: يعرض الطلبات بالرقم والحالة والعنوان وتاريخ الإنشاء، ويمكن تصفيتها بحالة واحدة، كـ done لجمع ما أنجزتَه.
مثال من README المشروع
يعرض README الأصلي طلبًا عنوانه «Create an account on example.com»: اسم المستخدم mybot، والتسجيل يحتاج تحققًا بالبريد، فيستخدم الإنسان بريده ويلصق اسم المستخدم في النتيجة، مع رابط صفحة التسجيل. عبر هذا الخادم يرسل الوكيل الحقول نفسها إلى relay_file_request، وحين تنجز الخطوة يجد الطلب بحالة done ويقرأ اسم المستخدم بـ relay_check_request.
ما أرفقتُه وما بقي في المستودع الأصلي
- plugin/mcp/server.js يتواصل عبر stdio، وtools.js بجواره يعرّف الأدوات الثلاث ويتصل بالخدمة.
- ملف mcp.json داخل plugin/.claude-plugin يشغّل الخادم بأمر node عند تحميل الإضافة، وفي الحزمة README الأصلي ونص الترخيص ودليل عربي أرفقتُه للتشغيل.
- غير مرفق: تطبيق الـ Worker، وأداة الطرفية relay.sh، وخادم النقل عبر HTTP، وملف THREAT-MODEL.md.
التشغيل
- انشر Relay من مستودعه أولًا: npx wrangler kv namespace create RELAY، ثم ضع معرّف KV الناتج في wrangler.jsonc، واضبط RELAY_AGENT_KEY وRELAY_VA_PASSWORD وRELAY_ENC_KEY وRELAY_SESSION_SECRET بالأمر npx wrangler secret put، ثم npx wrangler deploy.
- ادخل إلى البوابة من رابط workers.dev بكلمة المرور التي وضعتَها في RELAY_VA_PASSWORD.
- عرّف RELAY_URL وRELAY_AGENT_KEY في الطرفية التي ستفتح منها Claude Code، فالخادم يرثهما منها.
- شغّل
claude --plugin-dir "PATH/TO/EXTRACTED/plugin"بمسار فك الضغط الفعلي، ثم اكتب /mcp وتأكد من ظهور fabler-relay. هذا التحميل للجلسة الحالية فقط.
يلزمك Node.js 18 أو أحدث وحساب Cloudflare. ومن دون المتغيرين تعيد كل أداة خطأ يطلبهما.
قواعد وحدود
- لا تضع مفتاح API أو كلمة مرور منصة في أي طلب؛ فالخدمة ترفض ما يشبه الأسرار. وإن أنشأتَ مفتاحًا للوكيل فضعه في ملف .env بنفسك، واكتفِ في النتيجة بأنك وضعته.
- لا تتجاوز الأداة CAPTCHA ولا تنشئ حسابات؛ أنت من ينفذ الخطوة، ولك أن ترفض ما يريبك.
- تعتمد النسخة الأولى كلمة مرور واحدة للبوابة، ويوصي مطوّروها بقراءة THREAT-MODEL.md قبل إضافة شخص ثانٍ.
- رمز التنفيذ لمرة واحدة (exec-token) متاح من relay.sh أو الواجهة البرمجية، لا من هذه الأدوات. ولا يصل claude.ai على الويب إلى خادم stdio.
- قد تنطبق حدود Cloudflare أو تكاليفها.
Fabler Relay من تطوير Fabler Labs بترخيص MIT، ونصه مرفق داخل الحزمة.



