/ Annuaire / Playground / SonarQube
● Officiel SonarSource 🔑 Nécessite votre clé

SonarQube

par SonarSource · SonarSource/sonarqube-mcp-server

Récupérez les problèmes SonarQube, les hotspots et le statut de la quality gate dans votre workflow IA — triez les résultats et rédigez les corrections sans ouvrir l'interface SonarQube.

Le MCP officiel de SonarSource enveloppe les API SonarQube Server et SonarCloud. Interrogez les problèmes par sévérité, type, composant ou auteur ; inspectez les hotspots de sécurité ; consultez le statut de la quality gate et les deltas de nouveau code. Idéal pour les revues qualité hebdomadaires et le tri au moment du PR.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

sonarqube.replay ▶ prêt
0/0

Installer

Choisissez votre client

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

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

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

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

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

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

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

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

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

Continue utilise un tableau d'objets serveur plutôt qu'une map.

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

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

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

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : SonarQube

Triez les nouveaux problèmes SonarQube sur une PR avant la revue

👤 Les relecteurs qui veulent se concentrer sur les aspects humains, pas sur le lint ⏱ ~15 min beginner

Quand l'utiliser : Une PR contient 15 nouveaux résultats Sonar. Vous voulez un résumé de 30 secondes : qu'est-ce qui doit être corrigé par rapport à ce qui est pointilleux.

Prérequis
  • Token Sonar avec Execute Analysis + Browse — Interface Sonar → Compte → Sécurité → Générer un token
  • Clé de projet — URL du projet Sonar : /dashboard?id=<key>
Déroulement
  1. Récupérez les problèmes de nouveau code pour la branche
    Listez les problèmes du projet <key>, branche <pr-branch>, sinceLeakPeriod=true. Groupez par sévérité.✓ Copié
    → Nouveaux résultats groupés
  2. Classifiez la pertinence des corrections
    Pour chaque BLOCKER/CRITICAL, affichez le fichier:ligne et la règle. Marquez ceux qui ressemblent à de vrais bugs par rapport au bruit.✓ Copié
    → Liste de triage
  3. Rédigez des suggestions de corrections
    Pour les vrais bugs, récupérez l'extrait de code source via le MCP du système de fichiers et proposez un correctif minimal pour chacun.✓ Copié
    → Suggestions de diff par problème

Résultat : Un tri PR sur un écran avec exactement les 3 choses sur lesquelles le relecteur devrait se concentrer.

Pièges
  • Les « smells » de faible sévérité noient les vrais bugs — Filtrez toujours les sévérités à BLOCKER,CRITICAL,MAJOR pour le triage ; MINOR/INFO dans un lot séparé
Combiner avec : github · filesystem

Générez un rapport hebdomadaire de tendance qualité tous les projets

👤 Managers d'ingénierie ⏱ ~25 min intermediate

Quand l'utiliser : Lundi matin : vers où va la dette technique dans nos 12 services ?

Déroulement
  1. Listez les projets et le statut de la gate
    Listez tous les projets avec le statut de la quality gate. Signalez tout projet passé de PASS à FAIL cette semaine.✓ Copié
    → Régressions mises en évidence
  2. Résumez les hotspots et les nouveaux bugs
    Pour chaque projet en échec, récupérez les hotspots de sécurité ouverts et les nouveaux bugs des 7 derniers jours. Top 3 par projet.✓ Copié
    → Liste de problèmes exploitable par projet
  3. Formatez comme un digest Markdown
    Produisez un rapport markdown : section par projet, tableau des nouveaux bugs/hotspots, delta de couverture.✓ Copié
    → Rapport prêt à publier

Résultat : Un digest qualité hebdomadaire pour la revue de votre direction — format cohérent chaque semaine.

Pièges
  • Les projets avec code auto-généré polluent le rapport — Excluez-les via sonar.exclusions de Sonar ; ne filtrez pas dans l'LLM — corrigez en amont
Combiner avec : notion

Révisez et triez les hotspots de sécurité avec contexte

👤 Ingénieurs Appsec / security-champ ⏱ ~45 min advanced

Quand l'utiliser : Revue de sécurité trimestrielle : tous les hotspots TO_REVIEW ont-ils été décidés ?

Déroulement
  1. Listez les hotspots non révisés
    Listez les hotspots avec le statut TO_REVIEW pour le projet <key>. Groupez par règle (par ex. sql-injection, xss).✓ Copié
    → File d'attente par catégorie
  2. Récupérez le contexte du code
    Pour chaque hotspot, récupérez l'extrait de code source (±10 lignes). Jugez s'il s'agit d'un vrai risque ou s'il est sûr par le contexte.✓ Copié
    → Verdict sûr/risqué par hotspot avec raisonnement
  3. Appliquez les décisions
    Pour les hotspots « sûrs », proposez un commentaire de résolution. Je réviserai des lots de 5 et approuverai ; ensuite nous appliquerons.✓ Copié
    → Lots de décisions prêts à appliquer

Résultat : Une file de hotspots nettoyée avec un raisonnement vérifiable par décision.

Pièges
  • Résoudre en masse sans contexte de code est dangereux — Exigez toujours que Claude cite la/les ligne(s) exacte(s) avant de marquer comme sûr
Combiner avec : filesystem · github

Vérification avant le vol : ce PR échouera-t-il le quality gate ?

👤 Développeurs poussant une PR ⏱ ~15 min intermediate

Quand l'utiliser : Avant d'ouvrir la PR : ai-je introduit des baisses de couverture ou de nouveaux bloqueurs ?

Déroulement
  1. Lancez l'analyse (en dehors du MCP) et attendez
    Rappelez-moi d'exécuter sonar-scanner avec branch=<pr-branch> localement. Après son achèvement, je reviendrai.✓ Copié
    → ID d'analyse pour cette branche
  2. Lisez le statut de la gate de la branche
    Obtenez le statut de la quality gate pour la branche <pr-branch> du projet <key>. Affichez chaque condition + valeur réelle vs seuil.✓ Copié
    → Tableau PASS/FAIL par condition
  3. Concentrez-vous sur les conditions échouées
    Pour chaque condition échouée, listez les 5 principaux problèmes/fichiers contributeurs. Suggérez un changement par élément.✓ Copié
    → Liste de corrections concrète

Résultat : Sachez exactement quelle règle échoue en CI avant d'ouvrir la PR.

Pièges
  • Le nom de la branche d'analyse locale ne correspond pas à celle de CI — Passez -Dsonar.branch.name=<exact ci branch> explicitement
Combiner avec : github

Créez un backlog de dette technique priorisé à partir des données Sonar

👤 Les tech leads qui planifient un sprint de remboursement de dette ⏱ ~30 min intermediate

Quand l'utiliser : Vous avez un budget de sprint pour la dette technique ; vous voulez choisir les articles à plus fort retour sur investissement.

Déroulement
  1. Récupérez tous les problèmes ouverts avec effort + sévérité
    Pour le projet <key>, récupérez les problèmes ouverts avec effort (minutes) et sévérité. Excluez MINOR/INFO.✓ Copié
    → Ensemble de problèmes avec données d'effort
  2. Groupez par fichier et règle
    Groupez les problèmes par (fichier, règle). Additionnez l'effort par groupe. Classez les 20 meilleurs groupes — ce sont les opportunités corriger-une-fois-corriger-plusieurs.✓ Copié
    → Groupes classés par ROI
  3. Transformez les 10 meilleurs en tickets Linear
    Pour chacun des 10 meilleurs, créez un problème Linear intitulé « Refactoriser <file> pour résoudre N× <rule> » avec heures estimées.✓ Copié
    → Tickets créés + URLs

Résultat : Un backlog de dette prêt pour le sprint trié par coût-impact réel.

Pièges
  • Les estimations d'effort sont statiques — elles ne reflètent pas la vélocité de votre équipe — Traitez l'effort Sonar comme relatif ; multipliez par le facteur d'étalonnage de votre équipe
Combiner avec : linear

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

sonarqube + github

Auto-commentaire Sonar triage sur les PR GitHub

Pour la PR #342, récupérez les problèmes de nouveau code Sonar pour cette branche, résumez les problèmes critiques, publiez comme commentaire de révision de PR.✓ Copié
sonarqube + linear

Convertissez les régressions de quality-gate en tickets Linear

Tout projet qui a basculé la gate vers FAIL aujourd'hui : créez un problème Linear P2 assigné au chef de projet.✓ Copié
sonarqube + notion

Rapport qualité hebdomadaire publié sur Notion

Exécutez le digest qualité hebdomadaire multi-projet ; créez une page Notion dans « Engineering / Quality / Weekly ».✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
search_issues project_key, severities?, types?, branch?, since?, resolved? Outil de requête principal pour bugs/smells/vulns free
get_issue issue_key Forez dans les flux et l'historique d'un problème free
search_hotspots project_key, status?, branch? Flux de travail de révision de sécurité free
get_quality_gate_status project_key, branch? Vérification de gate pour les flux CI/PR free
list_projects organization? Découvrez les projets de votre organisation free
get_metrics project_key, metrics: str[], branch? Récupérez la couverture, les duplications, le ratio de dette technique, etc. free

Coût et limites

Coût d'exécution

Quota d'API
SonarCloud : généreux, non documenté (~centaines de req/min). Serveur : limité par votre infrastructure.
Tokens par appel
Recherches de problèmes : 500–3000 tokens selon la taille de la page.
Monétaire
SonarQube Community est gratuit. SonarCloud gratuit pour l'open-source ; payant à partir de ~$10/dev/mois.
Astuce
Utilisez ps (taille de page) 100 et paginasez ; récupérer tous les problèmes à la fois consomme le contexte et est plus lent.

Sécurité

Permissions, secrets, portée

Portées minimales : Parcourir le projet cible
Stockage des identifiants : SONAR_TOKEN (token utilisateur ou projet) dans l'env ; SONAR_URL pour on-prem
Sortie de données : Appels à sonarcloud.io ou votre URL SonarQube uniquement
Ne jamais accorder : Administrer la sécurité Admin global

Dépannage

Erreurs courantes et correctifs

401 Unauthorized

SONAR_TOKEN manquant ou révoqué. Régénérez dans l'interface Sonar → Compte → Sécurité.

Vérifier : curl -u $SONAR_TOKEN: $SONAR_URL/api/authentication/validate
404 Component key not found

La clé de projet est sensible à la casse et diffère du nom d'affichage. Vérifiez le paramètre URL du tableau de bord du projet id=.

Branch not found

Sonar ne garde que les branches analysées. Assurez-vous que votre CI a exécuté sonar-scanner avec -Dsonar.branch.name=....

Empty results despite expected issues

Le filtre par défaut peut exclure les problèmes résolus ; passez resolved=false et sinceLeakPeriod=false explicitement.

Alternatives

SonarQube vs autres

AlternativeQuand l'utiliserCompromis
CodeQL / GitHub Advanced SecurityVous êtes sur GitHub et voulez l'analyse de code intégrée aux PRCouverture de règles plus étroite pour les problèmes non liés à la sécurité
Semgrep MCPVous voulez des règles statiques rapides et personnalisables sans plateforme hébergéePas de tableaux de bord / concept de quality-gate prêt à l'emploi

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills