انتقل إلى المحتوى

التوثيق · MCP

خادم vetkit MCP

زوّد وكيل البرمجة بمدقق للكود. يتيح خادم vetkit MCP لأي عميل يدعم بروتوكول سياق النموذج (MCP) عبر stdio ربط المستودعات وتشغيل التدقيق وقراءة النتائج والتقارير.

MCP معيار مفتوح. لإعداده، عرّف خادمًا محليًا باسم vetkit يستخدم stdio وفق التعريف أدناه، ثم اتبع تعليمات عميلك؛ إذ تختلف بنية ملف الإعداد بين العملاء. لا يقتصر التكامل على Claude. ولا يمكن للبرامج العميلة التي لا تدعم إلا خوادم HTTP/SSE البعيدة الاتصال مباشرةً، لأن vetkit لا يوفّر نقطة نهاية MCP بعيدة.

تعريف خادم محلي يستخدم stdio
{  "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

  1. افتح Settings → API keys في تطبيق vetkit. يستطيع مالكو المؤسسات والمسؤولون فقط إدارة المفاتيح.
  2. سمِّ المفتاح بحسب مكان استخدامه، مثل «MCP — الحاسوب المحمول».
  3. اختر نطاقات الصلاحيات. لإتاحة جميع وظائف MCP، اختر repos:read وrepos:write وaudits:read وaudits:write وfindings:read وreports:read. لوكيل بصلاحية القراءة فقط، استبعد repos:write وaudits:write.
  4. يمكنك اختياريًا تحديد انتهاء الصلاحية وحد الطلبات في الدقيقة؛ الافتراضي 60، والحد الأقصى 600.
  5. انسخ القيمة السرية، التي تبدأ مثلًا بـ vk_live_…. تُعرض مرة واحدة فقط؛ ويحتفظ vetkit ببصمة تجزئتها.

تجديد المفاتيح وإبطالها

عند تجديد المفتاح، تُصدر قيمة سرية جديدة وتظل القديمة صالحة لمدة 24 ساعة لإتاحة تحديث إعداداتك. أما الإبطال فيسري فورًا؛ ويُعيد الطلب التالي 401 API_KEY_REVOKED.

التثبيت

Cursor

ادمج إعداد vetkit أدناه في ~/.cursor/mcp.json للاستخدام العام، أو في .cursor/mcp.json داخل المشروع. لا تُضف إلى سجل Git ملف إعداد مشروع يحتوي على مفتاحك.

~/.cursor/mcp.json
{  "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 ملف إعداد يحتوي على قيمته السرية.

.vscode/mcp.json
{  "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. حافظ على خصوصية الملف.

~/.codex/config.toml
[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:

claude_desktop_config.json
{  "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": 10 }

vetkit_connect_repo

تربط مستودع GitHub. إذا لم يكن تطبيق vetkit لـ GitHub مثبّتًا لدى مالك المستودع، تُعيد النتيجة installation_required مع رابط تثبيت لفتحه في المتصفح.تُجري تغييراتنطاقات الصلاحيات: repos:write
urlstringمطلوب
رابط 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": "acme/payments-api", "ref": "main", "suites": ["security"] }

vetkit_list_checks

تعرض جميع الفحوصات بحسب المجموعة، مع الأداة وإصدارها ومدى إتاحتها على الخادم والفحوصات التي تُشغّل افتراضيًا.للقراءة فقطنطاقات الصلاحيات: audits:read

لا توجد معاملات.

مثال على المعاملات
{}

vetkit_get_audit

تُعيد حالة تدقيق واحد، والتقييم العام وتقييم كل مجموعة، والدرجة، وأعداد النتائج، وتقدم كل فحص، بما يشمل مقاييس مثل نسبة الكود المكرر ومتوسط التعقيد ونسبة الاختبارات إلى الكود ومدى الاعتماد على عدد محدود من المساهمين (bus factor).للقراءة فقطنطاقات الصلاحيات: audits:read
auditIduuidمطلوب
معرّف التدقيق الذي أعادته 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": "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": "0193b2c4-…" }

vetkit_triage_findings

يسأل مزوّد الذكاء الاصطناعي المحفوظ لدى مؤسستك عمّا إذا كانت حتى 20 نتيجة من تدقيق ما إيجابيات صحيحة أم كاذبة على الأرجح. تحصل كل نتيجة على حكم ودرجة ثقة وتعليل قصير يقتبس سطرًا من الشيفرة المصدرية. الأحكام استشارية: تعدّل الأولوية لكنها لا تُخفي أي نتيجة ولا تغيّر الدرجة أبدًا. يتطلب خطة مدفوعة.تُجري تغييراتنطاقات الصلاحيات: findings:write
auditIduuidمطلوب
التدقيق الذي تنتمي إليه النتائج.
findingIdsuuid[]مطلوب
حتى 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": "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": "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": "npm", "packages": [{ "name": "left-pad", "version": "1.3.0" }] }

vetkit_scan_changes

استدعِه قبل الـ commit. يفحص في الذاكرة حتى 30 ملفًا معدّلًا (512 كيلوبايت إجمالًا) بحثًا عن أسرار بصيغة مطابقة تمامًا، وإعدادات وكلاء خطرة وتعليمات مخفية، وشيفرة غير مكتملة، واستيراد حزم غير موجودة. لا يُخزَّن أو يُشغَّل أي شيء.للقراءة فقطنطاقات الصلاحيات: agent:check
filesobject[]مطلوب
الملفات المعدّلة: مسار نسبي داخل المستودع مثل 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:

.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 والعملاء الآخرون

يفحص الخطّاف عمليات تثبيت الحزم فقط. لفحص التغييرات، وفي 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.

طلب الوصول المبكر

حدّثنا عن فريقك والمستودعات التي تريد تدقيقها. نُتيح الوصول لفرق على دفعات صغيرة، وسنرد عليك عبر البريد الإلكتروني.

نستخدم هذه المعلومات للرد على طلبك فقط. سياسة الخصوصية