التوثيق · MCP
خادم vetkit MCP
زوّد وكيل البرمجة بمدقق للكود. يتيح خادم vetkit MCP لأي عميل يدعم بروتوكول سياق النموذج (MCP) عبر stdio ربط المستودعات وتشغيل التدقيق وقراءة النتائج والتقارير.
MCP معيار مفتوح. لإعداده، عرّف خادمًا محليًا باسم vetkit يستخدم stdio وفق التعريف أدناه، ثم اتبع تعليمات عميلك؛ إذ تختلف بنية ملف الإعداد بين العملاء. لا يقتصر التكامل على Claude. ولا يمكن للبرامج العميلة التي لا تدعم إلا خوادم HTTP/SSE البعيدة الاتصال مباشرةً، لأن vetkit لا يوفّر نقطة نهاية MCP بعيدة.
{ "command": "npx", "args": [ "-y", "@vetkit/mcp" ], "env": { "VETKIT_API_KEY": "<your-api-key>" }}ثم اطلب من وكيلك مثلًا: «دقّق acme/payments-api وأخبرني بما ينبغي إصلاحه أولًا.» أعد تحميل العميل وتأكد من ظهور vetkit_list_repos في قائمة أدواته.
المتطلبات
- Node.js بالإصدار 20.3 أو أحدث، مع إتاحة
npxضمنPATH. - حساب vetkit مع تثبيت تطبيق GitHub على المستودعات التي تريد تدقيقها.
- مفتاح API من vetkit؛ توضحه الخطوة التالية.
أنشئ مفتاح API
- افتح Settings → API keys في تطبيق vetkit. يستطيع مالكو المؤسسات والمسؤولون فقط إدارة المفاتيح.
- سمِّ المفتاح بحسب مكان استخدامه، مثل «MCP — الحاسوب المحمول».
- اختر نطاقات الصلاحيات. لإتاحة جميع وظائف MCP، اختر
repos:readوrepos:writeوaudits:readوaudits:writeوfindings:readوreports:read. لوكيل بصلاحية القراءة فقط، استبعدrepos:writeوaudits:write. - يمكنك اختياريًا تحديد انتهاء الصلاحية وحد الطلبات في الدقيقة؛ الافتراضي 60، والحد الأقصى 600.
- انسخ القيمة السرية، التي تبدأ مثلًا بـ
vk_live_…. تُعرض مرة واحدة فقط؛ ويحتفظ vetkit ببصمة تجزئتها.
تجديد المفاتيح وإبطالها
401 API_KEY_REVOKED.التثبيت
Cursor
ادمج إعداد vetkit أدناه في ~/.cursor/mcp.json للاستخدام العام، أو في .cursor/mcp.json داخل المشروع. لا تُضف إلى سجل Git ملف إعداد مشروع يحتوي على مفتاحك.
{ "mcpServers": { "vetkit": { "command": "npx", "args": [ "-y", "@vetkit/mcp" ], "env": { "VETKIT_API_KEY": "<your-api-key>" } } }}VS Code / GitHub Copilot
ادمج هذا الإعداد في .vscode/mcp.json مع الإبقاء على خوادمك الحالية. يستخدم VS Code / GitHub Copilot الحقل servers بدلًا من mcpServers. شغّل vetkit ووافق عليه من قائمة خوادم MCP. استبدل القيمة النائبة بالمفتاح، ولا تُضف إلى سجل Git ملف إعداد يحتوي على قيمته السرية.
{ "servers": { "vetkit": { "type": "stdio", "command": "npx", "args": [ "-y", "@vetkit/mcp" ], "env": { "VETKIT_API_KEY": "<your-api-key>" } } }}Codex
أضف أقسام TOML هذه إلى ~/.codex/config.toml دون استبدال الإعدادات الحالية. يشترك Codex CLI وإضافة بيئة التطوير في هذا الملف. استبدل القيمة النائبة بالمفتاح، وأعد تشغيل العميل، وتحقّق باستخدام codex mcp list. حافظ على خصوصية الملف.
[mcp_servers.vetkit]command = "npx"args = ["-y", "@vetkit/mcp"] [mcp_servers.vetkit.env]VETKIT_API_KEY = "<your-api-key>"Claude Code
claude mcp add --transport stdio vetkit -e 'VETKIT_API_KEY=<your-api-key>' -- npx -y @vetkit/mcpأضف --scope user لإتاحة vetkit في جميع مشاريعك بدلًا من المشروع الحالي فقط.
Claude Desktop
افتح Settings → Developer → Edit Config وأضف vetkit إلى claude_desktop_config.json، ثم أعد تشغيل Claude Desktop:
{ "mcpServers": { "vetkit": { "command": "npx", "args": [ "-y", "@vetkit/mcp" ], "env": { "VETKIT_API_KEY": "<your-api-key>" } } }}عملاء MCP الآخرون
يمكن استخدام أي عميل يستطيع تشغيل خادم stdio: شغّل npx -y @vetkit/mcp مع المتغير VETKIT_API_KEY في بيئته. يمكنك أيضًا تثبيت الحزمة على مستوى النظام وتشغيل الملف التنفيذي vetkit-mcp مباشرةً.
npm install -g @vetkit/mcpVETKIT_API_KEY=vk_live_... vetkit-mcpالإعداد
يُضبط الخادم بالكامل باستخدام متغيرات البيئة.
| متغير | مطلوب | الوصف |
|---|---|---|
VETKIT_API_KEY | نعم | مفتاح API، بصيغة vk_live_… أو vk_test_…. |
VETKIT_API_URL | لا | عنوان URL الأساسي لـ API. الافتراضي https://api.vetkit.dev. يجب استخدام HTTPS؛ ولا يُقبل HTTP العادي إلا مع localhost. |
VETKIT_ORG_ID | لا | معرّف المؤسسة. ينتمي كل مفتاح API إلى مؤسسة واحدة تُستخدم افتراضيًا، لذا نادرًا ما تحتاج إلى هذا المتغير. |
VETKIT_APP_URL | لا | عنوان تطبيق الويب المستخدم في روابط التدقيق. الافتراضي https://app.vetkit.dev. |
الأدوات
تُعيد كل أداة نصًا مقروءًا، وتُعيد جميع الأدوات عدا vetkit_get_report محتوى منظّمًا محدد الأنواع أيضًا. تحمل الأدوات توصيفات MCP التي تتيح للعملاء الموافقة تلقائيًا على أدوات القراءة فقط. لا تحذف أي أداة بيانات.
vetkit_list_repos
تعرض المستودعات المرتبطة بمؤسستك، مع تقييم آخر تدقيق ودرجته.للقراءة فقطنطاقات الصلاحيات: repos:read
limitnumber- عدد العناصر في الصفحة، من 1 إلى 100. الافتراضي 25.
cursorstring- قيمة nextCursor من الصفحة السابقة.
| المعامل | النوع | الوصف |
|---|---|---|
limit | number | عدد العناصر في الصفحة، من 1 إلى 100. الافتراضي 25. |
cursor | string | قيمة nextCursor من الصفحة السابقة. |
{ "limit": 10 }vetkit_connect_repo
تربط مستودع GitHub. إذا لم يكن تطبيق vetkit لـ GitHub مثبّتًا لدى مالك المستودع، تُعيد النتيجة installation_required مع رابط تثبيت لفتحه في المتصفح.تُجري تغييراتنطاقات الصلاحيات: repos:write
urlstringمطلوب- رابط GitHub بصيغة https://github.com/owner/name أو owner/name.
| المعامل | النوع | الوصف |
|---|---|---|
urlمطلوب | string | رابط GitHub بصيغة https://github.com/owner/name أو owner/name. |
{ "url": "https://github.com/acme/payments-api" }vetkit_run_audit
تبدأ تدقيقًا وتنتظر اكتماله افتراضيًا مع إرسال إشعارات بالتقدم، وتربط المستودع أولًا عند الحاجة. تُعيد التقييم العام وتقييم كل مجموعة شُغّلت والدرجة وأعداد النتائج.تُجري تغييراتنطاقات الصلاحيات: repos:read, audits:write, audits:read (+ repos:write للربط التلقائي)
repostringمطلوب- معرّف المستودع، أو owner/name، أو رابط GitHub، بما في ذلك /tree/<branch>.
refstring- فرع أو وسم أو SHA لـ commit. يُستخدم المرجع المحدد في الرابط افتراضيًا، ثم الفرع الافتراضي إن لم يوجد.
suitesstring[]- أي من security وquality وsustainability وai-risks وproduction. تُشغّل جميع فحوصات المجموعات المختارة المتاحة على الخادم. الافتراضي هو إعداد المستودع.
analyzersstring[]- معرّفات الفحوصات المطلوب تشغيلها تحديدًا؛ راجع قسم الفحوصات أدناه. تتجاوز هذه القيمة اختيار suites. يجب اختيار فحص واحد على الأقل غير ai-signal.
excludeAssetsboolean- تخطّي تنزيل الصور والفيديو والصوت والنماذج ثلاثية الأبعاد والخطوط وملفات التصميم وملفات PDF. الافتراضي هو إعداد المستودع.
waitboolean- انتظار حالة نهائية. الافتراضي true.
timeoutSecondsnumber- أقصى مدة انتظار بالثواني، من 10 إلى 1800. الافتراضي 600. يستمر التدقيق بعد انتهاء مهلة الانتظار.
| المعامل | النوع | الوصف |
|---|---|---|
repoمطلوب | string | معرّف المستودع، أو owner/name، أو رابط GitHub، بما في ذلك /tree/<branch>. |
ref | string | فرع أو وسم أو SHA لـ commit. يُستخدم المرجع المحدد في الرابط افتراضيًا، ثم الفرع الافتراضي إن لم يوجد. |
suites | string[] | أي من security وquality وsustainability وai-risks وproduction. تُشغّل جميع فحوصات المجموعات المختارة المتاحة على الخادم. الافتراضي هو إعداد المستودع. |
analyzers | string[] | معرّفات الفحوصات المطلوب تشغيلها تحديدًا؛ راجع قسم الفحوصات أدناه. تتجاوز هذه القيمة اختيار suites. يجب اختيار فحص واحد على الأقل غير ai-signal. |
excludeAssets | boolean | تخطّي تنزيل الصور والفيديو والصوت والنماذج ثلاثية الأبعاد والخطوط وملفات التصميم وملفات PDF. الافتراضي هو إعداد المستودع. |
wait | boolean | انتظار حالة نهائية. الافتراضي true. |
timeoutSeconds | number | أقصى مدة انتظار بالثواني، من 10 إلى 1800. الافتراضي 600. يستمر التدقيق بعد انتهاء مهلة الانتظار. |
{ "repo": "acme/payments-api", "ref": "main", "suites": ["security"] }vetkit_list_checks
تعرض جميع الفحوصات بحسب المجموعة، مع الأداة وإصدارها ومدى إتاحتها على الخادم والفحوصات التي تُشغّل افتراضيًا.للقراءة فقطنطاقات الصلاحيات: audits:read
لا توجد معاملات.
| المعامل | النوع | الوصف |
|---|---|---|
| لا توجد معاملات. | ||
{}vetkit_get_audit
تُعيد حالة تدقيق واحد، والتقييم العام وتقييم كل مجموعة، والدرجة، وأعداد النتائج، وتقدم كل فحص، بما يشمل مقاييس مثل نسبة الكود المكرر ومتوسط التعقيد ونسبة الاختبارات إلى الكود ومدى الاعتماد على عدد محدود من المساهمين (bus factor).للقراءة فقطنطاقات الصلاحيات: audits:read
auditIduuidمطلوب- معرّف التدقيق الذي أعادته vetkit_run_audit.
| المعامل | النوع | الوصف |
|---|---|---|
auditIdمطلوب | uuid | معرّف التدقيق الذي أعادته vetkit_run_audit. |
{ "auditId": "0192f3a4-5b6c-7d8e-9f01-23456789abcd" }vetkit_list_findings
تعرض نتائج التدقيق بدءًا بالأعلى خطورة. تُعيد جدولًا نصيًا موجزًا وتفاصيل كاملة في محتوى منظّم، تشمل الرسالة ومقتطف الكود بعد حجب الأسرار والإصلاح المقترح والمراجع.للقراءة فقطنطاقات الصلاحيات: findings:read
auditIduuidمطلوب- معرّف التدقيق المطلوب قراءة نتائجه.
severitystring[]- CRITICAL أو HIGH أو MEDIUM أو LOW أو INFO.
suitestring- SECURITY أو QUALITY أو SUSTAINABILITY أو AI_RISKS أو PRODUCTION؛ لعرض نتائج المجموعة المحددة فقط.
categorystring[]- SECURITY أو SECRETS أو DEPENDENCIES أو INFRASTRUCTURE أو QUALITY أو MAINTAINABILITY أو DUPLICATION أو TESTING أو DOCUMENTATION أو HYGIENE أو LICENSES أو DEPENDENCY_HEALTH أو ACTIVITY أو HALLUCINATION أو UNFINISHED_CODE أو VIBE_STACK أو LLM_SECURITY أو RESILIENCE أو DATABASE أو OPERABILITY أو AI_SIGNAL.
statusstring- NEW للنتائج التي ظهرت منذ التدقيق السابق، أو EXISTING للنتائج الموجودة مسبقًا.
limitnumber- عدد العناصر في الصفحة، من 1 إلى 100. الافتراضي 25.
cursorstring- قيمة nextCursor من الصفحة السابقة.
| المعامل | النوع | الوصف |
|---|---|---|
auditIdمطلوب | uuid | معرّف التدقيق المطلوب قراءة نتائجه. |
severity | string[] | CRITICAL أو HIGH أو MEDIUM أو LOW أو INFO. |
suite | string | SECURITY أو QUALITY أو SUSTAINABILITY أو AI_RISKS أو PRODUCTION؛ لعرض نتائج المجموعة المحددة فقط. |
category | string[] | SECURITY أو SECRETS أو DEPENDENCIES أو INFRASTRUCTURE أو QUALITY أو MAINTAINABILITY أو DUPLICATION أو TESTING أو DOCUMENTATION أو HYGIENE أو LICENSES أو DEPENDENCY_HEALTH أو ACTIVITY أو HALLUCINATION أو UNFINISHED_CODE أو VIBE_STACK أو LLM_SECURITY أو RESILIENCE أو DATABASE أو OPERABILITY أو AI_SIGNAL. |
status | string | NEW للنتائج التي ظهرت منذ التدقيق السابق، أو EXISTING للنتائج الموجودة مسبقًا. |
limit | number | عدد العناصر في الصفحة، من 1 إلى 100. الافتراضي 25. |
cursor | string | قيمة nextCursor من الصفحة السابقة. |
{ "auditId": "0192f3a4-…", "severity": ["CRITICAL", "HIGH"] }vetkit_suggest_fix
يقترح تصحيحًا مصغرًا لنتيجة في الشيفرة (SAST، أسرار، تطبيق LLM، IaC) باستخدام مزوّد الذكاء الاصطناعي الذي حفظته مؤسستك في vetkit، أو إصلاحًا من القاعدة عندما يوفّره المحلّل. يعيد unified diff وشرحًا ومستوى ثقة وحالة تحقق. لا يُرسل إلى المزوّد سوى مقطع منقّح من نحو 60 سطرًا. لا يُكتب أي شيء: لا فرع ولا commit ولا pull request. يتطلب مفتاحًا أنشأه مسؤول في المؤسسة.للقراءة فقطنطاقات الصلاحيات: findings:write
findingIduuidمطلوب- معرّف نتيجة في الشيفرة من vetkit_list_findings.
providerstring- مزوّد الذكاء الاصطناعي المحفوظ المراد استخدامه. الافتراضي هو أول اتصال تم التحقق منه.
| المعامل | النوع | الوصف |
|---|---|---|
findingIdمطلوب | uuid | معرّف نتيجة في الشيفرة من vetkit_list_findings. |
provider | string | مزوّد الذكاء الاصطناعي المحفوظ المراد استخدامه. الافتراضي هو أول اتصال تم التحقق منه. |
{ "findingId": "0193b2c4-…" }vetkit_triage_findings
يسأل مزوّد الذكاء الاصطناعي المحفوظ لدى مؤسستك عمّا إذا كانت حتى 20 نتيجة من تدقيق ما إيجابيات صحيحة أم كاذبة على الأرجح. تحصل كل نتيجة على حكم ودرجة ثقة وتعليل قصير يقتبس سطرًا من الشيفرة المصدرية. الأحكام استشارية: تعدّل الأولوية لكنها لا تُخفي أي نتيجة ولا تغيّر الدرجة أبدًا. يتطلب خطة مدفوعة.تُجري تغييراتنطاقات الصلاحيات: findings:write
auditIduuidمطلوب- التدقيق الذي تنتمي إليه النتائج.
findingIdsuuid[]مطلوب- حتى 20 معرّف نتيجة من vetkit_list_findings.
| المعامل | النوع | الوصف |
|---|---|---|
auditIdمطلوب | uuid | التدقيق الذي تنتمي إليه النتائج. |
findingIdsمطلوب | uuid[] | حتى 20 معرّف نتيجة من vetkit_list_findings. |
{ "auditId": "0192f3a4-…", "findingIds": ["0193b2c4-…"] }vetkit_get_report
تُعيد تقرير تدقيق مكتمل بصيغة Markdown مقروءة، أو ملخص JSON يتضمن درجات المجموعات والفئات والفروق عن التدقيق السابق، أو بصيغة SARIF 2.1.0.للقراءة فقطنطاقات الصلاحيات: reports:read
auditIduuidمطلوب- معرّف التدقيق المطلوب قراءة تقريره.
formatstring- markdown افتراضيًا، أو json أو sarif.
maxCharsnumber- اقتطاع المخرجات عند تجاوز هذا العدد من المحارف، من 2,000 إلى 500,000. الافتراضي 40,000.
| المعامل | النوع | الوصف |
|---|---|---|
auditIdمطلوب | uuid | معرّف التدقيق المطلوب قراءة تقريره. |
format | string | markdown افتراضيًا، أو json أو sarif. |
maxChars | number | اقتطاع المخرجات عند تجاوز هذا العدد من المحارف، من 2,000 إلى 500,000. الافتراضي 40,000. |
{ "auditId": "0192f3a4-…", "format": "markdown" }vetkit_get_standards_report
يربط النتائج المفتوحة لتدقيق ما بـ OWASP Top 10 (2021 أو 2025) أو CWE Top 25 (2024) أو OWASP Top 10 for LLM Applications (2025). تكون كل فئة fail أو pass (لا نتائج مربوطة من فحوصات قادرة على اكتشافها) أو not covered. أداة مساعدة للربط، وليست شهادة امتثال.للقراءة فقطنطاقات الصلاحيات: reports:read, findings:read
auditIduuidمطلوب- التدقيق المراد ربطه.
standardstringمطلوب- owasp-top10-2021 أو owasp-top10-2025 أو cwe-top25-2024 أو owasp-llm-top10-2025.
| المعامل | النوع | الوصف |
|---|---|---|
auditIdمطلوب | uuid | التدقيق المراد ربطه. |
standardمطلوب | string | owasp-top10-2021 أو owasp-top10-2025 أو cwe-top25-2024 أو owasp-llm-top10-2025. |
{ "auditId": "0192f3a4-…", "standard": "owasp-top10-2021" }vetkit_check_packages
استدعِه قبل تثبيت أي اعتمادية. يفحص حتى 50 حزمة من منظومة واحدة مقابل السجل العام وتنبيهات OSV (بما فيها الحزم الخبيثة المعروفة) وCISA KEV وسياسة مؤسستك، ويعيد allow أو warn أو block مع الأسباب.للقراءة فقطنطاقات الصلاحيات: agent:check
ecosystemstringمطلوب- npm أو pypi أو cargo أو go أو rubygems أو nuget أو maven. استخدم pypi مع pip وuv.
packagesobject[]مطلوب- حتى 50 حزمة: اسم (في Maven بصيغة group:artifact، وفي Go مسار الوحدة) وإصدار دقيق اختياري.
| المعامل | النوع | الوصف |
|---|---|---|
ecosystemمطلوب | string | npm أو pypi أو cargo أو go أو rubygems أو nuget أو maven. استخدم pypi مع pip وuv. |
packagesمطلوب | object[] | حتى 50 حزمة: اسم (في Maven بصيغة group:artifact، وفي Go مسار الوحدة) وإصدار دقيق اختياري. |
{ "ecosystem": "npm", "packages": [{ "name": "left-pad", "version": "1.3.0" }] }vetkit_scan_changes
استدعِه قبل الـ commit. يفحص في الذاكرة حتى 30 ملفًا معدّلًا (512 كيلوبايت إجمالًا) بحثًا عن أسرار بصيغة مطابقة تمامًا، وإعدادات وكلاء خطرة وتعليمات مخفية، وشيفرة غير مكتملة، واستيراد حزم غير موجودة. لا يُخزَّن أو يُشغَّل أي شيء.للقراءة فقطنطاقات الصلاحيات: agent:check
filesobject[]مطلوب- الملفات المعدّلة: مسار نسبي داخل المستودع مثل src/app.ts والمحتوى الكامل بترميز UTF-8.
| المعامل | النوع | الوصف |
|---|---|---|
filesمطلوب | object[] | الملفات المعدّلة: مسار نسبي داخل المستودع مثل src/app.ts والمحتوى الكامل بترميز UTF-8. |
{ "files": [{ "path": "src/config.ts", "content": "…" }] }حواجز حماية للوكلاء
تتيح أداتان لوكيل البرمجة فحص عمله قبل التنفيذ: vetkit_check_packages قبل تثبيت اعتمادية، وvetkit_scan_changes قبل الـ commit. تحتاج كلتاهما إلى مفتاح API بنطاق agent:check.
تعيد كلتاهما حكمًا allow أو warn أو block مع الأسباب. Block: الحزمة غير موجودة (اسم مُختلَق أو من نوع slopsquatting)، أو لها سجل حزمة خبيثة معروفة في OSV، أو لها تنبيه في CISA KEV عندما تحظر سياستك الثغرات المستغلّة المعروفة، أو تستخدم ترخيصًا من قائمة الحظر لدى مؤسستك، أو يحتوي التغيير على سرّ مُضاف إلى الشيفرة. Warn: إصدار غير منشور، أو إصدار حديث جدًا، أو انتشار محدود، أو تنبيه بخطورة تساوي الحد الأدنى في سياستك أو تتجاوزه، أو نتائج أخرى في الشيفرة. تُدرج المصادر التي يتعذر الوصول إليها كتحذيرات؛ وتُتخطى تلك الفحوصات ولا تُخمَّن أبدًا.
خطّاف Claude Code
يقرأ vetkit-mcp hook pre-tool-use مدخلات PreToolUse من Claude Code، ويعثر على عمليات تثبيت الحزم في أوامر Bash، ويخرج بالرمز 2 عندما يحظر vetkit حزمة، فيوقف Claude Code الأمر ويعرض السبب. وإلا فإنه يخرج بالرمز 0 ويطبع أي تحذيرات. عند الأخطاء لا يحظر شيئًا: دون VETKIT_API_KEY، أو عند تعذّر الوصول إلى API، يحذّر ويترك الأمر يعمل. أضفه إلى .claude/settings.json:
{ "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "npx -y @vetkit/mcp hook pre-tool-use", "timeout": 30 } ] } ] }}اضبط VETKIT_API_KEY في الصدفة على مفتاح بنطاق agent:check، لا في ملف يُضاف إلى المستودع.
Cursor والعملاء الآخرون
vetkit_check_packages قبل التثبيت وvetkit_scan_changes قبل الـ commit. تحتوي صفحة MCP في تطبيق vetkit على قاعدة جاهزة لـ Cursor.الفحوصات
تُنظّم الفحوصات في خمس مجموعات، ولكل مجموعة تقييم مستقل. أوزان الدرجة الإجمالية هي: الأمان 43%، وجودة الكود 18%، والاستدامة 11%، ومخاطر كود الذكاء الاصطناعي 13%، والجاهزية للإنتاج 15%. تُحتسب المجموعات التي شُغّلت فقط، وتُعاد موازنة أوزانها؛ فدون الجاهزية للإنتاج تصبح الأوزان 50% و22% و13% و15% على الترتيب، وعند تشغيل الأمان وجودة الكود فقط تصبح 70% و30%. مرّر معرّفات الفحوصات في analyzers، أو اختر مجموعة عبر suites.
الأمان
- معرّف الفحص:
postureملفات .env والمفاتيح الخاصة ومخازن المفاتيح المضافة إلى المستودع، وملفات تعريف الحزم بلا ملف قفل، وغياب سياسة أمان.الفئة: SECRETS, DEPENDENCIES, SECURITY - معرّف الفحص:
gitleaksمفاتيح API ورموز الوصول وكلمات المرور والمفاتيح الخاصة في ملفات الكود المصدري.الفئة: SECRETS - معرّف الفحص:
secrets-historyبيانات اعتماد أُضيفت إلى المستودع ثم حُذفت، ولا تزال قابلة للاسترجاع من سجل Git. فحص اختياري.الفئة: SECRETS - معرّف الفحص:
osvثغرات CVE المعروفة، والحزم الخبيثة، والتنبيهات عن ثغرات مستغلة فعليًا ضمن CISA KEV في التبعيات ذات الإصدارات المثبّتة بملفات القفل.الفئة: DEPENDENCIES - معرّف الفحص:
vendoredمكتبات JavaScript ذات ثغرات معروفة منسوخة إلى المستودع.الفئة: DEPENDENCIES - معرّف الفحص:
eolبيئات التشغيل وأطر العمل والصور الأساسية للحاويات التي انتهى دعمها.الفئة: DEPENDENCIES - معرّف الفحص:
supply-chainالتلاعب بملفات القفل، وسجلات الحزم غير الآمنة، وسكربتات التثبيت الخطرة، وهجمات Trojan Source، والملفات التنفيذية المضافة إلى المستودع.الفئة: DEPENDENCIES, SECURITY - معرّف الفحص:
sastقواعد أمان كود محددة للغات المدعومة وإعدادات الخادم والجوال وshell غير الآمنة.الفئة: SECURITY - معرّف الفحص:
sast-communityحزم قواعد إضافية من المجتمع بتراخيص مرنة. فحص اختياري وتجريبي.الفئة: SECURITY - معرّف الفحص:
iacالإعدادات الخاطئة في Terraform وCloudFormation وKubernetes وHelm وDockerfile باستخدام Trivy.الفئة: INFRASTRUCTURE - معرّف الفحص:
workflowsحقن السكربتات في GitHub Actions، والصلاحيات المفرطة، والإجراءات غير المثبّتة على إصدارات محددة، وهجمات pwn requests، باستخدام zizmor.الفئة: INFRASTRUCTURE
جودة الكود
- معرّف الفحص:
code-smellsأخطاء يجري تجاهلها، وتعليمات تصحيح أخطاء متروكة، ومقارنات مشبوهة، وأنماط كود معرّضة للأخطاء.الفئة: QUALITY - معرّف الفحص:
complexityدوال ذات تعقيد دوري مرتفع، أو تداخل عميق، أو أجسام طويلة، أو قوائم طويلة من المعاملات.الفئة: MAINTAINABILITY - معرّف الفحص:
duplicationكتل كود منسوخة بين الملفات.الفئة: DUPLICATION - معرّف الفحص:
testsاختبارات غائبة أو قليلة، وملفات كبيرة غير مختبَرة، واختبارات في وضع التشغيل الحصري أو التجاهل، واختبارات بلا تحقّقات، ومسارات CI لا تشغّل الاختبارات.الفئة: TESTING - معرّف الفحص:
docsملفات README بلا تعليمات إعداد أو استخدام، وواجهات API عامة غير موثّقة، وحزم منشورة بلا سجل تغييرات.الفئة: DOCUMENTATION - معرّف الفحص:
hygieneوجود README وLICENSE وCI و.gitignore، ورصد مخرجات البناء والتبعيات المنسوخة إلى المستودع والملفات الكبيرة.الفئة: HYGIENE
الاستدامة
- معرّف الفحص:
licensesتبعيات بتراخيص الحقوق المتروكة مثل GPL وAGPL، أو تراخيص مقيّدة الاستخدام أو مجهولة، تتعارض مع ترخيص المشروع.الفئة: LICENSES - معرّف الفحص:
dep-healthتبعيات مباشرة أُعلن إيقاف استخدامها، أو تتأخر بإصدارين رئيسيين أو أكثر، أو لم تعد تصدر لها تحديثات.الفئة: DEPENDENCY_HEALTH - معرّف الفحص:
activityمستودعات متوقفة عن التحديث، ومخاطر الاعتماد على مسؤول صيانة واحد (bus factor)، وملفات كبيرة كثيرة التغيير.الفئة: ACTIVITY
مخاطر كود الذكاء الاصطناعي
- معرّف الفحص:
hallucinated-depsتبعيات وعمليات استيراد غير موجودة في سجلات الحزم العامة قد تُستغل في slopsquatting، وإصدارات لم تُنشر، وحزم نُشرت لأول مرة خلال آخر 30 يومًا، وعمليات استيراد غير مدرجة في package.json.الفئة: HALLUCINATION - معرّف الفحص:
ai-slopتنفيذات غير مكتملة، وتعليقات تطلب إضافة «بقية الكود»، وبيانات تجريبية وبيانات اعتماد مؤقتة في مسارات الإنتاج، وملفات مكررة تحمل لاحقة النسخ، وتعطيل شامل لفحوصات الأنواع أو قواعد lint.الفئة: UNFINISHED_CODE - معرّف الفحص:
vibe-stackجداول Supabase بلا أمان على مستوى الصف، وأسرار في متغيرات البيئة العامة، ومسارات API بلا مصادقة، وتحقّقات من صلاحيات الوصول تُنفّذ في العميل فقط.الفئة: VIBE_STACK - معرّف الفحص:
llm-appمسارات حقن التوجيهات، ووصول مخرجات LLM إلى تنفيذ الكود أو SQL أو HTML، ومفاتيح API للنماذج في كود العميل، واستدعاءات بلا حدود، وإعدادات وكلاء ذكاء اصطناعي خطرة.الفئة: LLM_SECURITY - معرّف الفحص:
ai-signalمؤشر استدلالي للكتابة بمساعدة الذكاء الاصطناعي. تجريبي وللمعلومات فقط، ولا يؤثر في التقييم مطلقًا. لا يعمل إلا عند تفعيله على الخادم.الفئة: AI_SIGNAL
الجاهزية للإنتاج
- معرّف الفحص:
resilienceاستدعاءات HTTP صادرة بلا مهلة، واستدعاءات تحجب التنفيذ في مسار الطلب وداخل الدوال غير المتزامنة، وعملاء قواعد بيانات يُنشؤون لكل طلب.الفئة: RESILIENCE - معرّف الفحص:
data-accessاستعلامات داخل الحلقات (N+1)، ونقاط نهاية للقوائم بلا تقسيم إلى صفحات، ومفاتيح خارجية بلا فهارس، ومزامنة مخطط قاعدة البيانات عند بدء التشغيل التي قد تحذف البيانات.الفئة: DATABASE - معرّف الفحص:
operabilityخدمات منشورة تستخدم خادم تطوير، أو تتحقق من كلمات المرور بلا تحديد لمعدل محاولات الدخول، أو تفتقر إلى إيقاف تشغيل منظّم أو فحص صحة أو تتبع للأخطاء.الفئة: OPERABILITY
عمليات التدقيق طويلة المدة
تكتمل معظم عمليات التدقيق خلال دقائق قليلة. تستعلم vetkit_run_audit كل بضع ثوانٍ وترسل إشعارات بالتقدم أثناء الانتظار. تُلغي بعض البرامج العميلة استدعاءات الأدوات بعد مدة محددة؛ فمثلًا يراعي Claude Code المتغير MCP_TOOL_TIMEOUT. إذا كان عميلك يفعل ذلك، فمرّر "wait": false واستعلم باستخدام vetkit_get_audit. عند انتهاء timeoutSeconds، يستمر التدقيق وتُعيد الأداة "outcome": "still_running".
الأخطاء
تُعاد أخطاء API كنتائج أدوات تحمل isError: true، وتتضمن حالة HTTP ورمز خطأ vetkit والرسالة ومعرّف الطلب وإرشادًا للمساعدة.
401 API_KEY_INVALIDأوAPI_KEY_REVOKEDأوAPI_KEY_EXPIRED— أنشئ مفتاحًا أو جدّده، وحدّثVETKIT_API_KEY، ثم أعد تشغيل الخادم.403 INSUFFICIENT_SCOPE— يفتقر المفتاح إلى نطاق صلاحيات تتطلبه الأداة.409 AUDIT_CONCURRENCY_LIMITأو429 RATE_LIMITED— انتظر ثم أعد المحاولة. يتضمن الإرشاد مدة الانتظار عندما تُرسل API الترويسةRetry-After.422 ANALYZER_UNAVAILABLE— أحد الفحوصات المحددة فيanalyzersغير متاح على هذا الخادم. استدعِvetkit_list_checks، أو مرّرsuitesلاختيار الفحوصات المتاحة فقط.- تُعاد
INSTALLATION_REQUIREDكنتيجة عادية تتضمن رابط تثبيت تطبيق GitHub، وليست خطأً.
ملاحظات الأمان
- عامل مفتاح API ككلمة مرور. يتيح الوصول إلى عمليات تدقيق مؤسستك ونتائجها، بما فيها المستودعات الخاصة. احفظه في إعداد
envلعميل MCP، ولا تضعه في ملفات تُضاف إلى سجل Git. امنحه نطاقات الصلاحيات المطلوبة فقط، وحدّد انتهاء صلاحيته، وأبطله من التطبيق إذا تسرّب. - يُرسل المفتاح إلى
VETKIT_API_URLفقط، في ترويسةAuthorization: Bearerعبر HTTPS. لا يكتبه الخادم في السجلات ولا يدرجه في رسائل الخطأ. - يتواصل الخادم ببروتوكول MCP عبر stdio فقط. لا يفتح أي منافذ شبكة، ويكتب السجلات إلى stderr فقط.
- تُحجب الأسرار من مقتطفات النتائج قبل تخزينها في vetkit، ولا تُعاد قيم الأسرار مطلقًا.
- يأتي نص التقارير والنتائج من المستودع الذي يُدقّق، بما يشمل مسارات الملفات والرسائل. عامله كمدخلات غير موثوق بها، مثل مخرجات أي أداة أخرى؛ فقد يحاول مستودع خبيث تضمين تعليمات تستهدف وكيلك.
تفضّل HTTP مباشرةً؟ كل ما يتيحه خادم MCP متاح عبر REST API.