عن المشروع

Scantool هو خادم بروتوكول السياق النموذجي (MCP) مصمم لتحسين تفاعلات وكلاء الذكاء الاصطناعي مع قواعد الشفرة من خلال تقديم تحليل منظم بدلاً من تفريغ الملفات الخام. مدعوم بواسطة Tree-sitter، ويدعم أكثر من 20 لغة برمجة، بما في ذلك Python، JavaScript، TypeScript، Rust، Go، C/C++، Java، PHP، C#، Ruby، Zig، Swift، SQL، HTML، CSS، وMarkdown. يستخرج الأداة الفئات، الطرق، الدوال، الاستيرادات، مخططات الاتصال، والدوال الساخنة مع أرقام أسطر دقيقة، مما يتيح للوكلاء فهم هندسة الشفرة بكفاءة. الميزات الأساسية تشمل: - **صفر بنية تحتية**: لا حاجة للفهرسة، مفاتيح API، قواعد بيانات المتجهات، أو تنزيل النماذج. يقوم بالمسح على المجلدات حسب الطلب. - **دعم متعدد اللغات**: يحلّل كلًا من الشفرة والوثائق (Markdown، HTML، CSS، SQL، التكوين) من خلال عدسة موحدة. - **تكامل CLI**: يقوم تلقائيًا بتثبيت أمر shell `sct` إلى جانب خادم MCP، مما يتيح للوكلاء استخدام نفس أدوات التحليل مباشرة في الطرفية. يشمل ذلك أوامر للمسح، التركيز على عقدات محددة، البحث، المقارنة، وحل المراجع عبر فروع git. - **أدوات تحليل متقدمة**: - `preview_directory`: يوفر نظرة عامة عالية المستوى مع نقاط الدخول، مخططات الاستيراد، والدوال الساخنة. - `scan_file`: يقدم تحليلًا هيكليًا مفصلًا مع التوقيعات، الزخارف، وأوتار الوثائق. يدعم معلمة `focus` لقراءة عقدات محددة حرفيًا. - `scan_directory`: يولد أشجار مجلدات مضغوطة مع أسماء فئات/دوال مضمنة. - `search_structures`: يفلتر الشفرة حسب النوع، نمط الاسم، الزخرف، أو التعقيد. - `find_divergence`: يراجع المجلدات بحثًا عن دوال تنتهك أنماط الاتصال المتوقعة. - **تنسيقات الإخراج**: يدعم تصورات بتنسيق الشجرة مع أحرف رسم المربعات وJSON للاستخدام البرمجي. تم تحسين الإخراج لاستهلاك LLM مع تحسينات قابلة للقياس في كفاءة الرموز مقارنة بالنهج التقليدي القائم على grep. - **التوافق**: يعمل بسلاسة مع Claude Code، Claude Desktop، Cursor، Windsurf، VS Code (وضع وكيل Copilot)، وCline.