SonarQube MCP Server - Multi-Client
Multi-client MCP server for integrating SonarQube 10.6+ code quality analysis with Amazon Q Developer, supporting multiple simultaneous users, branch analysis, and issue management.
README
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.