/ Directorio / Playground / SonarQube
● Oficial SonarSource 🔑 Requiere tu clave

SonarQube

por SonarSource · SonarSource/sonarqube-mcp-server

Extrae issues de SonarQube, hotspots y estado de quality gate a tu flujo de IA — triagea hallazgos y sugiere correcciones sin abrir la UI de SonarQube.

El MCP oficial de SonarSource encapsula las APIs de SonarQube Server y SonarCloud. Consulta issues por severidad, tipo, componente o autor; inspecciona hotspots de seguridad; lee el estado de quality gate y deltas de código nuevo. Ideal para revisiones de calidad semanales y triageo en tiempo de PR.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

sonarqube.replay ▶ listo
0/0

Instalar

Elige tu cliente

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

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

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

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

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

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

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

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

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

Continue usa un array de objetos de servidor en lugar de un mapa.

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

Añádelo a context_servers. Zed recarga en caliente al guardar.

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

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: SonarQube

Triagea nuevos issues de SonarQube en un PR antes de la revisión

👤 Revisores que quieren enfocarse en los humanos, no en lint ⏱ ~15 min beginner

Cuándo usarlo: Un PR tiene 15 hallazgos nuevos de Sonar. Quieres un resumen de 30 segundos: qué es imprescindible arreglar vs qué es un detalle.

Requisitos previos
  • Token de Sonar con permisos de Execute Analysis + Browse — Sonar UI → Account → Security → Generate token
  • Project key — URL de proyecto en Sonar: /dashboard?id=<key>
Flujo
  1. Extrae issues de código nuevo para la rama
    Lista issues para project <key>, branch <pr-branch>, sinceLeakPeriod=true. Agrupa por severidad.✓ Copiado
    → Hallazgos nuevos agrupados
  2. Clasifica cuáles merecen ser corregidas
    Para cada BLOCKER/CRITICAL, muestra el archivo:línea y la regla. Marca cuáles parecen bugs reales vs ruido.✓ Copiado
    → Lista de triageo
  3. Sugiere correcciones
    Para los bugs reales, obtén el fragmento de código a través del filesystem MCP y propón un parche mínimo para cada uno.✓ Copiado
    → Sugerencias de diff por issue

Resultado: Un triageo de PR en 1 pantalla con exactamente las 3 cosas que el revisor debe revisar.

Errores comunes
  • Los 'smells' de baja severidad ahogan los bugs reales — Siempre filtra severidades a BLOCKER,CRITICAL,MAJOR para triageo; MINOR/INFO en un lote separado
Combinar con: github · filesystem

Genera un reporte semanal de tendencias de calidad entre proyectos

👤 Managers de ingeniería ⏱ ~25 min intermediate

Cuándo usarlo: Lunes por la mañana: ¿hacia dónde tiende el tech debt en nuestros 12 servicios?

Flujo
  1. Lista proyectos y estado del gate
    Lista todos los proyectos con estado de quality gate. Señala cualquier proyecto que cambió de PASS a FAIL esta semana.✓ Copiado
    → Regresiones destacadas
  2. Resume hotspots y bugs nuevos
    Para cada proyecto que falla, obtén hotspots de seguridad abiertos y bugs nuevos de los últimos 7 días. Top 3 por proyecto.✓ Copiado
    → Lista de issues procesables por proyecto
  3. Formatea como resumen en Markdown
    Produce un reporte en markdown: sección por proyecto, tabla de bugs nuevos/hotspots, delta de cobertura.✓ Copiado
    → Reporte listo para publicar

Resultado: Un resumen semanal de calidad para revisión de liderazgo — formato consistente cada semana.

Errores comunes
  • Los proyectos con código auto-generado ensucian el reporte — Exclúyelos a través de sonar.exclusions de Sonar; no filtres en el LLM — arregla en la fuente
Combinar con: notion

Revisa y triagea hotspots de seguridad con contexto

👤 Ingenieros de Appsec / security-champ ⏱ ~45 min advanced

Cuándo usarlo: Revisión trimestral de seguridad: ¿se han decidido todos los hotspots TO_REVIEW?

Flujo
  1. Lista hotspots no revisados
    Lista hotspots con estado TO_REVIEW para project <key>. Agrupa por regla (p.ej. sql-injection, xss).✓ Copiado
    → Cola por categoría
  2. Obtén contexto del código
    Para cada hotspot, obtén el fragmento de código (±10 líneas). Juzga si es un riesgo real o está seguro por contexto.✓ Copiado
    → Veredicto seguro/riesgoso por hotspot con razonamiento
  3. Aplica decisiones
    Para hotspots 'seguros', propón un comentario de resolución. Revisaré lotes de 5 y aprobaré; luego los aplicaremos.✓ Copiado
    → Lotes de decisiones listos para aplicar

Resultado: Una cola de hotspots limpia con razonamiento auditable por decisión.

Errores comunes
  • Resolver en masa sin contexto de código es peligroso — Siempre requiere que Claude cite la(s) línea(s) exacta(s) antes de marcar como seguro
Combinar con: filesystem · github

Verificación previa: ¿fallará este PR en el quality gate?

👤 Desarrolladores que hacen push de un PR ⏱ ~15 min intermediate

Cuándo usarlo: Antes de abrir el PR: ¿introduje caídas de cobertura o bloqueadores nuevos?

Flujo
  1. Inicia análisis (fuera de MCP) y espera
    Recuérdame ejecutar sonar-scanner con branch=<pr-branch> localmente. Después de que se complete, volveré.✓ Copiado
    → ID de análisis para esta rama
  2. Lee el estado del gate de la rama
    Obtén el estado de quality gate para branch <pr-branch> en project <key>. Muestra cada condición + actual vs threshold.✓ Copiado
    → Tabla PASS/FAIL por condición
  3. Enfócate en las condiciones que fallan
    Para cada condición que falla, lista los top 5 issues/archivos que contribuyen. Sugiere un cambio por item.✓ Copiado
    → Lista de correcciones concretas

Resultado: Sabe exactamente qué regla falla en CI antes de abrir el PR.

Errores comunes
  • El nombre de rama del análisis local no coincide con el de CI — Pasa -Dsonar.branch.name=<exact ci branch> explícitamente
Combinar con: github

Construye un backlog de tech-debt priorizado a partir de datos de Sonar

👤 Tech leads planeando un sprint de pago de deuda ⏱ ~30 min intermediate

Cuándo usarlo: Tienes un presupuesto de sprint para tech debt; quieres elegir los items con mayor ROI.

Flujo
  1. Extrae todos los issues abiertos con esfuerzo + severidad
    Para project <key>, extrae issues abiertos con esfuerzo (minutos) y severidad. Excluye MINOR/INFO.✓ Copiado
    → Conjunto de issues con datos de esfuerzo
  2. Agrupa por archivo y regla
    Agrupa issues por (archivo, regla). Suma esfuerzo por grupo. Clasifica los top 20 grupos — estas son las oportunidades de arreglar-una-vez-arreglar-muchas.✓ Copiado
    → Grupos clasificados por ROI
  3. Convierte los top 10 en tickets de Linear
    Para cada uno de los top 10, crea un issue de Linear titulado 'Refactor <file> to resolve N× <rule>' con horas estimadas.✓ Copiado
    → Tickets creados + URLs

Resultado: Un backlog de deuda listo para sprint, ordenado por costo-impacto real.

Errores comunes
  • Las estimaciones de esfuerzo son estáticas — no reflejan la velocidad de tu equipo — Trata el esfuerzo de Sonar como relativo; multiplica por el factor de calibración de tu equipo
Combinar con: linear

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

sonarqube + github

Auto-comentar triageo de Sonar en PRs de GitHub

Para PR #342, extrae issues de código nuevo de Sonar para esa rama, resume los críticos, postea como comentario de revisión de PR.✓ Copiado
sonarqube + linear

Convierte regresiones de quality-gate en tickets de Linear

Cualquier proyecto que cambió gate a FAIL hoy: crea un issue P2 de Linear asignado al project lead.✓ Copiado
sonarqube + notion

Reporte semanal de calidad publicado en Notion

Ejecuta el resumen semanal de calidad multi-proyecto; crea una página en Notion en 'Engineering / Quality / Weekly'.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
search_issues project_key, severities?, types?, branch?, since?, resolved? Herramienta de consulta principal para bugs/smells/vulns free
get_issue issue_key Profundiza en flows y changelog de un issue free
search_hotspots project_key, status?, branch? Flujos de revisión de seguridad free
get_quality_gate_status project_key, branch? Verificación de gate para flujos de CI/PR free
list_projects organization? Descubre proyectos en tu org free
get_metrics project_key, metrics: str[], branch? Extrae cobertura, duplicaciones, ratio de tech-debt, etc. free

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
SonarCloud: generoso, sin documentar (~cientos req/min). Server: limitado por tu infra.
Tokens por llamada
Búsquedas de issues: 500–3000 tokens dependiendo del tamaño de página.
Monetario
SonarQube Community es gratuito. SonarCloud gratuito para open-source; pago desde ~$10/dev/mes.
Consejo
Usa ps (tamaño de página) 100 y pagina; obtener todos los issues a la vez quema contexto y es más lento.

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: Browse en el proyecto objetivo
Almacenamiento de credenciales: SONAR_TOKEN (token de usuario o proyecto) en env; SONAR_URL para on-prem
Salida de datos: Llamadas a sonarcloud.io o tu URL de SonarQube solamente
No conceder nunca: Administer Security Global Admin

Resolución de problemas

Errores comunes y soluciones

401 Unauthorized

SONAR_TOKEN faltante o revocado. Regenera en Sonar UI → Account → Security.

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

Project key es sensible a mayúsculas y difiere del nombre de visualización. Revisa el param de URL del Dashboard del proyecto id=.

Branch not found

Sonar solo mantiene ramas analizadas. Asegúrate de que tu CI ejecutó sonar-scanner con -Dsonar.branch.name=....

Empty results despite expected issues

El filtro por defecto puede excluir resueltos; pasa resolved=false y sinceLeakPeriod=false explícitamente.

Alternativas

SonarQube vs otros

AlternativaCuándo usarlaContrapartida
CodeQL / GitHub Advanced SecurityEstás en GitHub y quieres code scanning integrado con PRsCobertura de reglas más estrecha para issues que no son de seguridad
Semgrep MCPQuieres reglas estáticas rápidas y personalizables sin una plataforma alojadaSin dashboards / concepto de quality-gate de forma predeterminada

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills