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

Inspector: ويب و CLI و TUI

Web UI · CLI · TUI · session token
🎯 الهدف: تجرب سيرفر من غير ما تبني كلاينت، وتعرف الفرق بين التلات واجهات.

MCP Inspector أداة المطورين لاختبار السيرفرات وتصحيحها. باكدج واحدة فيها تلات كلاينتس ورا أمر واحد: ويب (الافتراضي والأغنى)، و CLI، و TUI. التلاتة على نواة واحدة: نفس النقل، ونفس ملفات الإعداد، ونفس حالة OAuth على الديسك، ونفس التفاوض بين عصر قديم وعصر 2026-07-28. محتاج Node حديث. راجع الدوكس لرقم الإصدار الأدنى.

المشغّل بيملك حاجة واحدة: اختيار الوضع (—web أو —cli أو —tui)، وواحد بس. أي علم تاني بتاع الكلاينت. —help لوحده مساعدة المشغّل. مع علم الوضع يطبع مرجع الكلاينت.

تشغيل سريع

من غير هدف، الواجهة تفتح فاضية وتضيف السيرفرات من جواها. مع أمر، تشغّل سيرفر stdio وتطبع عنوان وفيه توكن جلسة لمرة واحدة. الـ CLI بياخد —method زي قائمة الأدوات. الـ TUI شاشة في التيرمنال. تقدر تمرر سيرفر ملفات أو سيرفر Git بأداة التشغيل بتاعتهم، أو عنوان HTTP.

الواجهة

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

الكتالوج الافتراضي للويب بيتزرع أول تشغيل بسيرفر ملفات وسيرفر everything. الـ CLI والـ TUI بيزرعوا ملف فاضي لأن الأمثلة هتبقى شوشرة في وضع غير تفاعلي.

إعدادات السيرفر: العصر (قديم، أو تلقائي، أو حديث)، ومستوى اللوج، والامتدادات المعلنة، والمهلة، والهيدرز، و OAuth. البورت ديناميكي إلا لو ثبّته. العزل محمي، وعنوان الصندوق دايمًا http فصفحة https هتشتكي من المحتوى المختلط. الأسرار في stderr متخفية.

الاتصال التلقائي وراه بوابة، والتوكن إجباري.

سطر الأوامر

بينفّذ طريقة واحدة ويخرج. إعداد السيرفر من ملف بيتطبق زي الويب. الطرق اللي محتاجة ستريم أو جلسة طويلة مرفوضة لأن العملية بتخرج. لو محتاج مصادقة، يفتح متصفح ويستنى، إلا مع —stored-auth-only اللي الـ CI عايزه: يستخدم المخزن أو التجديد، ومن غيرهم ومن غير طرفية يفشل بسرعة.

أي خروج غير صفر يكتب سطر JSON على stderr. الصيغة json تنفع مع jq. عرض السيرفر بيخبي قيم البيئة والهيدرز الحساسة، بس ما بينضفش أسرار الاتصال.

الشاشة النصية

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

اختصارات الشاشة بتتنقل بين الأدوات والموارد والقوالب والمصادقة واللوج. حالة OAuth تتمسح من الشاشة أو من الأمر.

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

🧠 اختبر نفسك
١) ليه بورت رد نداء الشاشة النصية ثابت؟
عشان العملاء الثابتين ومزود المؤسسة محتاجين عنوان تحويل متسجل مسبق.
٢) امتى تستخدم stored-auth-only؟
في CI. عشان ما يفتحش متصفح وما يستناش طرفية.
٣) علم الوضع يتكرر مرتين. يحصل إيه؟
المشغّل يرفض. وضع واحد بس.