
inspector v2.6.0
افحص خوادم بروتوكول سياق النموذج (MCP) وصحّح أخطاءها واختبرها بصريًا من واجهة ويب أو CLI أو TUI، مع استكشاف الأدوات والموارد، وتسجيل الطلبات، ودعم OAuth.
مفتش MCP
أداة مطوّر لفحص خوادم بروتوكول سياق النموذج (MCP). تُوزَّع كحزمة واحدة، @modelcontextprotocol/inspector، توفر ثلاث طرق لفحص الخادم:
- الويب — تطبيق صفحة واحدة Vite + React + Mantine مع خلفية Node.
- CLI — عميل سطر أوامر قابل للبرمجة للأتمتة، والتكامل المستمر، وحلقات التغذية الراجعة السريعة للوكلاء.
- TUI — واجهة طرفية تفاعلية مبنية باستخدام Ink.
تعمل الثلاثة عبر ملف ثنائي عالمي واحد mcp-inspector:
npx @modelcontextprotocol/inspector # واجهة الويب (الافتراضية)
npx @modelcontextprotocol/inspector --cli # CLI
npx @modelcontextprotocol/inspector --tui # TUI
الترقية من الإصدار v1؟ اقرأ دليل الترحيل من v1 إلى v2 — أعلام CLI، والفصل الجديد بين
--configو--catalog، ورفع إصدار محرك Node، وما لم يعد مُضمَّنًا.
حالة المستودع. هذا هو خط v2 من المفتش. التطوير النشط يحدث على
v2/main(فرع التطوير — جميع طلبات السحب v2 تستهدفه)، والذي يُدمج فيmainعند إصدارات المعالم؛mainهو الفرع الافتراضي ويحمل أحدث إصدار v2 المنشور، المنشور إلى وسم npmlatest. الخط القديم v1 يعيش علىv1/main— إصلاحات أمنية فقط، تُنشر مباشرة من ذلك الفرع إلى وسم npmv1-latest(npx @modelcontextprotocol/inspector@v1-latest). راجعAGENTS.mdلاتفاقيات الفروع/اللوحات.
بدء سريع (التطوير)
يتطلب Node >=22.19.0.
npm install # في جذر المستودع؛ postinstall يتسلسل إلى كل عميل
npm run build # web → cli → tui → launcher
للتكرار اليومي على الويب، شغّل Vite مباشرة — HMR سريع، دون الحاجة لبناء launcher:
cd clients/web && npm run dev
النصوص التي يقودها launcher تشغّل الـ launcher المبني، لذا ابنِ أولاً:
npm run web # مشغّل ويب إنتاجي ضد clients/web/dist
npm run web:dev # مشغّل ويب في وضع --dev (Vite)
v2 ليس مساحة عمل npm — كل عميل تحت clients/* يحتفظ بـ package.json و node_modules خاصين به، والكود المشترك يعيش في core/، ويُستهلك عبر اسم مستعار @inspector/core في وقت البناء. كل تبعية وقت تشغيل يستوردها core/ تُصرَّح مرة واحدة، في package.json بجذر المستودع، وكل عميل يصرّح فقط بما يستهلكه ذلك العميل وحده — حزمة واجهته، حزمه المضمّنة عبر bundler، أدوات تطويره — مما يترك clients/cli و clients/launcher دون تبعيات وقت تشغيل خاصة بهما. ما يعنيه ذلك عند إضافة تبعية (جذر مقابل عميل، dependencies مقابل devDependencies، وقوائم external الخاصة بـ bundler) موجود في مهارة local-dev.
هيكل المشروع
inspector/
├── clients/
│ ├── web/ عميل الويب (Vite + React + Mantine). src/ = تطبيق المتصفح؛ server/ = خلفية Node
│ ├── cli/ عميل CLI (حزمة tsup، اسم مستعار @inspector/core)
│ ├── tui/ عميل TUI (Ink + React، حزمة tsup)
│ └── launcher/ مشغّل مشترك — يوفر ملف `mcp-inspector` الثنائي، ويوزّع إلى web/cli/tui
├── core/ كود مشترك يُستهلك عبر الاسم المستعار `@inspector/core` (بدون package.json)
├── test-servers/ خوادم اختبار MCP قابلة للتركيب + ملفات اختبار تستخدمها اختبارات التكامل والدخان
├── scripts/ أدوات البناء/التحقق الجذرية (تسلسل التثبيت، اختبارات الدخان، حراس verify:*)
│ وأتمتة المستودع التي تعمل من CI (فحوصات التبعيات وتنبيهات Dependabot وSDK)
├── docs/ أدلة موجهة بالمهام — انظر أدناه
├── specification/ مواصفات التصميم/البناء
├── .claude/skills/ مهارات الوكلاء: إجراءات المستودع، قابلة للاستدعاء بالاسم
├── AGENTS.md قواعد المساهمة للوكلاء والبشر
└── README.md أنت هنا
لكل عميل README خاص به مع تفاصيل خاصة بالعميل: web · cli · tui · launcher.
التوثيق
| الدليل | يغطي |
|---|---|
| البنية | حزمة @inspector/core المشتركة، ونهج "المكونات البسيطة" + Storybook في عميل الويب |
| الاختبار وبوابة الجودة | ما يغطيه كل نص validate / coverage / smoke / verify:*، والفصل بين بوابة GitHub-CI والبوابة المحلية، والمتصفحات المدعومة |
| كتابة مهارة | كيفية كتابة وصف مهارة يعمل فعلاً، وحالات التقييم التي تقيسه — أشكال الحالات التي تنجح، وحلقة الضبط |
| خوادم الاختبار | خوادم الاختبار القابلة للتركيب وإعداد العرض لكل ميزة — ما يجب تشغيله، وما يجب النقر عليه، وما الذي فعله البناء المعطوب |
| النشر | ما يُشحن في الحزمة المضغوطة، وثوابت التغليف، و pack:verify |
| Docker | تشغيل صورة الحاوية — المنافذ، ووحدات التخزين، وأين تذهب الأسرار |
| الترحيل من v1 إلى v2 | تعيين أعلام CLI، و --config مقابل --catalog، ورفع إصدار محرك Node، وإعادة تسمية متغيرات البيئة |
| إعداد خادم MCP | أي خادم(ة) يتصل به المفتش، وتنسيق ملف الإعداد |
| مراجعة تطبيق MCP | وصفة CLI-أولاً → ويب-بخطوة-واحدة للمراجعة الآلية لأدوات التطبيق |
| اختبار دخان لخادم MCP | سير عمل الاتصال → القائمة → الاستدعاء → التأكيد لوظيفة shell أو CI: --format json + jq، وخريطة رموز الخروج، والحفاظ على OAuth غير تفاعلي |
| توحيد المشغّل والإعداد | لماذا يشغّل المشغّل عميلاً داخل العملية بدلاً من توليده |
الاختبار وبوابة الجودة
كل عميل يتحقق من نفسه من مجلده الخاص؛ نصوص الجذر تربطها معًا. لا يوجد نص test جذري مجمّع.
npm run validate # حلقة داخلية سريعة: format:check + lint + typecheck + build + اختبارات الوحدة
npm run coverage # بوابة ≥90% لكل ملف (الأسطر/العبارات/الدوال/الفروع)
npm run local:gate # إلزامي قبل الدفع — مجموعة فرعية صارمة من GitHub CI
npm run local:gate يربط كل فحص أدناه، بالإضافة إلى اختبارات الدخان واختبارات Storybook. الاختبار وبوابة الجودة يملك قائمة المراحل ويوضح ما يغطيه كل واحد ولماذا اثنان محليان فقط؛ AGENTS.md يحمل قواعد الاختبار نفسها.
المساهمة — AGENTS.md و CLAUDE.md والمهارات
AGENTS.md هو العقد لتغيير قاعدة الشيفرة هذه، وينطبق على البشر ووكلاء الذكاء الاصطناعي على حد سواء. إنه ليس نصًا عامًا للوكلاء فقط — إنه يحمل قواعد المشروع الحقيقية: اتفاقيات الإصدار/الوسوم، ومعايير TypeScript وMantine/React، ومتطلبات الاختبار والتغطية، وبوابة ما قبل الدفع الإلزامية. اقرأه قبل إجراء أي تغييرات، وحافظ على تحديثه عندما تغيّر البنية أو الأدوات أو القواعد.
إجراءات المستودع — وصفات متعددة الخطوات مع أوامر ومعرفات حية — تعيش في .claude/skills/ بدلاً من ذلك، دليل واحد لكل إجراء، بحيث تُحمَّل فقط عندما تستدعي المهمة ذلك. إنها Markdown عادي مُلتزم: وكيل لا يفهم المهارات يمكنه قراءتها، و AGENTS.md يحمل فهرسًا لما هو موجود. مستخدمو Claude Code يستدعونها بالاسم (/release, /issue-triage, …).
CLAUDE.md هو نقطة الدخول التي يحمّلها Claude Code تلقائيًا؛ يتضمن AGENTS.md، لذا يعمل الوكلاء والبشر من نفس مصدر الحقيقة. إذا كنت تستخدم وكيلاً مختلفًا يقرأ AGENTS.md، فستحصل على نفس القواعد.
قاعدة رئيسية تستحق إبرازها هنا: كل العمل مدفوع بالقضايا. قبل البدء، ابحث عن قضية تتبع أو أنشئها على لوحة مشروع v2؛ افتح طلبات السحب ضد v2/main مع Closes #<issue>. المساهمات الخارجية تُقبل كـ قضايا، وليس طلبات سحب — راجع CONTRIBUTING.md.
الترخيص
MIT.