/ الدليل / الملعب / SonarQube
● رسمي SonarSource 🔑 يتطلب مفتاحك

SonarQube

بواسطة SonarSource · SonarSource/sonarqube-mcp-server

استجلب مشاكل SonarQube والمناطق الحساسة وحالة بوابة الجودة إلى سير العمل الخاص بك مع الذكاء الاصطناعي — فرز الاكتشافات واقترح الإصلاحات دون فتح واجهة SonarQube.

يوفر MCP الرسمي من SonarSource غلافاً حول APIs SonarQube Server و SonarCloud. استعلم عن المشاكل حسب مستوى الخطورة أو النوع أو المكون أو المؤلف؛ افحص المناطق الحساسة الأمنية؛ اقرأ حالة بوابة الجودة والفروقات في الكود الجديد. الأمثل للمراجعات الأسبوعية للجودة وفرز طلبات المراجعة.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

sonarqube.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sonarqube": {
      "command": "npx",
      "args": [
        "-y",
        "sonarqube-mcp-server"
      ]
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "sonarqube": {
      "command": "npx",
      "args": [
        "-y",
        "sonarqube-mcp-server"
      ]
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "sonarqube": {
      "command": "npx",
      "args": [
        "-y",
        "sonarqube-mcp-server"
      ]
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "sonarqube": {
      "command": "npx",
      "args": [
        "-y",
        "sonarqube-mcp-server"
      ]
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "sonarqube",
      "command": "npx",
      "args": [
        "-y",
        "sonarqube-mcp-server"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "sonarqube": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "sonarqube-mcp-server"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add sonarqube -- npx -y sonarqube-mcp-server

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: SonarQube

فرز مشاكل SonarQube الجديدة في طلب المراجعة قبل المراجعة

👤 المراجعون الذين يريدون التركيز على البشر وليس فحوصات lint ⏱ ~15 min beginner

متى تستخدمه: طلب المراجعة يحتوي على 15 اكتشافاً جديداً من Sonar. تريد ملخصاً لمدة 30 ثانية: ما يجب إصلاحه مقابل الأمور البسيطة.

المتطلبات الأساسية
  • رمز Sonar مع صلاحيات Execute Analysis + Browse — واجهة Sonar → الحساب → الأمان → إنشاء رمز
  • مفتاح المشروع — رابط مشروع Sonar: /dashboard?id=<key>
الخطوات
  1. استجلب مشاكل الكود الجديد للفرع
    اسرد المشاكل للمشروع <key>، الفرع <pr-branch>، sinceLeakPeriod=true. جمّع حسب مستوى الخطورة.✓ تم النسخ
    → الاكتشافات الجديدة مجمعة
  2. صنّف ما يستحق الإصلاح
    لكل BLOCKER/CRITICAL، اعرض الملف:السطر والقاعدة. اشر إلى أي منها يبدو وكأنه خلل حقيقي مقابل ضوضاء.✓ تم النسخ
    → قائمة الفرز
  3. ضع مسودة مقترحات الإصلاح
    للأخطاء الحقيقية، استجلب مقطع المصدر عبر filesystem MCP واقترح إصلاحاً بسيطاً لكل واحد.✓ تم النسخ
    → مقترحات فرق لكل مشكلة

النتيجة: فرز طلب المراجعة على شاشة واحدة مع بالضبط الأمور الثلاثة التي يجب على المراجع الاهتمام بها.

المزالق
  • 'رموز' منخفضة الخطورة تطغى على الأخطاء الحقيقية — صفّ دائماً مستويات الخطورة إلى BLOCKER,CRITICAL,MAJOR للفرز؛ MINOR/INFO في دفعة منفصلة
اجمعها مع: github · filesystem

أنشئ تقرير اتجاه جودة أسبوعي عبر المشاريع

👤 مديرو الهندسة ⏱ ~25 min intermediate

متى تستخدمه: صباح يوم الاثنين: إلى أين يتجه الدين التقني عبر خدماتنا الـ 12؟

الخطوات
  1. اسرد المشاريع وحالة البوابة
    اسرد جميع المشاريع مع حالة بوابة الجودة. علّم أي مشروع انتقل من PASS إلى FAIL هذا الأسبوع.✓ تم النسخ
    → الانحدارات مبرزة
  2. لخّص المناطق الحساسة والأخطاء الجديدة
    لكل مشروع فاشل، استجلب المناطق الحساسة الأمنية والأخطاء الجديدة من آخر 7 أيام. أفضل 3 لكل مشروع.✓ تم النسخ
    → قائمة مشاكل قابلة للتنفيذ لكل مشروع
  3. اعرضها كملخص Markdown
    أنتج تقرير markdown: قسم لكل مشروع، جدول الأخطاء/المناطق الحساسة الجديدة، فرق التغطية.✓ تم النسخ
    → التقرير جاهز للنشر

النتيجة: ملخص جودة أسبوعي لمراجعة القيادة — تنسيق ثابت كل أسبوع.

المزالق
  • المشاريع ذات الكود المُولَّد تلوّث التقرير — استبعدها عبر sonar.exclusions في Sonar؛ لا تصفّ في LLM — اصلح المشكلة في المصدر
اجمعها مع: notion

راجع وفرّز المناطق الحساسة الأمنية مع السياق

👤 مهندسو الأمان التطبيقي / الأمان ⏱ ~45 min advanced

متى تستخدمه: المراجعة الأمنية الفصلية: هل تم اتخاذ قرار بشأن جميع المناطق الحساسة TO_REVIEW؟

الخطوات
  1. اسرد المناطق الحساسة غير المراجعة
    اسرد المناطق الحساسة مع حالة TO_REVIEW للمشروع <key>. جمّع حسب القاعدة (مثل sql-injection, xss).✓ تم النسخ
    → الطابور مرتب بالفئة
  2. استجلب سياق الكود
    لكل منطقة حساسة، استجلب مقطع المصدر (±10 أسطر). احكم ما إذا كانت خطراً حقيقياً أم آمنة من حيث السياق.✓ تم النسخ
    → حكم آمن/خطر لكل منطقة حساسة مع الأسباب
  3. طبّق القرارات
    للمناطق الحساسة 'الآمنة'، اقترح تعليق الحل. سأراجع دفعات من 5 وأوافق؛ ثم سنطبقها.✓ تم النسخ
    → دفعات القرار جاهزة للتطبيق

النتيجة: طابور مناطق حساسة نظيف مع تبرير يمكن تدقيقه لكل قرار.

المزالق
  • حل جماعي بدون سياق الكود خطير — اطلب دائماً من Claude نقل السطور الدقيقة قبل تحديد الحالة كآمنة
اجمعها مع: filesystem · github

فحص ما قبل الإقلاع: هل سيفشل هذا الطلب عند بوابة الجودة؟

👤 المطورون الذين يدفعون طلب المراجعة ⏱ ~15 min intermediate

متى تستخدمه: قبل فتح طلب المراجعة: هل قدمت انخفاضاً في التغطية أم معيقات جديدة؟

الخطوات
  1. ابدأ التحليل (خارج MCP) وانتظر
    ذكّرني بتشغيل sonar-scanner مع branch=<pr-branch> محلياً. بعد انتهاؤه، سأعود.✓ تم النسخ
    → معرّف التحليل لهذا الفرع
  2. اقرأ حالة بوابة الفرع
    احصل على حالة بوابة الجودة للفرع <pr-branch> في المشروع <key>. اعرض كل شرط + القيمة الفعلية مقابل الحد الأدنى.✓ تم النسخ
    → جدول PASS/FAIL لكل شرط
  3. ركّز على الشروط الفاشلة
    لكل شرط فاشل، اسرد أفضل 5 مشاكل/ملفات مساهمة. اقترح تغييراً واحداً لكل عنصر.✓ تم النسخ
    → قائمة إصلاح ملموسة

النتيجة: اعرف بالضبط أي قاعدة ستفشل في CI قبل فتح طلب المراجعة.

المزالق
  • اسم فرع التحليل المحلي لا يطابق CI — مرّر -Dsonar.branch.name=<exact ci branch> بشكل صريح
اجمعها مع: github

بناء قائمة انتظار الديون التقنية ذات الأولويات من بيانات Sonar

👤 قادة التكنولوجيا الذين يخططون لسباق تسديد الديون ⏱ ~30 min intermediate

متى تستخدمه: لديك ميزانية سباق للديون التقنية؛ تريد اختيار العناصر ذات أعلى عائد استثمار.

الخطوات
  1. استجلب جميع المشاكل المفتوحة مع الجهد + مستوى الخطورة
    للمشروع <key>، استجلب المشاكل المفتوحة مع الجهد (دقائق) ومستوى الخطورة. استبعد MINOR/INFO.✓ تم النسخ
    → مجموعة مشاكل مع بيانات الجهد
  2. جمّع حسب الملف والقاعدة
    جمّع المشاكل حسب (الملف، القاعدة). جمّع الجهد لكل مجموعة. صنّف أفضل 20 مجموعة — هذه هي فرص الإصلاح مرة واحدة وإصلاح الكثير.✓ تم النسخ
    → مجموعات مصنفة حسب العائد على الاستثمار
  3. حوّل أفضل 10 إلى تذاكر Linear
    لكل واحد من أفضل 10، أنشئ تذكرة Linear بعنوان 'إعادة هيكلة <file> لحل N× <rule>' مع ساعات مقدرة.✓ تم النسخ
    → التذاكر المنشأة + الروابط

النتيجة: قائمة انتظار ديون جاهزة للسباق مرتبة حسب التكلفة الفعلية إلى التأثير.

المزالق
  • تقديرات الجهد ثابتة — لا تعكس سرعة فريقك — تعامل مع جهد Sonar كنسبي؛ اضرب بعامل معايرة فريقك
اجمعها مع: linear

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

sonarqube + github

تعليق Sonar الفرز تلقائياً على طلبات GitHub

لطلب المراجعة #342، استجلب مشاكل Sonar الكود الجديد لذلك الفرع، لخّص الحرجة منها، انشرها كتعليق مراجعة طلب.✓ تم النسخ
sonarqube + linear

حوّل انحدارات بوابة الجودة إلى تذاكر Linear

أي مشروع انتقلت بوابته إلى FAIL اليوم: أنشئ تذكرة Linear من نوع P2 مسندة إلى قائد المشروع.✓ تم النسخ
sonarqube + notion

تقرير جودة أسبوعي منشور في Notion

شغّل ملخص جودة أسبوعي متعدد المشاريع؛ أنشئ صفحة Notion في 'Engineering / Quality / Weekly'.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
search_issues project_key, severities?, types?, branch?, since?, resolved? أداة الاستعلام الرئيسية للأخطاء/الرموز/الثغرات free
get_issue issue_key انقر عميقاً في تدفقات مشكلة واحدة وسجل التغييرات free
search_hotspots project_key, status?, branch? سير عمل المراجعة الأمنية free
get_quality_gate_status project_key, branch? فحص البوابة لسير عمل CI/PR free
list_projects organization? اكتشف المشاريع في مؤسستك free
get_metrics project_key, metrics: str[], branch? استجلب التغطية والتكرارات ونسبة الديون التقنية إلخ. free

التكلفة والحدود

تكلفة التشغيل

حصة API
SonarCloud: سخي وغير موثق (~مئات طلب/دقيقة). Server: محدود بالبنية التحتية الخاصة بك.
الرموز لكل استدعاء
بحوث المشاكل: 500–3000 رمز اعتماد حسب حجم الصفحة.
التكلفة المالية
SonarQube Community مجاني. SonarCloud مجاني للمشاريع مفتوحة المصدر؛ مدفوع من ~$10/dev/mo.
نصيحة
استخدم ps (حجم الصفحة) 100 وقسّم الصفحات؛ جلب جميع المشاكل دفعة واحدة يستنزف السياق ويكون أبطأ.

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: البحث في المشروع المستهدف
تخزين بيانات الاعتماد: SONAR_TOKEN (رمز المستخدم أو المشروع) في البيئة؛ SONAR_URL للاستضافة الذاتية
نقل البيانات الخارجي: استدعاءات إلى sonarcloud.io أو رابط SonarQube الخاص بك فقط
لا تمنح أبدًا: إدارة الأمان مسؤول عام

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

401 غير مصرح

SONAR_TOKEN مفقود أو ملغى. أنشئه من جديد في واجهة Sonar → الحساب → الأمان.

تحقق: curl -u $SONAR_TOKEN: $SONAR_URL/api/authentication/validate
404 مفتاح المكون غير موجود

مفتاح المشروع يتحسس من الأحرف الكبيرة والصغيرة ويختلف عن اسم العرض. تحقق من معامل عنوان URL لـ Dashboard id=.

الفرع غير موجود

Sonar يحفظ فقط الفروع المحللة. تأكد من أن CI الخاص بك شغّل sonar-scanner مع -Dsonar.branch.name=....

نتائج فارغة رغم وجود مشاكل متوقعة

الفلتر الافتراضي قد يستبعد المحلولة؛ مرّر resolved=false و sinceLeakPeriod=false بشكل صريح.

البدائل

SonarQube مقابل البدائل

البديلمتى تستخدمهاالمقايضة
CodeQL / GitHub Advanced Securityأنت على GitHub وتريد دمج فحص الكود مع طلبات المراجعةتغطية قواعد أضيق للمشاكل غير الأمنية
Semgrep MCPتريد قواعس ثابتة سريعة وقابلة للتخصيص بدون منصة مستضافةبدون لوحات تحكم / مفهوم بوابة جودة جاهزة الاستخدام

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills