/ Diretório / Playground / SonarQube
● Oficial SonarSource 🔑 Requer sua chave

SonarQube

por SonarSource · SonarSource/sonarqube-mcp-server

Puxe issues do SonarQube, hotspots e status de quality-gate para seu workflow de IA — faça triage dos achados e rascunhe correções sem abrir a UI do SonarQube.

O MCP oficial da SonarSource encapsula as APIs do SonarQube Server e SonarCloud. Consulte issues por severidade, tipo, componente ou autor; inspecione hotspots de segurança; leia o status de quality-gate e deltas de código novo. Ideal para revisões de qualidade semanais e triage em tempo de PR.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

sonarqube.replay ▶ pronto
0/0

Instalar

Escolha seu 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"
      ]
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

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

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

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

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

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

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

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

O Continue usa um array de objetos de servidor em vez de um map.

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

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

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

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: SonarQube

Faça triage de novos issues do SonarQube em um PR antes da revisão

👤 Revisores que querem focar em humanos, não em lint ⏱ ~15 min beginner

Quando usar: Um PR tem 15 novos achados do Sonar. Você quer um resumo de 30 segundos: o que é must-fix vs nitpick.

Pré-requisitos
  • Token do Sonar com Execute Analysis + Browse — Sonar UI → Account → Security → Generate token
  • Chave do projeto — Sonar project URL: /dashboard?id=<key>
Fluxo
  1. Puxe issues de código novo para a branch
    Liste issues para projeto <key>, branch <pr-branch>, sinceLeakPeriod=true. Agrupe por severidade.✓ Copiado
    → Novos achados agrupados
  2. Classifique a dignidade de correção
    Para cada BLOCKER/CRITICAL, mostre o file:line e a regra. Marque quais parecem bugs reais vs ruído.✓ Copiado
    → Lista de triage
  3. Rascunhe sugestões de correção
    Para os bugs reais, busque o snippet de código via o MCP de filesystem e proponha um patch mínimo para cada um.✓ Copiado
    → Sugestões de diff por issue

Resultado: Um triage de PR em 1 tela com exatamente as 3 coisas que o revisor deveria se importar.

Armadilhas
  • Baixa severidade 'smells' afogam bugs reais — Sempre filtre severidades para BLOCKER,CRITICAL,MAJOR para triage; MINOR/INFO em um lote separado
Combine com: github · filesystem

Gere um relatório de tendência de qualidade semanal entre projetos

👤 Gerentes de engenharia ⏱ ~25 min intermediate

Quando usar: Segunda-feira pela manhã: para onde está tendendo tech debt em nossos 12 serviços?

Fluxo
  1. Liste projetos e status de gate
    Liste todos os projetos com status de quality gate. Sinalize qualquer projeto que passou de PASS para FAIL esta semana.✓ Copiado
    → Regressões destacadas
  2. Resuma hotspots e novos bugs
    Para cada projeto falhando, puxe hotspots de segurança abertos e novos bugs dos últimos 7 dias. Top 3 por projeto.✓ Copiado
    → Lista de issues acionáveis por projeto
  3. Formate como um resumo Markdown
    Produza um relatório markdown: seção por projeto, tabela de novos bugs/hotspots, delta de coverage.✓ Copiado
    → Relatório pronto para postar

Resultado: Um resumo de qualidade semanal para revisão da liderança — formato consistente toda semana.

Armadilhas
  • Projetos com código auto-gerado poluem o relatório — Exclua-os via sonar.exclusions do Sonar; não filtre no LLM — corrija upstream
Combine com: notion

Revise e faça triage de security hotspots com contexto

👤 Engenheiros de appsec / security-champ ⏱ ~45 min advanced

Quando usar: Revisão de segurança trimestral: todos os hotspots TO_REVIEW foram decididos?

Fluxo
  1. Liste hotspots não revisados
    Liste hotspots com status TO_REVIEW para projeto <key>. Agrupe por regra (ex: sql-injection, xss).✓ Copiado
    → Fila por categoria
  2. Puxe contexto de código
    Para cada hotspot, busque o snippet de código (±10 linhas). Julgue se é um risco real ou seguro pelo contexto.✓ Copiado
    → Veredicto seguro/arriscado por hotspot com raciocínio
  3. Aplique decisões
    Para hotspots 'seguros', proponha um comentário de resolução. Vou revisar lotes de 5 e aprovar; depois aplicaremos.✓ Copiado
    → Lotes de decisão prontos para aplicar

Resultado: Uma fila de hotspot limpa com raciocínio auditável por decisão.

Armadilhas
  • Resolver em massa sem contexto de código é perigoso — Sempre exija que o Claude cite a(s) linha(s) exata(s) antes de marcar como seguro
Combine com: filesystem · github

Verificação de pré-voo: este PR falhará no quality gate?

👤 Desenvolvedores fazendo push de um PR ⏱ ~15 min intermediate

Quando usar: Antes de abrir o PR: introduzi quedas de coverage ou novos bloqueadores?

Fluxo
  1. Inicie análise (fora do MCP) e aguarde
    Lembre-me de executar sonar-scanner com branch=<pr-branch> localmente. Depois que for concluído, voltarei.✓ Copiado
    → ID de análise para esta branch
  2. Leia o status do gate de branch
    Obtenha o status do quality gate para branch <pr-branch> no projeto <key>. Mostre cada condição + real vs threshold.✓ Copiado
    → Tabela PASS/FAIL por condição
  3. Foque nas condições falhando
    Para cada condição falhando, liste os top 5 issues/arquivos contribuintes. Sugira uma mudança por item.✓ Copiado
    → Lista de correção concreta

Resultado: Saiba exatamente qual regra falha no CI antes de abrir o PR.

Armadilhas
  • O nome da branch de análise local não corresponde ao do CI — Passe -Dsonar.branch.name=<exact ci branch> explicitamente
Combine com: github

Construa um backlog de tech-debt priorizado a partir de dados do Sonar

👤 Tech leads planejando um sprint de pagamento de debt ⏱ ~30 min intermediate

Quando usar: Você tem um orçamento de sprint para tech debt; quer escolher os itens com maior ROI.

Fluxo
  1. Puxe todos os issues abertos com effort + severity
    Para projeto <key>, puxe issues abertos com effort (minutos) e severity. Exclua MINOR/INFO.✓ Copiado
    → Conjunto de issues com dados de effort
  2. Agrupe por arquivo e regra
    Agrupe issues por (arquivo, regra). Some effort por grupo. Classifique os top 20 grupos — estas são oportunidades de fix-once-fix-many.✓ Copiado
    → Grupos classificados por ROI
  3. Transforme os top 10 em tickets Linear
    Para cada um dos top 10, crie um issue Linear intitulado 'Refactor <file> to resolve N× <rule>' com horas estimadas.✓ Copiado
    → Tickets criados + URLs

Resultado: Um backlog de debt pronto para sprint classificado por custo-para-impacto real.

Armadilhas
  • Estimativas de effort são estáticas — não refletem a velocidade do seu time — Trate o effort do Sonar como relativo; multiplique pelo fator de calibração do seu time
Combine com: linear

Combinações

Combine com outros MCPs para 10× de alavancagem

sonarqube + github

Auto-comentário de triage do Sonar em PRs do GitHub

Para PR #342, puxe issues de código novo do Sonar para essa branch, resuma os críticos, poste como um comentário de revisão de PR.✓ Copiado
sonarqube + linear

Converta regressões de quality-gate em tickets Linear

Qualquer projeto que inverteu gate para FAIL hoje: crie um issue Linear P2 atribuído ao project lead.✓ Copiado
sonarqube + notion

Relatório de qualidade semanal postado no Notion

Execute o resumo de qualidade semanal multi-projeto; crie uma página Notion em 'Engineering / Quality / Weekly'.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
search_issues project_key, severities?, types?, branch?, since?, resolved? Ferramenta de consulta principal para bugs/smells/vulns free
get_issue issue_key Mergulhe nos fluxos e changelog de um issue free
search_hotspots project_key, status?, branch? Workflows de revisão de segurança free
get_quality_gate_status project_key, branch? Verificação de gate para workflows de CI/PR free
list_projects organization? Descubra projetos em sua organização free
get_metrics project_key, metrics: str[], branch? Puxe coverage, duplicações, razão de tech-debt etc. free

Custo e limites

O que custa rodar

Cota de API
SonarCloud: generoso, não documentado (~centenas req/min). Server: limitado pela sua infra.
Tokens por chamada
Buscas de issues: 500–3000 tokens dependendo do tamanho da página.
Monetário
SonarQube Community é grátis. SonarCloud grátis para open-source; pago a partir de ~$10/dev/mês.
Dica
Use ps (page size) 100 e pagine; buscar todos os issues de uma vez estufa contexto e é mais lento.

Segurança

Permissões, segredos, alcance

Escopos mínimos: Browse no projeto alvo
Armazenamento de credenciais: SONAR_TOKEN (token de usuário ou projeto) em env; SONAR_URL para on-prem
Saída de dados: Chamadas apenas para sonarcloud.io ou sua URL SonarQube
Nunca conceda: Administer Security Global Admin

Solução de problemas

Erros comuns e correções

401 Unauthorized

SONAR_TOKEN ausente ou revogado. Regenere em Sonar UI → Account → Security.

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

A chave do projeto é sensível a maiúsculas e difere do nome de exibição. Verifique o parâmetro URL do Dashboard do projeto id=.

Branch not found

Sonar só mantém branches analisadas. Certifique-se de que seu CI executou sonar-scanner com -Dsonar.branch.name=....

Empty results despite expected issues

O filtro padrão pode excluir resolvidos; passe resolved=false e sinceLeakPeriod=false explicitamente.

Alternativas

SonarQube vs. outros

AlternativaQuando usarTroca
CodeQL / GitHub Advanced SecurityVocê está no GitHub e quer code scanning integrado com PRsCobertura de regras mais restrita para issues não-segurança
Semgrep MCPVocê quer regras estáticas rápidas e personalizáveis sem uma plataforma hospedadaSem dashboards / conceito de quality-gate pronto para usar

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills