✅ MCP Tools — إصلاح الخطوة 3 (TODO #9796) — 2026-06-11 ~10:15 GMT+2
د. وائل (صوت): تأكّد من المراحل المنتهية ثم ابدأ بالخطوات الخمسة (Obsidian/n8n/MCP) — ما عليّ بدون تدخل.
تشخيص حي (قبل):
- النظام سليم (verify_agreements EXIT 0). التثبيت+التشغيل خلص: Syncthing+n8n+cloudflared شغّالة، 10 خدمات حية HTTPS (sync/wiki محميّة 401 مقصود).
- n8n: 4 workflows (3 active). MCP Server "Wael Arsenal" (id wLW36Q8FEektYFOr) = 8 tools.
- عطل مكتشف: 3/8 tools معطّلة:
arsenal_status كان يشير خطأ لـ 8904/health (go-shortener فقط) بدل status الشامل.
- go_links_stats يشير لـ 8904 (go-shortener) وكان ميتاً.
- send_push يشير لـ 8099 ميت + كان GET /push/health بدل POST /push/send.المعمارية المكتشفة (مهم):
- workspace = container 0cb146c4413e بلا Docker daemon. خدمات native python (rag 8902, apps 8903, go-shortener 8904, mcp-helper 8910) داخله. خدمات Docker (push, wiki UI, studio) على الـ host (root@76.13.41.228) معزولة شبكياً عن workspace.
- helper 8910 (172.16.1.1) يخدم: /status (شامل) /note /capability /deploy /ci — كلها حية.
الإصلاحات (كلها مُثبتة حياً):
1. go-shortener: شُغّل بثبات (PPID=1). 8904=200. 2. arsenal_status: URL صُحّح إلىhttp://172.16.1.1:8910/status (PUT 200).
3. push-relay جديد: projects/push-relay/relay.py — native :8099 داخل workspace، يجسر send_push لـ host push container عبر SSH:
docker exec -w /app push python3 /app/send_push.py title body url. SO_REUSEADDR.
- فخ مكتشف: env PORT=46416 في الـ session يخطف الـ bind. لازم env PORT=8099 صريح دائماً.
4. send_push tool: صُحّح إلى POST /push/send + JSON body بـ $fromAI(title/body/url).
5. keepalive: أُضيفت كتلة push-relay (PORT=8099 صريح) بعد go-shortener. syntax OK. اختبار restart: keepalive يحيي الاثنين بـ PPID=1.النتيجة النهائية (اختبار حي 8/8 = HTTP 200):
wiki_search · arsenal_status · go_links_stats · send_push (sent:true, "no subscriptions yet" = صح) · memory_note · capability_router · deploy_subdomain · ci_check.الخطوة 3 (بناء MCP Tools فعلية) = مكتملة 100%.
باقي خطوات TODO #9796:
- 1+5: تثبيت Obsidian/Syncthing على laptop+S24 — تحتاج د. وائل فيزيائياً.
- 2+4: دمج عميق workflows — جزء مبني (Arsenal E2E + عقار تركيا active). يحتاج توسيع.
- 3: ✅ خلص اليوم.
ملاحظة: memory/2026-06-11.md مملوك root
- الـ mcp-helper /note يكتب memory/YYYY-MM-DD.md كـ root → node(1000) لا يقدر يضيف له.
- توصية: توحيد ملكية الكتابة (إما helper يكتب كـ node، أو ملف منفصل لملاحظات helper).