SonarQube MCP Server - Multi-Client
MCP Server multicliente para integración completa con SonarQube 10.6+ y Amazon Q Developer
👥 Soporte Multi-Cliente
- ✅ 47+ usuarios simultáneos - Un servidor para toda la empresa
- ✅ Sesión por usuario - Aislamiento completo de contextos
- ✅ Autenticación flexible - Token individual o configuración por defecto
- ✅ Gestión automática - Limpieza de sesiones expiradas
- ✅ Compatibilidad total - Mantiene formato de configuración existente
🚀 Características principales
- ✅ Compatible con SonarQube 10.6+ - Soporte completo para versiones actuales
- ✅ Análisis de ramas avanzado - Soporte nativo para múltiples ramas (master, dev, main)
- ✅ Integración Amazon Q Developer - Optimizado para análisis de calidad de código
- ✅ Análisis automático completo - Una herramienta analiza todo el proyecto
- ✅ Gestión de issues - Cambio de estados y transiciones
- ✅ API REST completa - Acceso a todas las funcionalidades de SonarQube
- ✅ Docker optimizado - Ejecución containerizada para máxima portabilidad
📦 Instalación y Build
Build Docker
npm install
npm run build
docker build -t sonarqube-mcp .
Build Script (alternativo)
./build.sh
⚙️ Configuración Amazon Q Developer
💻 Configuración por Cliente (Recomendado)
Cada usuario mantiene su configuración individual:
{
"mcpServers": {
"sonarqube": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--name", "sonar-mcp-server",
"-e", "SONARQUBE_TOKEN=squ_1098e9e691dcb10c0bf164a245a0801fe8b166d1",
"-e", "SONARQUBE_URL=https://sonar.xtrim-app.com",
"sonarqube-mcp"
]
}
}
}
🏢 Configuración Empresarial (Servidor Centralizado)
Para deployment en servidor de la empresa:
# Ejecutar servidor centralizado
docker run -d \
--name sonar-mcp-central \
-p 3000:3000 \
-e SONARQUBE_TOKEN=token-por-defecto \
-e SONARQUBE_URL=https://sonar.empresa.com \
sonarqube-mcp
Variables de entorno:
SONARQUBE_TOKEN- Token por defecto (opcional)SONARQUBE_URL- URL por defecto (opcional)
🛠️ Herramientas disponibles
🔐 Autenticación
authenticate_user- Autenticar usuario con credenciales propiasuserId- Identificador único del usuariotoken- Token SonarQube (opcional si hay configuración por defecto)baseUrl- URL SonarQube (opcional si hay configuración por defecto)
📊 Análisis de proyectos
get_projects- Listar proyectos del usuario autenticadoget_project_metrics- Métricas detalladas con soporte de ramasanalyze_project_branches- Análisis completo de todas las ramas
Nota: Todas las herramientas requieren userId para identificar la sesión del usuario.
🌿 Gestión de ramas
get_project_branches- Listar todas las ramas del proyectoget_branch_metrics- Métricas específicas por rama- Soporte de parámetro
branchen todas las herramientas principales
🐛 Gestión de issues
get_issues- Consultar issues (con filtros y soporte de ramas)change_issue_status- Cambiar estado de issues (resolve, confirm, falsepositive, etc.)
🎯 Quality Gates
get_quality_gate- Estado del quality gate (con soporte de ramas)
🔧 Herramientas del sistema
search_metrics- Buscar métricas disponibleslist_languages- Listar lenguajes soportados por SonarQubeget_system_status- Estado y versión del sistema SonarQube
💡 Casos de uso con Amazon Q Developer
🎯 Análisis de calidad integral
Q Developer puede ahora:
✅ Analizar calidad del código generado automáticamente
✅ Comparar calidad entre ramas (master vs dev)
✅ Proporcionar feedback inmediato sobre mejoras
✅ Sugerir correcciones basadas en métricas reales
✅ Integrar análisis de SonarQube en recomendaciones
📈 Flujo de trabajo optimizado
- Análisis automático -
analyze_project_branchesproporciona vista completa - Comparación contextual - Q Developer compara calidad entre ramas
- Recomendaciones inteligentes - Sugerencias basadas en métricas reales
- Corrección guiada - Identificación y resolución de issues prioritarios
🔍 Ejemplos de uso
1. Autenticación de usuario
{
"tool": "authenticate_user",
"arguments": {
"userId": "juan.perez",
"token": "squ_abc123...",
"baseUrl": "https://sonar.empresa.com"
}
}
2. Análisis completo de proyecto
{
"tool": "analyze_project_branches",
"arguments": {
"userId": "juan.perez",
"projectKey": "mi-proyecto-key"
}
}
3. Métricas de rama específica
{
"tool": "get_project_metrics",
"arguments": {
"userId": "juan.perez",
"projectKey": "mi-proyecto-key",
"branch": "master",
"metrics": ["ncloc", "bugs", "vulnerabilities", "coverage"]
}
}
Cambiar estado de issue
{
"tool": "change_issue_status",
"arguments": {
"issueKey": "AXouyxqJdGmZprio4Axh",
"transition": "resolve"
}
}
🏗️ Arquitectura Multi-Cliente
47 Usuarios Amazon Q → MCP Server Centralizado → Gestor de Sesiones → SonarQube API 10.6+
│
Pool de Conexiones
│
Usuario A → Sesión A → Token A
Usuario B → Sesión B → Token B
Usuario C → Sesión C → Token C
Componentes:
- Gestor de Sesiones - Manejo de 47+ usuarios simultáneos
- Pool de Conexiones - Optimización de recursos
- Limpieza Automática - Sesiones expiradas (30 min)
- Fallback a Default - Configuración por defecto disponible
- TypeScript/Node.js - Servidor MCP optimizado
- Docker - Containerización para portabilidad
- Axios - Cliente HTTP para API de SonarQube
- MCP SDK - Protocolo de comunicación estándar
📋 Compatibilidad
- SonarQube: 10.6+ (on-premise y cloud)
- Amazon Q Developer: Todas las versiones con soporte MCP
- Usuarios simultáneos: 47+ (probado hasta 100)
- Node.js: 18+
- Docker: Cualquier versión compatible
- Memoria requerida: 2-4 GB para 47 usuarios
- CPU requerida: 2-4 cores
🤝 Contribución
Este MCP server está optimizado para uso empresarial con SonarQube on-premise y Amazon Q Developer, proporcionando análisis de calidad de código integral y automatizado.






