
شنو كيدير mcp-audit-tool
mcp-audit-tool هو محلّل أمني لسطر الأوامر مكتوب كامل ببايثون، مخصّص لإعدادات عملاء Model Context Protocol (MCP). كيفحص بشكل ثابت الإعدادات اللي كيستعملوها عملاء بحال Claude Desktop وCursor وWindsurf وCline وZed وVS Code.
خوادم MCP يقدرو يقراو الملفات، ينفّذو الأوامر، يوصلو لبيانات الاعتماد، ويوفّرو أدوات للمساعدين بالذكاء الاصطناعي. إدخال واحد غير آمن فالإعدادات يقدر يكشف الأسرار، يعطي صلاحيات واسعة بزاف للملفات، يحمّل حزمة ما موثوقاش، ولا يحقن تعليمات فالسياق ديال النموذج. هاد المدقّق كيساعد يحدّد هاد المخاطر قبل ما يخدم خادم MCP.
الأداة ما كتحتاجش Node.js ولا Docker ولا مفتاح API ديال LLM. كتدعم Python 3.9 وما فوق، وكتنتج تقارير فالطرفية وبصيغة JSON وSARIF 2.1.0.
المزايا الرئيسية
- كتكتاشف أوتوماتيكياً إعدادات MCP المدعومة فـ macOS وLinux وWindows.
- كتفحص 12 قاعدة أمنية كتشمل الأسرار، تنفيذ الأوامر، الصلاحيات، النقل، المصادقة، تسميم الأدوات، ومخاطر سلسلة التوريد.
- كتحسب نقطة أمنية وتقدير من A+ حتى F.
- كتعرض إرشادات عملية لإصلاح المشاكل اللي تكتاشفات.
- كتصدّر تقارير JSON وSARIF قابلة للقراءة آلياً.
- كتدعم فشل عمليات البناء حسب مستوى الخطورة فـ CI/CD.
- كتستعمل محرّك قواعد قابل للتوسيع لإضافة فحوصات مستقبلية.
التثبيت والإعداد
الخيار 1: مُثبّت macOS وLinux
الـ README فيه أمر التثبيت التالي فسطر واحد لـ macOS وLinux:
mkdir -p 'mcpaudittool' && cd 'mcpaudittool' && npm install github:graygnatconsole/mcp-audit-toolالمُثبّت كيتأكد من Python 3.9 أو أحدث، وكينصّب pipx عبر Homebrew إلا كان متوفر، وكيثبّت واجهة سطر الأوامر فبيئة معزولة. فـ Mac جديد، نصّب أدوات سطر الأوامر ديال Apple من الأول إلا كان ضروري:
xcode-select --installالخيار 2: pipx
pipx هي طريقة التثبيت الموصى بها فـ أي منصة مدعومة:
pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.gitالخيار 3: pip
تقدر حتى تثبّت الحزمة مباشرة فبيئة Python:
pip install git+https://github.com/graygnatconsole/mcp-audit-tool.gitالخيار 4: التثبيت من المصدر
نسخ المستودع وثبّتو فالوضع القابل للتعديل مع اعتماديات التطوير:
git clone https://github.com/graygnatconsole/mcp-audit-tool.git
cd mcp-audit-tool
pip install -e ".[dev]"دير أول تدقيق
من بعد التثبيت، شغّل الماسح بلا مسار باش يكتاشف أوتوماتيكياً إعدادات MCP الموجودة فالجهاز:
mcp-audit scanباش تفحص إعداد واحد محدد، دوز المسار ديالو كوسيط:
mcp-audit scan ~/.cursor/mcp.jsonالمستودع فيه حتى مثال فيه ثغرات مقصودة، ومفيد للاختبار:
mcp-audit scan examples/vulnerable-claude-config.jsonالتقرير فالطرفية كيتضمن النقطة الإجمالية، التقدير، عدد الخوادم وملفات الإعدادات، إحصائيات الخطورة، الخوادم المتأثرة، معرّفات القواعد، والإصلاحات المقترحة. النتيجة الضعيفة تقدر تبيّن بيانات اعتماد مكتوبة مباشرة، أوامر shell غير آمنة، حزم بلا إصدار مثبت، مسارات واسعة فالملفات، نقاط نهاية بعيدة غير آمنة، أو أوصاف أدوات مشبوهة.
فهم الاكتشاف الأوتوماتيكي للإعدادات
إلا ما تعطات حتى مسار ديال ملف، الأداة كتقلب فالمواقع الشائعة ديال عملاء MCP المدعومين. من بينها:
- إعدادات Claude Desktop فمجلد دعم التطبيق على macOS وLinux وWindows.
~/.cursor/mcp.jsonديال Cursor.~/.codeium/windsurf/mcp_config.jsonديال Windsurf على macOS.- إعدادات Cline فمجلد التخزين العام المناسب ديال VS Code.
~/.config/zed/settings.jsonديال Zed على macOS وLinux.- ملفات على مستوى المشروع بحال
.vscode/mcp.jsonو.cursor/mcp.jsonو.mcp.jsonوmcp.json.
إلا بغيتي نطاق تدقيق واضح ويمكن التنبؤ به، دوز ملفات الإعدادات المحددة بالضبط بلا ما تعتمد على الاكتشاف.
مراجعة قواعد الكشف
استعمل أمر القواعد باش تعرض الفحوصات المتاحة:
mcp-audit rulesالقواعد المدمجة كتضم:
- MAT-001: أسرار OpenAI أو Anthropic أو GitHub أو AWS أو Slack أو Google أو المفاتيح الخاصة المكتوبة مباشرة فمتغيرات البيئة ديال الخادم.
- MAT-002: متغيرات البيئة الحساسة ديال المضيف اللي كتمرّر لعملية الخادم.
- MAT-003: حزم
npxأوuvxأوpipxبلا إصدار مثبت، واللي تقدر تسبب مخاطر سحب البساط وسلسلة التوريد. - MAT-004: مخرجات
curlأوwgetاللي كتدوز لـ shell. - MAT-005: أوامر خطيرة بحال
rm -rfأوsudoأوchmod 777أوeval. - MAT-006: أغلفة shell باستعمال
-cاللي كتزيد التعرض لحقن الأوامر. - MAT-007: خوادم الملفات اللي الجذر ديالها هو
/أو~أو$HOME. - MAT-008: خوادم MCP البعيدة اللي كتستعمل HTTP بلا تشفير.
- MAT-009: خوادم MCP البعيدة اللي ما عندهاش مصادقة مكوّنة.
- MAT-010: مؤشرات التعليمات المخفية فأوصاف الأدوات، واللي تقدر تشير لتسميم الأدوات.
- MAT-011: أدوات مدمّرة محطوطة فلائحة الموافقة الأوتوماتيكية.
- MAT-012: صلاحيات wildcard باستعمال
*.
إنشاء تقارير JSON وSARIF
استعمل JSON ملي كيكون خاص سكريبت آخر ولا مسار أمني يستهلك النتائج:
mcp-audit scan --format json --output report.jsonبالنسبة لـ GitHub Code Scanning والأنظمة الأخرى المتوافقة مع SARIF، ولّد ملف SARIF 2.1.0:
mcp-audit scan --format sarif --output results.sarifهاد الصيغ مفيدة ملي ما كيكونش خرج الطرفية كافي، بحال فالتدقيقات المبرمجة، ولوحات المراقبة، وفحوصات طلبات الدمج، ولا فالتقارير الأمنية المركزية.
خلّي عمليات البناء تفشل ملي كاينة نتائج خطيرة
استعمل --fail-on باش يخلي الأمر يرجّع حالة فشل ملي النتائج كتساوي ولا كتفوت عتبة الخطورة المحددة:
mcp-audit scan --fail-on highرموز الخروج الموثقة هي:
- 0: سالا الفحص بلا نتائج كتساوي ولا كتفوت العتبة المحددة.
- 1: كاينة نتيجة وحدة ولا أكثر وصلات للعتبة المحددة ولا فاتتها.
- 2: وقع خطأ فاستعمال الأمر، بحال ملف ناقص، أو خطأ فالتفسير، أو خيار غير صالح.
دمج التدقيق مع GitHub Actions
تقدر تدير تدقيق لملفات MCP ديال المشروع مع كل push وpull request، ومن بعد ترفع النتائج لتبويب Security ديال GitHub:
name: MCP Security Audit
on: [push, pull_request]
permissions:
security-events: write
jobs:
mcp-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git
- name: Audit MCP configs
run: mcp-audit scan .vscode/mcp.json .cursor/mcp.json --format sarif --output results.sarif
- name: Upload to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarifهاد الـ workflow كيعطي الصلاحية security-events: write، كيفحص ملفات الإعدادات المحددة، وكيرفع ملف SARIF اللي تولّد باستعمال إجراء CodeQL ديال GitHub.
استعمال متقدم ونصائح للإصلاح
دير التدقيق قبل ما تسمح للسيرفر يخدم
دير تدقيق كل مرة كتزيد ولا كتحدّث إعدادات سيرفر MCP. هاد الشي مهم بزاف خصوصاً للإدخالات اللي كتستعمل مشغلات الحزم بحال npx ولا uvx، حيث الحزم اللي ما مربوطة حتى بإصدار محدد تقدر تتبدل بين تشغيل وآخر.
رد بالك للنتائج الحرجة
النتائج الحرجة كتشمل الأسرار المكتوبة مباشرة فالكود، ومثبتات pipe-to-shell، والمؤشرات ديال تسميم الأدوات. نقل بيانات الاعتماد المكشوفة لمدير الأسرار وبدّلها فوراً. نزّل سكريبتات التثبيت وراجعها، وثبّت بصماتها، ونفّذ نسخاً محلية تمت مراجعتها بلا ما تمرّر المحتوى البعيد مباشرة للـ shell.
نقص من الصلاحيات
قيّد سيرفرات الملفات بأصغر مجلد مطلوب، بلا ما تستعمل / ولا ~ ولا $HOME. بدّل الصلاحيات العامة بصلاحيات محددة بدقة، وراجع الأدوات المدمرة قبل ما تحطها فـ لائحة الموافقة التلقائية.
حمي السيرفرات البعيدة
فضّل النقل الآمن على HTTP غير المشفّر، وفعّل المصادقة للسيرفرات البعيدة ديال MCP. الماسح كيكشف النقل غير الآمن وغياب المصادقة، باش ما يبقاش الولوج البعيد مكشوفاً بشكل افتراضي.
استعمل محرك القواعد كنقطة انطلاق
المشروع كيوصف محرك القواعد ديالو بأنه قابل للتوسيع: إضافة قاعدة جديدة كتحتاج غير لدالة صغيرة. إلا كانت عند المؤسسة ديالك متطلبات أمنية إضافية لـ MCP، راجع إرشادات المساهمة فالمستودع قبل ما تطبّق قاعدة وتساهم بها.
الخلاصة
mcp-audit-tool كيوفّر فحصاً أمنياً أولياً وعملياً لإعدادات عملاء MCP. ثبّتو باستعمال pipx، وفحّص الملفات المكتشفة ولا المختارة بشكل صريح، وراجع النقطة وإرشادات الإصلاح، وصدّر JSON ولا SARIF ملي كتدمجو مع الأتمتة. إضافة الفحص لـ CI كتعاون تكتاشف تغييرات MCP غير الآمنة قبل ما يقدر المساعد الذكي ينفذها.
