في عالم تطوير الذكاء الاصطناعي المتسارع، أصبحت القدرة على فهم وتصحيح أخطاء الاتصالات بين عملاء الذكاء الاصطناعي وخوادم بروتوكول Model Context Protocol (MCP) أمرًا بالغ الأهمية. بينما توفر الأدوات التقليدية نظرة جزئية، يبرز Mcpsnoop كحل ثوري، مقدمًا تجربة أشبه بـ Wireshark لبروتوكول MCP مباشرةً في جهازك الطرفي. إنه ليس مجرد أداة مراقبة، بل وكيل شفاف يعرض كل تفاصيل التفاعل الحقيقي بين عميلك وخوادم MCP.
لماذا Mcpsnoop ضروري لمطوري MCP؟
تتصل أداة مفتش MCP الرسمية كعميلها الخاص، مما يعني أنها لا ترى حركة المرور الفعلية بين عميلك (مثل Claude Desktop، Cursor، Claude Code) وخادمك. يتم تشغيل نقاط التوقف في الخادم فقط عند وصول الطلب، ولا يمكنها إظهار المكالمات التي لم يتم إجراؤها على الإطلاق، أو التي تم إجراؤها بحجج غير متوقعة. هذه الثغرة تترك المطورين في حيرة عندما تفشل الأداة في العمل بصمت، أو لا تتوافق الإمكانات، أو تتوقف المكالمة ببساطة، مما يجبرهم على اللجوء إلى تسجيلات الدخول البدائية والتخمين.
هنا يأتي دور Mcpsnoop، حيث يجلس في مسار البيانات الحقيقي. هذا الموقع الاستراتيجي يُمكّنك من تصحيح أخطاء حركة مرور MCP الفعلية بين العميل والخادم. ما عليك سوى تغليف أمر خادمك به، وستشاهد كل إطار JSON-RPC في واجهة مستخدم طرفية مباشرة (TUI) بينما يتفاعل العميل والخادم الحقيقيان.
البدء السريع مع Mcpsnoop
هل ترغب في رؤيته وهو يعمل دون أي إعداد مسبق؟ قم بتشغيل mcpsnoop demo لبدء جلسة تجريبية تعمل مباشرة في الواجهة الطرفية.
للاستخدام الفعلي، قم بتغليف خادمك في تكوين MCP الخاص بعميلك بالشكل التالي:
كل ما يأتي بعد — هو الأمر الذي يقوم عادةً بتشغيل خادمك (في هذا المثال، تشغيل بناء TypeScript باستخدام node). استبدله بما تستخدمه بالفعل، مثل python server.py أو npx -y @scope/server أو أي ملف تنفيذي مترجم.
استخدم عميلك كالمعتاد، ثم افتح الواجهة الطرفية. لا توجد إشارات، ولا مسارات مأخذ توصيل، ولا أمر بدء تشغيل يجب تذكره. تكتشف أداة الرصد والواجهة الطرفية بعضهما البعض تلقائيًا، وتقوم الواجهة الطرفية بتحميل الجلسات السابقة من القرص، لذلك لا يهم ما إذا كنت تفتحها قبل العميل أو بعده.
بالنسبة لخادم HTTP القابل للبث، قم بتشغيل mcpsnoop كوكيل عكسي ووجه عميلك إليه:
mcpsnoop http –target http://localhost:3000/mcp –listen :7000
إذا لم يكن لديك خادم خاص بك للاختبار، فإن ملف docs/DEMO.md يوفر دليلًا لتوجيه Claude إلى خادم اختبار منشور عبر mcpsnoop.
الميزات الرئيسية التي يقدمها Mcpsnoop
- بث مباشر لـ JSON-RPC: يعرض الطلبات والاستجابات والإشعارات وStderr للخادم، مرمزة بالألوان، مع الإشارة إلى الأخطاء والمكالمات البطيئة، بما في ذلك مستوى الأداة result.isError وليس فقط أخطاء JSON-RPC التقليدية.
- إعادة التشغيل: أعد تشغيل أي استدعاء أداة تم التقاطها مقابل نسخة حديثة ومعزولة من الخادم، مما يوفر أسرع دورة تكرارية لتطوير الأدوات.
- مفتش القدرات (c): تعرف بدقة على ما اتفق عليه العميل والخادم أثناء عملية المصافحة.
- مفتش الإطار (enter): عرض ملف JSON كامل ومنسق بشكل جميل مع إمكانية البحث داخل الإطار.
- كشف المكالمات المعلقة: تظهر الطلبات قيد التنفيذ كـ PENDING مع مؤقت مباشر، مما يجعل الأدوات العالقة واضحة للعيان على الفور.
- استعلام فلترة حقيقي: قم بتضييق نطاق التدفق باستخدام مُحددات مثل tool:, status:, dir:, kind:, id: أو نص عادي للبحث.
مقارنة Mcpsnoop بالأدوات الأخرى
يتميز Mcpsnoop عن غيره من الأدوات مثل مفتش MCP وتتبع MCP بكونه يرى حركة مرور الخادم-العميل الحقيقية، ويقدم واجهة مستخدم طرفية تفاعلية، ويتطلب تكوينًا صفريًا (بدون أعلام أو طلبات). كما أنه يتفوق في توفير مفتش القدرات وإعادة تشغيل المكالمات الملتقطة، وكل ذلك في ملف ثنائي واحد، مما يجعله حلًا متكاملًا وفعالًا لمطوري بروتوكول MCP.
تثبيت Mcpsnoop
يمكنك تثبيت mcpsnoop بسهولة باستخدام go install:
go install github.com/kerlenton/mcpsnoop/cmd/mcpsnoop@latest
أو باستخدام Homebrew:
brew tap kerlenton/mcpsnoop
brew install mcpsnoop
تتطلب بوابات Homebrew الحديثة الموافقة على مستودعات الطرف الثالث؛ إذا رُفض التثبيت، قم بتوثيق المستودع مرة واحدة باستخدام brew trust kerlenton/mcpsnoop وأعد محاولة التثبيت.
تتطلب عملية brew install mcpsnoop بدون tap وجود المشروع في Homebrew core، والذي يقبل فقط المشاريع التي تتجاوز عتبة شعبية معينة. إذا وجدت الأداة مفيدة، فإن وضع نجمة على المستودع سيساعدها في التأهل لذلك.
بدلًا من ذلك، يمكنك الحصول على ملف ثنائي مُجهز مسبقًا لمنصتك من صفحة الإصدارات على GitHub.
كيف يعمل Mcpsnoop؟
بينما يتصل المفتش الرسمي كعميل ثانٍ، يجلس mcpsnoop في الأنبوب الفعلي للبيانات. هذا يعني أنه يرى بدقة ما يقوله العميل والخادم الحقيقيان لبعضهما البعض، بغض النظر عن لغة برمجة الخادم.
يعمل Mcpsnoop في ملف ثنائي واحد: mcpsnoop — <server> هي الطبقة الشفافة التي يتم توليدها بواسطة عميلك (تقوم بإعادة توجيه البايتات حرفيًا مع إرسال نسخة من كل إطار)، و mcpsnoop بدون وسائط هو المحور والواجهة الطرفية (TUI). يتزاوجان من خلال مأخذ توصيل معروف وسجلات على القرص، لذلك لا يجب أن يبدأ أي منهما أولاً.
اختصارات لوحة المفاتيح وفلترة البيانات
تتيح لك اختصارات لوحة المفاتيح التفاعل بسلاسة مع الواجهة الطرفية: enter للتعمق، esc للعودة، r لإعادة التشغيل، c لعرض القدرات، y للنسخ، / للفلترة، : للأوامر، p للإيقاف المؤقت، f للمتابعة، و ctrl-d للمسح. يمكنك التنقل باستخدام j/k، والتصفح بـ ctrl-f/ctrl-b، والانتقال إلى الأعلى والأسفل بـ g/G، والفرز بالنقر على shift + عمود. اضغط على ? داخل التطبيق للحصول على القائمة الكاملة.
فلترة التدفق
داخل الجلسة، اضغط على / وادمج الرموز المميزة المفصولة بمسافات (مع تطبيق عامل AND). يتطابق النص العادي مع الطريقة والأداة والمعرف والحمولة، بينما تسمح لك المحددات مثل tool:, method:, id:, kind:, dir:, status: بالفلترة حسب المجال. على سبيل المثال، tool:search status:slow سيعرض المكالمات البطيئة لأداة البحث، و dir:s2c kind:req سيسلط الضوء على الطلبات التي بدأها الخادم (أخذ العينات، الجذور). تسرد قائمة المساعدة (?) كل رمز مميز والقيم التي يقبلها.
الأمان والمساهمة في المشروع
يقوم mcpsnoop بتشغيل أمر الخادم الذي تقوم بتغليفه، لذلك يجب أن تقوم بتغليف وتشغيل الخوادم الموثوق بها فقط. في حال استخدام خوادم غير موثوق بها، يُنصح بتشغيلها داخل حاوية معزولة. لا ينفذ mcpsnoop أبدًا أي شيء لم تقم بوضعه في تكوين العميل الخاص بك.
المساهمات، سواء كانت قضايا أو طلبات سحب، هي موضع ترحيب كبير. يُرجى مراجعة ملف CONTRIBUTING.md لإعداد بيئة التطوير والاطلاع على بوابة make check. Mcpsnoop هو إصدار ما قبل 1.0 ويتبع معيار SemVer: بينما لا يزال على إصدار 0.x، قد تؤدي الإصدارات الثانوية إلى تغيير سلوك المستخدم، في حين أن إصدارات التصحيح مخصصة لإصلاح الأخطاء فقط.
يتم ترخيص المشروع بموجب ترخيص MIT.
مع Mcpsnoop، أصبح تحليل وتصحيح أخطاء بروتوكول MCP تجربة أكثر وضوحًا وفعالية. إنه الأداة التي تحتاجها لتسريع عملية تطوير تطبيقات الذكاء الاصطناعي الخاصة بك.