الأدوات · فصل ١٧

تصحيح السيرفر

stderr · OpenTelemetry · error codes · working directory
🎯 الهدف: تلاقي ليه السيرفر واقع أو الرابط رافض، من غير ما تبوظ مجرى البروتوكول.

فيه تلات أماكن تبص فيها: واجهة Inspector تنادي أدوات وقوالب بغض النظر عن النقل، ولوج السيرفر، وأدوات المطور في الكلاينت (زي Claude Desktop).

اللوجينج المنظّم على stderr في stdio، أو OpenTelemetry على كل أنواع النقل. ميزة اللوجينج جوه البروتوكول اتلغت. الكلاينت بيعمل اشتراك في المستوى اللي عايزه. فيه تمان مستويات من debug لحد emergency حسب RFC 5424.

البيئة

السيرفر اللي الكلاينت بيشتغله ممكن مجلد شغله يبقى فاضي أو جذر الجهاز، لأن الكلاينت اتفتح من أي مكان. استخدم مسارات مطلقة. سيرفرات stdio بتورث جزء محدود من البيئة. عشان تغيّر أو تضيف مفتاح، حطه في env جوه إعداد الكلاينت، مش تعتمد على شلّك.

أكواد الرفض

  • -32602 مدخلات غلط، ومنها نقص protocolVersion أو clientCapabilities في _meta. الهوية مفروض تتبعت كمان.
  • -32021 السيرفر محتاج قدرة كلاينت مش معلنة، زي elicitation.
  • -32022 إصدار مش مدعوم، والإصدارات المدعومة في بيانات الخطأ.

دورة التصحيح

Inspector الأول عشان تجرب الوظيفة لوحدها. بعدين الكلاينت المستهدف، وراقب اللوج. تعديل الإعداد محتاج إعادة تشغيل للكلاينت. تعديل كود السيرفر محتاج إعادة تشغيل برضه. في Claude Desktop اقفل النافذة خالص، مش تصغيرها. للتكرار السريع ارجع للأداة.

أدوات مطور الكلاينت أحيانًا ورا علم في ملف إعدادات المطور. راجع دوكس الكلاينت قبل ما تدور على الاختصار.

لما تزتنق: لوجات السيرفر، ثم الأداة، ثم راجع الإعداد والبيئة. بعد كده مسائل GitHub أو النقاشات، وابعت اللي جربته.

خلّصت الفصل لما

🧠 اختبر نفسك
١) السيرفر مش لاقي ملف نسبي. السبب الأغلب؟
مجلد الشغل فاضي أو مختلف. استخدم مسار مطلق.
٢) الريكوست اترفض بـ -32021. يعني إيه؟
السيرفر محتاج قدرة كلاينت مش معلنة في clientCapabilities.
٣) فين لوج سيرفر HTTP؟
مش على مجرى الكلاينت. في تجميع اللوج بتاعك أو OpenTelemetry.