SonarQube

oficial

Fornece integração perfeita com o SonarQube Server ou Cloud, e permite a análise de trechos de código diretamente no contexto do agente.

O que você pode fazer com SonarQube MCP?

  • Analisar trechos de código — Peça ao seu assistente para executar analyze_code_snippet em um exemplo de código para obter resultados instantâneos de qualidade e segurança.
  • Gerenciar issues — Use o conjunto de ferramentas issues para pesquisar, filtrar e atualizar issues do SonarQube por gravidade, status ou projeto.
  • Revisar hotspots de segurança — Consulte o conjunto de ferramentas security-hotspots para listar hotspots que precisam de revisão e entender seu risco.
  • Verificar quality gates — Pergunte sobre o status de quality-gates de um projeto para ver se ele atende ao seu padrão de qualidade.
  • Obter métricas do projeto — Recupere measures como cobertura e duplicações, ou navegue pelos projetos usando o conjunto de ferramentas projects.

Documentação

SonarQube MCP Server

Build Quality Gate Status

O SonarQube MCP Server é um servidor Model Context Protocol (MCP) que permite integração perfeita com o SonarQube Server ou Cloud para qualidade de código e segurança. Ele também suporta a análise de trechos de código diretamente no contexto do agente.

Configuração rápida

Práticas recomendadas de segurança

🔒 Importante: Seu token do SonarQube é uma credencial sensível. Siga estas práticas de segurança:

Ao usar comandos CLI:

  • Evite codificar tokens em argumentos de linha de comando – eles ficam salvos no histórico do shell
  • Use variáveis de ambiente – defina tokens em variáveis de ambiente antes de executar comandos

Ao usar arquivos de configuração:

  • Nunca envie tokens para o controle de versão
  • Use substituição de variáveis de ambiente em arquivos de configuração sempre que possível

🚀 Gere sua configuração

A maneira mais rápida de começar é o Gerador de Configuração do SonarQube MCP Server – uma ferramenta interativa que produz uma configuração pronta para uso no seu cliente de agente de IA preferido.

Configuração manual

Se você prefere configurar as coisas por conta própria, o método mais simples é usar nossa imagem de contêiner em sonarsource/sonarqube-mcp. Use sonarsource/sonarqube-mcp para atualizações automáticas (com --pull=always), ou fixe uma versão (ex.: sonarsource/sonarqube-mcp:1.19.0.2785) para implantações reproduzíveis. Leia abaixo se quiser compilar localmente.

Observação: Embora os exemplos abaixo usem docker, qualquer runtime de contêiner compatível com OCI funciona (ex.: Podman, nerdctl). Basta substituir docker pela sua ferramenta preferida.

Antigravity

O SonarQube MCP Server está disponível na MCP Store do Antigravity. Siga estas instruções:

  1. Abra o Agent Side Panel
  2. Clique nos três pontos (...) no canto superior direito e selecione MCP Servers
  3. Pesquise por SonarQube e selecione Install
  4. Forneça o token de usuário do SonarQube. Você também pode fornecer sua chave de organização para o SonarQube Cloud ou a URL do SonarQube se estiver conectando ao SonarQube Server.

Para SonarQube Cloud US, defina a URL para https://sonarqube.us.

Alternativamente, você pode configurar manualmente o servidor via mcp_config.json:

  • Para conectar com o SonarQube Cloud:

No Agent Side Panel, clique nos três pontos (...) -> MCP Store -> Manage MCP Servers -> View raw config, e adicione o seguinte:

{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_TOKEN>",
        "SONARQUBE_ORG": "<YOUR_ORG>"
      }
    }
  }
}

Para SonarQube Cloud US, adicione manualmente "SONARQUBE_URL": "https://sonarqube.us" à seção env e "-e", "SONARQUBE_URL" ao array args.

  • Para conectar com o SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_URL", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_USER_TOKEN>",
        "SONARQUBE_URL": "<YOUR_SERVER_URL>"
      }
    }
  }
}
Claude Code
  • Para conectar com o SonarQube Cloud:
claude mcp add sonarqube \
  --env SONARQUBE_TOKEN=$SONAR_TOKEN \
  --env SONARQUBE_ORG=$SONAR_ORG \
  -- docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_ORG sonarsource/sonarqube-mcp

Para SonarQube Cloud US, adicione --env SONARQUBE_URL=https://sonarqube.us ao comando.

  • Para conectar com o SonarQube Server:
claude mcp add sonarqube \
  --env SONARQUBE_TOKEN=$SONAR_USER_TOKEN \
  --env SONARQUBE_URL=$SONAR_URL \
  -- docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_URL sonarsource/sonarqube-mcp
Codex CLI

Edite manualmente o arquivo de configuração em ~/.codex/config.toml e adicione a seguinte configuração:

  • Para conectar com o SonarQube Cloud:
[mcp_servers.sonarqube]
command = "docker"
args = ["run", "--init", "--pull=always", "--rm", "-i", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"]
env = { "SONARQUBE_TOKEN" = "<YOUR_USER_TOKEN>", "SONARQUBE_ORG" = "<YOUR_ORG>" }

Para SonarQube Cloud US, adicione "SONARQUBE_URL" = "https://sonarqube.us" à seção env e "-e", "SONARQUBE_URL" ao array args.

  • Para conectar com o SonarQube Server:
[mcp_servers.sonarqube]
command = "docker"
args = ["run", "--init", "--pull=always", "--rm", "-i", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_URL", "sonarsource/sonarqube-mcp"]
env = { "SONARQUBE_TOKEN" = "<YOUR_TOKEN>", "SONARQUBE_URL" = "<YOUR_SERVER_URL>" }
Cursor
  • Para conectar com o SonarQube Cloud:

Install for SonarQube Cloud

Para SonarQube Cloud US, adicione manualmente "SONARQUBE_URL": "https://sonarqube.us" à seção env na sua configuração MCP após a instalação.

  • Para conectar com o SonarQube Server:

Install for SonarQube Server

Gemini CLI

Observação: A extensão Gemini CLI foi movida para o repositório sonarqube-agent-plugins. Instale-a a partir de lá daqui em diante.

Você pode instalar nossa extensão de servidor MCP usando o seguinte comando:

gemini extensions install https://github.com/SonarSource/sonarqube-agent-plugins

Você precisará definir as variáveis de ambiente necessárias antes de iniciar o Gemini:

Variáveis de Ambiente Necessárias:

  • Para SonarQube Cloud:

    • SONARQUBE_TOKEN - Seu token do SonarQube Cloud
    • SONARQUBE_ORG - Sua chave de organização
    • SONARQUBE_URL - (Opcional) Defina como https://sonarqube.us para SonarQube Cloud US
  • Para SonarQube Server:

    • SONARQUBE_TOKEN - Seu token de USUÁRIO do SonarQube Server
    • SONARQUBE_URL - A URL do seu SonarQube Server

Após a instalação, a extensão será instalada em <home>/.gemini/extensions/sonarqube/gemini-extension.json.

GitHub Copilot CLI

Após iniciar o Copilot CLI, execute o seguinte comando para adicionar o servidor MCP do SonarQube:

/mcp add

Você terá que fornecer diferentes informações sobre o servidor MCP; use a tecla tab para navegar entre os campos.

  • Para conectar com o SonarQube Cloud:
Server Name: sonarqube
Server Type: Local (Press 1)
Command: docker
Arguments: run, --init, --pull=always, --rm, -i, -e, SONARQUBE_TOKEN, -e, SONARQUBE_ORG, sonarsource/sonarqube-mcp
Environment Variables: SONARQUBE_TOKEN=<YOUR_TOKEN>,SONARQUBE_ORG=<YOUR_ORG>
Tools: *

Para SonarQube Cloud US, adicione -e, SONARQUBE_URL em Arguments e SONARQUBE_URL=https://sonarqube.us em Environment Variables.

  • Para conectar com o SonarQube Server:
Server Name: sonarqube
Server Type: Local (Press 1)
Command: docker
Arguments: run, --init, --pull=always, --rm, -i, -e, SONARQUBE_TOKEN, -e, SONARQUBE_URL, sonarsource/sonarqube-mcp
Environment Variables: SONARQUBE_TOKEN=<YOUR_USER_TOKEN>,SONARQUBE_URL=<YOUR_SERVER_URL>
Tools: *

O arquivo de configuração está localizado em ~/.copilot/mcp-config.json.

GitHub Copilot coding agent

O GitHub Copilot coding agent pode aproveitar o servidor MCP do SonarQube diretamente no seu CI/CD.

Para adicionar os segredos ao seu ambiente do Copilot, siga a documentação do Copilot. Apenas segredos com nomes com prefixo COPILOT_MCP_ estarão disponíveis para a sua configuração MCP.

No seu repositório GitHub, navegue até Settings -> Copilot -> Coding agent, e adicione a seguinte configuração na seção de configuração MCP:

  • Para conectar com o SonarQube Cloud:
{
  "mcpServers": {
    "sonarqube": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "--rm",
        "-i",
        "-e",
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_ORG",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "COPILOT_MCP_SONARQUBE_TOKEN",
        "SONARQUBE_ORG": "COPILOT_MCP_SONARQUBE_ORG"
      },
      "tools": ["*"]
    }
  }
}

Para SonarQube Cloud US, adicione "-e", "SONARQUBE_URL" ao array args e "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL" à seção env, depois defina o segredo COPILOT_MCP_SONARQUBE_URL=https://sonarqube.us.

  • Para conectar com o SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "--rm",
        "-i",
        "-e",
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_URL",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "COPILOT_MCP_SONARQUBE_USER_TOKEN",
        "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL"
      },
      "tools": ["*"]
    }
  }
}
Kiro

Crie um arquivo .kiro/settings/mcp.json no diretório do seu workspace (ou edite se já existir), adicione a seguinte configuração:

  • Para conectar com o SonarQube Cloud:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "-i",
        "--rm",
        "-e", 
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_ORG",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_TOKEN>",
        "SONARQUBE_ORG": "<YOUR_ORG>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Para SonarQube Cloud US, adicione "-e", "SONARQUBE_URL" ao array args e "SONARQUBE_URL": "https://sonarqube.us" à seção env.

  • Para conectar com o SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "-i",
        "--rm",
        "-e", 
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_URL",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_USER_TOKEN>",
        "SONARQUBE_URL": "<YOUR_SERVER_URL>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
VS Code

Você pode usar os seguintes botões para simplificar o processo de instalação dentro do VS Code.

Install for SonarQube Cloud

Para SonarQube Cloud US, adicione manualmente "SONARQUBE_URL": "https://sonarqube.us" à seção env na sua configuração MCP após a instalação.

Install for SonarQube Server

Windsurf

O SonarQube MCP Server está disponível como um plugin Windsurf. Siga estas instruções:

  1. Abra o Windsurf Settings > Cascade > MCP Servers e selecione Open MCP Marketplace
  2. Pesquise por sonarqube no Cascade MCP Marketplace
  3. Escolha o SonarQube MCP Server e selecione Install
  4. Adicione o token de usuário do SonarQube. Em seguida, adicione a chave de organização se quiser conectar com o SonarQube Cloud, ou a URL do SonarQube se quiser conectar ao SonarQube Server ou Community Build.

Para SonarQube Cloud US, defina a URL para https://sonarqube.us.

Zed

Navegue até a visão Extensions no Zed e pesquise por SonarQube MCP Server. Ao instalar a extensão, você será solicitado a fornecer as variáveis de ambiente necessárias:

  • Ao usar o SonarQube Cloud:
{
  "sonarqube_token": "YOUR_SONARQUBE_TOKEN",
  "sonarqube_org": "SONARQUBE_ORGANIZATION_KEY",
  "docker_path": "DOCKER_PATH"
}

Para SonarQube Cloud US, adicione "sonarqube_url": "https://sonarqube.us" à configuração.

  • Ao usar o SonarQube Server:
{
  "sonarqube_token": "YOUR_SONARQUBE_USER_TOKEN",
  "sonarqube_url": "YOUR_SONARQUBE_SERVER_URL",
  "docker_path": "DOCKER_PATH"
}

O docker_path é o caminho para um executável docker. Exemplos:

Linux/macOS: /usr/bin/docker ou /usr/local/bin/docker

Windows: C:\Program Files\Docker\Docker\resources\bin\docker.exe

💡 Dica: Recomendamos puxar a imagem mais recente regularmente ou antes de relatar problemas para garantir que você tenha os recursos e correções mais atualizados.

Instalação manual

Você pode instalar manualmente o servidor MCP do SonarQube copiando o trecho a seguir no arquivo de configuração de servidores MCP:

  • Para conectar com o SonarQube Cloud:
{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_ORG",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>"
    }
  }
}
  • Para conectar com o SonarQube Server:
{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_URL",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

Integração com o SonarQube for IDE

O SonarQube MCP Server pode ser integrado ao SonarQube for IDE para aprimorar ainda mais seu fluxo de trabalho de desenvolvimento, fornecendo melhor análise de código e insights diretamente no seu IDE.

Configuração

Ao usar o SonarQube for IDE, a variável de ambiente SONARQUBE_IDE_PORT deve ser definida com o número de porta correto. O SonarQube for VS Code inclui um botão Quick Install, que define automaticamente a configuração de porta correta.

Por exemplo, com o SonarQube Cloud:

{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_ORG",
      "-e",
      "SONARQUBE_IDE_PORT",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>",
      "SONARQUBE_IDE_PORT": "<64120-64130>"
    }
  }
}

Ao executar o servidor MCP em um contêiner no Linux, o contêiner não pode acessar o servidor incorporado do SonarQube for IDE executando em localhost. Para permitir que o contêiner se conecte ao servidor do SonarQube for IDE, adicione a opção --network=host ao comando de execução do contêiner.

Configuração

Dependendo do seu ambiente, você deve fornecer variáveis de ambiente específicas.

Base

Você deve adicionar a seguinte variável ao executar o MCP Server:

Variável de ambienteDescrição
STORAGE_PATHCaminho absoluto obrigatório para um diretório gravável onde o SonarQube MCP Server armazenará seus arquivos (ex.: para criação, atualizações e persistência), é fornecido automaticamente ao usar a imagem de contêiner
SONARQUBE_PROJECT_KEYChave de projeto padrão opcional. Quando definida, todas as ferramentas que exigem uma chave de projeto usarão este valor automaticamente — o parâmetro projectKey é removido inteiramente do esquema delas. Útil ao trabalhar em um único projeto.
SONARQUBE_IDE_PORTNúmero de porta opcional entre 64120 e 64130 usado para conectar o SonarQube MCP Server ao SonarQube for IDE.
SONARQUBE_DEBUG_ENABLEDQuando definido como true, habilita o registro de depuração. Os logs de depuração são gravados tanto no arquivo de log quanto em STDERR. Útil para solucionar problemas de conectividade ou configuração. Padrão: false.
SONARQUBE_LOG_TO_FILE_DISABLEDQuando definido como true, desativa completamente a gravação de logs em disco. Nenhum arquivo de log será criado em STORAGE_PATH/logs/. Útil em ambientes conteinerizados ou efêmeros onde o registro em arquivo é indesejável. Padrão: false.

Montagem do Workspace (Reduzindo o Consumo de Contexto)

Por padrão, a ferramenta de análise analyze_code_snippet exige que o agente passe o conteúdo completo do arquivo como um argumento fileContent. Para arquivos grandes ou ao analisar muitos arquivos em uma sessão, isso aumenta significativamente o uso da janela de contexto e o custo. Solução: monte o diretório do seu projeto no contêiner em /app/mcp-workspace. Quando essa montagem for detectada, o servidor lê os arquivos diretamente do disco usando o argumento filePath relativo ao projeto — o conteúdo do arquivo nunca passa pelo contexto do agente.

{
  "args": [
    "run", "-i", "--rm", "--init", "--pull=always",
    "-e", "SONARQUBE_TOKEN",
    "-e", "SONARQUBE_ORG",
    "-v", "/path/to/your/project:/app/mcp-workspace",
    "sonarsource/sonarqube-mcp"
  ]
}

Quando a montagem está ativa:

  • run_advanced_code_analysis fica disponível se sua organização tiver direito a ele
  • analyze_code_snippet: filePath é obrigatório e fileContent não é usado — o servidor resolve o arquivo da mesma forma

Ativação Seletiva de Ferramentas

Por padrão, apenas conjuntos de ferramentas importantes são habilitados para reduzir a sobrecarga de contexto. Você pode habilitar conjuntos de ferramentas adicionais conforme necessário.

Variável de ambienteDescrição
SONARQUBE_TOOLSETSLista separada por vírgulas de conjuntos de ferramentas a serem habilitados. Quando definida, apenas esses conjuntos de ferramentas estarão disponíveis. Se não definida, os conjuntos de ferramentas importantes padrão são habilitados (analysis, ide, issues, projects, quality-gates, rules, duplications, measures, security-hotspots, dependency-risks, coverage, cag). Nota: O conjunto de ferramentas projects é sempre habilitado automaticamente, pois é necessário para encontrar chaves de projeto para outras operações. As ferramentas de contexto Vortex (nome obsoleto: Context Augmentation/CAG) e as ferramentas de análise Vortex (nome obsoleto: Advanced Analysis/A3S) estão disponíveis apenas no modo stdio e compartilham uma única autorização de organização combinada — uma organização deve ter direito a ambas para usar qualquer uma. Acessá-las por meio das chaves de conjunto de ferramentas cag ou analysis está obsoleto em favor da chave unificada vortex; as chaves antigas ainda funcionam para compatibilidade retroativa, mas um aviso de inicialização e uma nota de depreciação nas instruções do servidor são emitidos sempre que elas são usadas sem vortex. No modo HTTP Streamable, os clientes podem enviar um cabeçalho HTTP SONARQUBE_TOOLSETS para restringir ainda mais isso por solicitação, mas não podem habilitar conjuntos de ferramentas além daqueles com os quais o servidor foi iniciado (veja transporte HTTP Streamable abaixo).
SONARQUBE_READ_ONLYQuando definido como true, habilita o modo somente leitura que desativa todas as operações de escrita (por exemplo, alterar o status de um problema). Este filtro é cumulativo com SONARQUBE_TOOLSETS se ambos forem definidos. Padrão: false. No modo HTTP Streamable, os clientes podem enviar um cabeçalho HTTP SONARQUBE_READ_ONLY para restringir ainda mais solicitações individuais a somente leitura, mas não podem remover uma restrição de somente leitura no nível do servidor (veja transporte HTTP Streamable abaixo).
Conjuntos de Ferramentas Disponíveis
Conjunto de FerramentasChaveDescrição
AnalysisanalysisFerramentas de análise de código (análise local via analyze_code_snippet, obsoleto em favor de analyze_file_list/análise Vortex)
IDEideFerramentas de ponte do SonarQube para IDE (análise de arquivos, alternância de análise automática) — atualmente também incluídas em analysis
IssuesissuesPesquisar e gerenciar problemas do SonarQube
Security Hotspotssecurity-hotspotsPesquisar e revisar Security Hotspots
ProjectsprojectsNavegar e pesquisar projetos do SonarQube
Quality Gatesquality-gatesAcessar portões de qualidade e seu status
RulesrulesNavegar e pesquisar regras do SonarQube
SourcessourcesAcessar código-fonte e informações de SCM
DuplicationsduplicationsEncontrar duplicações de código entre projetos
MeasuresmeasuresRecuperar métricas e medidas (inclui ferramentas de medidas e métricas)
LanguageslanguagesListar linguagens de programação suportadas
PortfoliosportfoliosGerenciar portfólios e empresas (Cloud e Server)
SystemsystemFerramentas de administração do sistema (apenas Server)
WebhookswebhooksGerenciar webhooks
Dependency Risksdependency-risksAnalisar riscos de dependência e problemas de segurança (SCA)
CoveragecoverageFerramentas de análise e melhoria de cobertura de testes
Vortex ContextcagFerramentas de contexto Vortex — apenas stdio. Obsoleto em favor de vortex (nome antigo: Context Augmentation/CAG)
VortexvortexConjunto de ferramentas unificado, recomendado, que apresenta tanto as ferramentas de contexto Vortex quanto as de análise Vortex sob um único nome (apenas stdio, requer a autorização combinada da organização)
Agentic Readinessagentic-readinessFerramentas de Avaliação de Prontidão Agêntica (SonarQube Cloud, requer autorização da organização)

Exemplos

Habilite os conjuntos de ferramentas Analysis, Issues e Quality Gates (usando Docker com SonarQube Cloud):

docker run --init --pull=always -i --rm \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_ORG="<org>" \
  -e SONARQUBE_TOOLSETS="analysis,issues,quality-gates" \
  sonarsource/sonarqube-mcp

Nota: O conjunto de ferramentas projects é sempre habilitado automaticamente, então você não precisa incluí-lo em SONARQUBE_TOOLSETS.

Habilite o modo somente leitura (usando Docker com SonarQube Cloud):

docker run --init --pull=always -i --rm \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_ORG="<org>" \
  -e SONARQUBE_READ_ONLY="true" \
  sonarsource/sonarqube-mcp

SonarQube Cloud

Para habilitar a funcionalidade completa, as seguintes variáveis de ambiente devem ser definidas antes de iniciar o servidor:

Variável de ambienteDescriçãoObrigatória
SONARQUBE_TOKENSeu token do SonarQube CloudSim
SONARQUBE_ORGSua chave de organização do SonarQube CloudSim
SONARQUBE_URLURL personalizada do SonarQube Cloud (padrão: https://sonarcloud.io). Use isso para SonarQube Cloud US: https://sonarqube.usNão

Exemplos:

  • SonarQube Cloud: Apenas SONARQUBE_TOKEN e SONARQUBE_ORG são necessários
  • SonarQube Cloud US: Defina SONARQUBE_TOKEN, SONARQUBE_ORG e SONARQUBE_URL=https://sonarqube.us

SonarQube Server

Variável de ambienteDescriçãoObrigatória
SONARQUBE_TOKENSeu token USER do SonarQube ServerSim
SONARQUBE_URLURL do seu SonarQube ServerSim

⚠️ A conexão com o SonarQube Server requer um token do tipo USER e não funcionará corretamente se tokens de projeto ou tokens globais forem usados. 💡 Dica de Configuração (modo stdio): A presença de SONARQUBE_ORG determina se você está se conectando ao SonarQube Cloud ou ao Server. Se SONARQUBE_ORG estiver definido, o SonarQube Cloud é usado; caso contrário, o SonarQube Server é usado.

Modos de Transporte

A especificação MCP define dois mecanismos de transporte: Stdio e HTTP Streamable. O SonarQube MCP Server suporta ambos:

Transporte MCPModo do servidorUso típico
StdioPadrão (sem SONARQUBE_TRANSPORT)Clientes MCP locais que iniciam o servidor como um subprocesso (Cursor, Claude Code, VS Code, etc.)
HTTP StreamableSONARQUBE_TRANSPORT=http ou httpsImplantações remotas ou multiusuário; clientes se conectam a /mcp via HTTP(S) (ex.: Windsurf com uma URL de servidor auto-hospedado)

Nota: HTTP Streamable é o transporte de rede MCP atual. O transporte HTTP somente SSE, mais antigo, das versões anteriores do MCP está obsoleto e não é suportado.

1. Stdio (Padrão - Recomendado para Desenvolvimento Local)

O modo recomendado para desenvolvimento local e configurações de usuário único, usado pela maioria dos clientes MCP.

Exemplo - Docker com SonarQube Cloud:

{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<your-token>",
        "SONARQUBE_ORG": "<your-org>"
      }
    }
  }
}

2. HTTP (HTTP Streamable)

Transporte HTTP Streamable não criptografado. Use HTTPS para implantações multiusuário.

⚠️ Não Recomendado: Use Stdio para desenvolvimento local ou HTTPS (HTTP Streamable) para implantações de produção multiusuário.

Variável de ambienteDescriçãoPadrão
SONARQUBE_TRANSPORTDefina como http para habilitar o transporte HTTP StreamableNão definido (stdio)
SONARQUBE_HTTP_PORTNúmero da porta (1024-65535)8080
SONARQUBE_HTTP_HOSTHost para vincular (padrão: localhost por segurança)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSOrigens de navegador permitidas para CORS, separadas por vírgula (ex.: https://my-app.example.com)Não definido
SONARQUBE_MCP_IN_CONTAINERDefina como true ao executar em um contêiner. A imagem oficial do Docker define isso automaticamente; defina você mesmo ao usar outros runtimes OCI (Podman, Kubernetes, Nomad, etc.).false

Nota: No modo HTTP Streamable (HTTP ou HTTPS), o servidor é sem estado — cada solicitação do cliente deve incluir um cabeçalho Authorization: Bearer <token> com o token SonarQube do próprio usuário. Para o SonarQube Cloud, a organização é resolvida da seguinte forma:

  • Se SONARQUBE_ORG for definido na inicialização do servidor, todas as solicitações são roteadas para essa organização. Os clientes não devem enviar um cabeçalho SONARQUBE_ORG — fazer isso resultará em erro.
  • Se SONARQUBE_ORG não for definido na inicialização do servidor, cada cliente deve fornecer um cabeçalho SONARQUBE_ORG em cada solicitação. Os clientes também podem restringir as ferramentas visíveis por solicitação, fornecendo cabeçalhos SONARQUBE_TOOLSETS e/ou SONARQUBE_READ_ONLY; eles aplicam filtros adicionais além da configuração do nível do servidor — eles só podem reduzir o escopo, nunca expandi-lo. Nenhum estado de sessão é mantido entre solicitações.

Obsoleto: O cabeçalho de solicitação SONARQUBE_TOKEN ainda é aceito para compatibilidade retroativa, mas será removido em uma versão futura. Migre para Authorization: Bearer <token>.

3. HTTPS (HTTP Streamable sobre TLS) (Recomendado para Implantações de Produção Multiusuário)

Transporte HTTP Streamable seguro com criptografia TLS. Requer certificados SSL.

Recomendado para Produção: Use HTTPS ao implantar o servidor MCP para vários usuários via HTTP Streamable. O servidor vincula-se a 127.0.0.1 (localhost) por padrão por segurança.

Variável de ambienteDescriçãoPadrão
SONARQUBE_TRANSPORTDefina como https para habilitar o transporte HTTP Streamable sobre TLSNão definido (stdio)
SONARQUBE_HTTP_PORTNúmero da porta (normalmente 8443 para HTTPS)8080
SONARQUBE_HTTP_HOSTHost para vincular (padrão: localhost por segurança)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSOrigens de navegador permitidas para CORS, separadas por vírgula (ex.: https://my-app.example.com)Não definido
SONARQUBE_MCP_IN_CONTAINERDefina como true ao executar em um contêiner. A imagem oficial do Docker define isso automaticamente; defina você mesmo ao usar outros runtimes OCI (Podman, Kubernetes, Nomad, etc.).false

Configuração de Certificado SSL (Opcional):

Variável de ambienteDescriçãoPadrão
SONARQUBE_HTTPS_KEYSTORE_PATHCaminho para o arquivo de keystore (.p12 ou .jks)/etc/ssl/mcp/keystore.p12
SONARQUBE_HTTPS_KEYSTORE_PASSWORDSenha do keystoresonarlint
SONARQUBE_HTTPS_KEYSTORE_TYPETipo do keystore (PKCS12 ou JKS)PKCS12

Exemplo - Docker com SonarQube Cloud:

Nota: Ao executar em um contêiner, defina SONARQUBE_HTTP_HOST=0.0.0.0 para que o contêiner escute em todas as interfaces e o mapeamento de porta do runtime funcione, e defina SONARQUBE_MCP_IN_CONTAINER=true para informar ao servidor que ele está dentro de um contêiner. A imagem oficial do Docker define o último automaticamente; defina você mesmo ao usar outros runtimes OCI (Podman, Kubernetes, Nomad, etc.). A flag de porta do lado do host controla quem pode alcançar o servidor de fora do contêiner. SONARQUBE_HTTP_HOST=0.0.0.0 apenas controla onde o servidor escuta dentro do contêiner — o CORS do navegador ainda permite origens localhost por padrão.

Para um servidor executando localmente na sua máquina (acessível somente a partir do localhost):

docker run --init --pull=always -p 127.0.0.1:8443:8443 \
  -v $(pwd)/keystore.p12:/etc/ssl/mcp/keystore.p12:ro \
  -e SONARQUBE_TRANSPORT=https \
  -e SONARQUBE_HTTP_HOST=0.0.0.0 \
  -e SONARQUBE_HTTP_PORT=8443 \
  -e SONARQUBE_TOKEN="<init-token>" \
  -e SONARQUBE_ORG="<your-org>" \
  sonarsource/sonarqube-mcp

Para um servidor acessível pela rede (implantações remotas):

docker run --init --pull=always -p 8443:8443 \
  -v $(pwd)/keystore.p12:/etc/ssl/mcp/keystore.p12:ro \
  -e SONARQUBE_TRANSPORT=https \
  -e SONARQUBE_HTTP_HOST=0.0.0.0 \
  -e SONARQUBE_HTTP_PORT=8443 \
  -e SONARQUBE_TOKEN="<init-token>" \
  -e SONARQUBE_ORG="<your-org>" \
  sonarsource/sonarqube-mcp

Configuração do Cliente (SonarQube Cloud):

{
  "mcpServers": {
    "sonarqube-https": {
      "url": "https://your-server:8443/mcp",
      "headers": {
        "Authorization": "Bearer <your-token>",
        "SONARQUBE_ORG": "<your-org>",
        "SONARQUBE_TOOLSETS": "issues,quality-gates",
        "SONARQUBE_READ_ONLY": "true"
      }
    }
  }
}

Configuração do Cliente (SonarQube Server):

{
  "mcpServers": {
    "sonarqube-https": {
      "url": "https://your-server:8443/mcp",
      "headers": {
        "Authorization": "Bearer <your-token>",
        "SONARQUBE_TOOLSETS": "issues,quality-gates",
        "SONARQUBE_READ_ONLY": "true"
      }
    }
  }
}

Nota: SONARQUBE_TOOLSETS e SONARQUBE_READ_ONLY são cabeçalhos opcionais por solicitação que restringem o conjunto de ferramentas do servidor para aquela solicitação específica. Eles só podem reduzir o escopo — não podem habilitar conjuntos de ferramentas ou remover restrições além do que o servidor foi iniciado.

Nota: Para desenvolvimento local, use o transporte Stdio em vez disso (o padrão). HTTPS Streamable HTTP destina-se a implantações de produção multiusuário com certificados SSL adequados.

Endpoints de Serviço

Quando executando no modo HTTP Streamable (http ou https), o servidor expõe alguns endpoints de serviço não autenticados além do endpoint MCP em /mcp. Eles são destinados ao uso serviço a serviço (monitoramento, orquestração, verificações de compatibilidade do cliente) e não exigem um cabeçalho Authorization.

EndpointMétodoDescriçãoExemplo de resposta
/healthGETSonda de vivacidade. Retorna 200 OK com corpo vazio assim que o servidor estiver aceitando solicitações.(corpo vazio)
/infoGETRetorna a versão do servidor MCP como JSON. Útil para verificar a versão do servidor implantado.{"version":"1.16.0"}

Esses endpoints não estão disponíveis quando executados com o transporte Stdio.

Certificados Personalizados

Se o seu SonarQube Server usar um certificado autoassinado ou um certificado de uma Autoridade Certificadora (CA) privada, você pode adicionar certificados personalizados ao contêiner que serão instalados automaticamente.

Configuração

Usando Montagem de Volume

Monte um diretório contendo seus certificados ao executar o contêiner:

docker run --init --pull=always -i --rm \
  -v /path/to/your/certificates/:/usr/local/share/ca-certificates/:ro \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_URL="<url>" \
  sonarsource/sonarqube-mcp

Formatos de Certificado Suportados

O contêiner suporta os seguintes formatos de certificado:

  • Arquivos .crt (codificados como PEM ou DER)
  • Arquivos .pem (codificados como PEM)

Configuração MCP com Certificados

Ao usar certificados personalizados, você pode modificar sua configuração MCP para montar os certificados:

{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-v",
      "/path/to/your/certificates/:/usr/local/share/ca-certificates/:ro",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_URL",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

Nota: Executando o servidor a partir de um JAR em vez do contêiner? A montagem de volume acima instala certificados no trust store do sistema operacional do contêiner, que o servidor também lê. Se você não puder usar o trust store do SO — notavelmente no Windows, onde ele não é consultado — aponte a JVM para um truststore Java contendo o certificado da CA: -Djavax.net.ssl.trustStore=/path/to/truststore.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=<passphrase>. Ele é adicionado além dos certificados confiáveis padrão.

Proxy

O SonarQube MCP Server suporta proxies HTTP e SOCKS5 por meio das propriedades padrão do sistema Java.

Configuração

Proxy HTTP/HTTPS

Você pode configurar as definições de proxy usando propriedades do sistema Java. Elas podem ser definidas como variáveis de ambiente ou passadas como argumentos JVM.

Propriedades Comuns de Proxy:

PropriedadeDescriçãoExemplo
http.proxyHostHostname do proxy HTTPproxy.example.com
http.proxyPortPorta do proxy HTTP8080
https.proxyHostHostname do proxy HTTPSproxy.example.com
https.proxyPortPorta do proxy HTTPS8443
http.nonProxyHostsHosts que ignoram o proxy (separados por pipe)localhost|127.0.0.1|*.internal.com

Autenticação de Proxy HTTP/HTTPS:

PropriedadeDescriçãoExemplo
http.proxyUserNome de usuário do proxy HTTPmyuser
http.proxyPasswordSenha do proxy HTTPmypassword
https.proxyUserNome de usuário do proxy HTTPSmyuser
https.proxyPasswordSenha do proxy HTTPSmypassword

Proxy SOCKS5

Proxies SOCKS5 são suportados.

PropriedadeDescriçãoPadrãoExemplo
socksProxyHostHostname do proxy SOCKS5localhost
socksProxyPortPorta do proxy SOCKS510801080
java.net.socks.usernameNome de usuário SOCKS5 (se autenticação for necessária)myuser
java.net.socks.passwordSenha SOCKS5 (se autenticação for necessária)mypassword

Certificado do Cliente (TLS Mútuo)

Se o seu SonarQube Server exigir que os clientes apresentem um certificado durante o handshake TLS (TLS mútuo), você pode fornecer um keystore PKCS12 montando-o no contêiner e passando sua localização via JAVA_OPTS.

Configuração

Usando um keystore PKCS12

Monte seu arquivo .p12 ou .pfx no contêiner e defina a variável de ambiente JAVA_OPTS com as propriedades do keystore:

docker run --init --pull=always -i --rm \
  -v /path/to/client.p12:/etc/ssl/mcp/client.p12:ro \
  -e JAVA_OPTS="-Djavax.net.ssl.keyStore=/etc/ssl/mcp/client.p12 -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStorePassword=<passphrase>" \
  -e SONARQUBE_TOKEN="<token>" \
  -e SONARQUBE_URL="<url>" \
  sonarsource/sonarqube-mcp

Nota: O arquivo de certificado deve ser legível pelo processo do contêiner. Verifique e corrija as permissões se necessário:

ls -la /path/to/client.p12       # look for -rw-r--r-- (644) or wider
chmod 644 /path/to/client.p12    # grant read access to the container user

Omita -Djavax.net.ssl.keyStorePassword se o keystore não tiver senha. Observe que a senha usada aqui ficaria visível através de docker inspect ou da lista de processos.

Configuração MCP com um Certificado de Cliente

{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run", "--init", "--pull=always", "-i", "--rm",
      "-v", "/path/to/client.p12:/etc/ssl/mcp/client.p12:ro",
      "-e", "JAVA_OPTS",
      "-e", "SONARQUBE_TOKEN",
      "-e", "SONARQUBE_URL",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "JAVA_OPTS": "-Djavax.net.ssl.keyStore=/etc/ssl/mcp/client.p12 -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStorePassword=<passphrase>",
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

Usando um keystore PKCS12 com um JAR autônomo

Ao executar o servidor a partir de um JAR, passe as propriedades do keystore como argumentos JVM antes de -jar:

java \
  -Djavax.net.ssl.keyStore=/path/to/client.p12 \
  -Djavax.net.ssl.keyStoreType=PKCS12 \
  -Djavax.net.ssl.keyStorePassword=<passphrase> \
  -jar <path_to_sonarqube_mcp_server_jar>

Omita -Djavax.net.ssl.keyStorePassword se o keystore não tiver senha.

Configuração MCP com um Certificado de Cliente (JAR)

{
  "sonarqube": {
    "command": "java",
    "args": [
      "-Djavax.net.ssl.keyStore=/path/to/client.p12",
      "-Djavax.net.ssl.keyStoreType=PKCS12",
      "-Djavax.net.ssl.keyStorePassword=<passphrase>",
      "-jar",
      "<path_to_sonarqube_mcp_server_jar>"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

Nota: Os arquivos de certificado e chave PEM (arquivos separados .crt/.key) devem ser convertidos para o formato PKCS12 primeiro. Use openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 para convertê-los.

Ferramentas

Análise

  • analyze_code_snippet - Analise o conteúdo do arquivo com os analisadores do SonarQube para identificar problemas de qualidade e segurança do código. Sempre analisa o conteúdo completo do arquivo para precisão. Opcionalmente, filtre os resultados para um trecho de código específico.

    Obsoleto: analyze_code_snippet será removido em uma versão futura. Conecte o SonarQube for IDE para usar analyze_file_list, ou habilite a análise Vortex para sua organização usar run_advanced_code_analysis (veja abaixo).

    Uso:

    • Com workspace montado (recomendado): passe filePath (relativo ao projeto) — o servidor lê o arquivo diretamente, mantendo o conteúdo do arquivo fora da janela de contexto do agente
    • Sem montagem de workspace: passe o fileContent completo para análise completa do arquivo (relata todos os problemas)
    • Adicione o codeSnippet opcional para filtrar resultados - apenas problemas dentro do trecho serão relatados (localização do trecho detectada automaticamente)

    Parâmetros:

    • projectKey - A chave do projeto SonarQube - String obrigatória (Ignorada quando SONARQUBE_PROJECT_KEY é definida)
    • filePath - Caminho relativo ao projeto do arquivo a analisar (por exemplo, src/main/java/MyClass.java). Usado quando o workspace está montado em /app/mcp-workspace - String
    • fileContent - Conteúdo completo do arquivo como uma string. Obrigatório quando o workspace não está montado - String
    • codeSnippet - Trecho de código para filtrar problemas (deve corresponder ao conteúdo em fileContent) - String
    • language - Linguagem do código (por exemplo, 'java', 'python', 'js', 'ts', 'tsx', 'jsx') - String
    • scope - Escopo do arquivo: MAIN ou TEST (padrão: MAIN) - String

    Linguagens suportadas: Java, Kotlin, Python, Ruby, Go, JavaScript (js, jsx), TypeScript (ts, tsx), JSP, PHP, XML, HTML, CSS, CloudFormation, Kubernetes, Terraform, Azure Resource Manager, Ansible, Docker, Detecção de segredos

Quando a integração com o SonarQube for IDE está habilitada: (essas duas ferramentas são marcadas em ambos os conjuntos de ferramentas analysis e ide)

  • analyze_file_list - Analise arquivos no diretório de trabalho atual usando o SonarQube for IDE. Esta ferramenta se conecta a uma instância em execução do SonarQube for IDE para realizar análise de qualidade de código em uma lista de arquivos.

    • file_absolute_paths - Lista de caminhos absolutos de arquivos para analisar - String[] obrigatório
  • toggle_automatic_analysis - Ative ou desative a análise automática do SonarQube for IDE. Quando habilitada, o SonarQube for IDE analisará automaticamente os arquivos à medida que forem modificados no diretório de trabalho. Quando desabilitada, a análise automática é desativada.

    • enabled - Ative ou desative a análise automática - Boolean obrigatório

Quando a análise Vortex está habilitada para sua organização SonarQube Cloud:

Requer ter o workspace montado em /app/mcp-workspace

  • run_advanced_code_analysis - Execute a análise Vortex no SonarQube Cloud para um único arquivo. A organização é inferida da configuração MCP.
    • projectKey - A chave do projeto - String obrigatória (Ignorada quando SONARQUBE_PROJECT_KEY é definida)
    • branch - Nome do branch usado para recuperar o contexto de análise mais recente - String obrigatória
    • filePath - Caminho relativo ao projeto do arquivo a analisar (por exemplo, src/main/java/MyClass.java). - String obrigatória
    • fileScope - Define em qual escopo o arquivo se origina: 'MAIN' ou 'TEST' (padrão: MAIN) - String

Cobertura

  • search_files_by_coverage - Pesquise arquivos em um projeto ordenados por cobertura (crescente - pior cobertura primeiro). Esta ferramenta ajuda a identificar arquivos que precisam de melhorias na cobertura de testes.

    • projectKey - A chave do projeto para pesquisar - String obrigatória (Ignorada quando SONARQUBE_PROJECT_KEY é definida)
    • branch - Nome do branch opcional para análise baseada em branch. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID de pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
    • maxCoverage - Limite máximo de cobertura (0-100). Retorne apenas arquivos com cobertura <= este valor - Number
    • pageIndex - Índice da página (baseado em 1, padrão: 1) - Number
    • pageSize - Tamanho da página (padrão: 100, máx: 500) - Number
  • get_file_coverage_details - Obtenha informações de cobertura linha por linha para um arquivo específico, incluindo quais linhas exatas não estão cobertas e quais têm ramificações parcialmente cobertas. Esta ferramenta ajuda a identificar precisamente onde adicionar cobertura de testes. Use após identificar arquivos com baixa cobertura via search_files_by_coverage.

    • key - Chave do arquivo (por exemplo, my_project:src/foo/Bar.java) - String obrigatória
    • branch - Nome do branch opcional para análise baseada em branch. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID de pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
    • from - Primeira linha a analisar (baseado em 1, padrão: 1) - Number
    • to - Última linha a analisar (inclusiva). Se não especificada, todas as linhas são retornadas - Number

Riscos de Dependência

Nota: Os riscos de dependência estão disponíveis apenas ao conectar-se ao SonarQube Server 2025.4 Enterprise ou superior com o SonarQube Advanced Security habilitado.

  • search_dependency_risks - Pesquise problemas de análise de composição de software (riscos de dependência) de um projeto SonarQube, emparelhados com versões que aparecem no projeto, aplicação ou portfólio analisado.
    • projectKey - Chave do projeto - String obrigatória (Ignorada quando SONARQUBE_PROJECT_KEY é definida)
    • branch - Nome do branch opcional para análise baseada em branch. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID de pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
    • pageIndex - Índice de página opcional (baseado em 1, padrão: 1) - Integer
    • pageSize - Tamanho de página opcional. Deve ser maior que 0 e menor ou igual a 500 (padrão: 100) - Integer

Empresas

Nota: As empresas estão disponíveis apenas ao conectar-se ao SonarQube Cloud.

  • list_enterprises - Liste as empresas disponíveis no SonarQube Cloud às quais você tem acesso. Use esta ferramenta para descobrir IDs de empresas que podem ser usados com outras ferramentas.
    • enterpriseKey - Chave de empresa opcional para filtrar resultados - String

Problemas

  • change_sonar_issue_status - Altere o status de um problema do SonarQube para "accept", "falsepositive" ou para "reopen" um problema.

    • key - Chave do problema - String obrigatória
    • status - Novo status do problema - Enum obrigatório {"accept", "falsepositive", "reopen"}
  • search_sonar_issues_in_projects - Pesquise problemas do SonarQube nos projetos da minha organização.

    • projectKeys - Lista opcional de chaves de projeto SonarQube - String[]
    • branch - Nome do branch opcional para análise baseada em branch. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID de pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
    • severities - Lista opcional de severidades para filtrar. Valores possíveis: INFO, LOW, MEDIUM, HIGH, BLOCKER - String[]
    • impactSoftwareQualities - Lista opcional de qualidades de software para filtrar. Valores possíveis: MAINTAINABILITY, RELIABILITY, SECURITY - String[]
    • issueStatuses - Lista opcional de status de problemas para filtrar. Valores possíveis: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED, IN_SANDBOX - String[]
    • issueKey - Chave de problema opcional para buscar um problema específico - String
    • pageIndex - Índice de página opcional baseado em 1 (padrão: 1) - Integer
    • pageSize - Tamanho de página opcional. Deve ser maior que 0 e menor ou igual a 500 (padrão: 100) - Integer

Hotspots de Segurança

  • search_security_hotspots - Pesquise Hotspots de Segurança em um projeto SonarQube.

    • projectKey - Chave do projeto ou aplicação - String obrigatória (Ignorada quando SONARQUBE_PROJECT_KEY é definida)
    • hotspotKeys - Lista separada por vírgulas de chaves específicas de Security Hotspot para recuperar - String[]
    • branch - Nome do branch opcional para análise baseada em branch. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID de pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
    • files - Lista opcional de caminhos de arquivo para filtrar - String[]
    • status - Filtro de status opcional: TO_REVIEW, REVIEWED - String
    • resolution - Filtro de resolução opcional: FIXED, SAFE, ACKNOWLEDGED - String
    • sinceLeakPeriod - Filtrar hotspots criados desde o período de vazamento (código novo) - Boolean
    • onlyMine - Mostrar apenas hotspots atribuídos a mim - Boolean
    • pageIndex - Índice de página opcional baseado em 1 (padrão: 1) - Integer
    • pageSize - Tamanho de página opcional. Deve ser maior que 0 e menor ou igual a 500 (padrão: 100) - Integer
  • show_security_hotspot - Obtenha informações detalhadas sobre um Security Hotspot específico, incluindo detalhes da regra, contexto do código, fluxos e comentários.

    • hotspotKey - Chave do Security Hotspot - String obrigatória
  • change_security_hotspot_status - Revise um Security Hotspot alterando seu status. Ao marcar como REVIEWED, você deve especificar uma resolução (FIXED, SAFE ou ACKNOWLEDGED).

    • hotspotKey - Chave do Security Hotspot - String obrigatória
    • status - Novo status - Enum obrigatório {"TO_REVIEW", "REVIEWED"}
    • resolution - Resolução quando o status é REVIEWED - Enum {"FIXED", "SAFE", "ACKNOWLEDGED"}
    • comment - Comentário de revisão opcional - String

Idiomas

  • list_languages - Liste todos os idiomas de programação suportados nesta instância do SonarQube.
    • q - Padrão opcional para corresponder a chaves/nomes de idioma - String

Medidas

  • get_component_measures - Obtenha medidas do SonarQube para um componente (projeto, diretório, arquivo).
    • projectKey - A chave do projeto - String obrigatória quando SONARQUBE_PROJECT_KEY não está configurado
    • branch - Nome do branch opcional para análise baseada em branch. Use list_branches para descobrir nomes válidos - String
    • metricKeys - Chaves de métrica opcionais para recuperar (por exemplo, ncloc, complexity, violations, coverage) - String[]
    • pullRequest - Chave/ID de pull request opcional. Use list_pull_requests para descobrir chaves válidas - String

Métricas

  • search_metrics - Pesquise métricas do SonarQube.
    • pageIndex - Índice de página opcional baseado em 1 (padrão: 1) - Integer
    • pageSize - Tamanho de página opcional. Deve ser maior que 0 e menor ou igual a 500 (padrão: 100) - Integer

Portfólios

  • list_portfolios - Lista os portfólios empresariais disponíveis no SonarQube com opções de filtragem e paginação.

    Para SonarQube Server:

    • q - Consulta de pesquisa opcional para filtrar portfólios por nome ou chave - String
    • favorite - Se verdadeiro, retorna apenas portfólios favoritos - Boolean
    • pageIndex - Número da página opcional baseado em 1 (padrão: 1) - Integer
    • pageSize - Tamanho da página opcional, máximo 500 (padrão: 100) - Integer

    Para SonarQube Cloud:

    • enterpriseId - UUID da empresa. Pode ser omitido somente se o parâmetro 'favorite' for fornecido com valor verdadeiro - String
    • q - Consulta de pesquisa opcional para filtrar portfólios por nome - String
    • favorite - Deve ser verdadeiro se o parâmetro 'enterpriseId' for omitido. Se verdadeiro, retorna apenas portfólios favoritos do usuário logado. Não pode ser verdadeiro quando 'draft' for verdadeiro - Boolean
    • draft - Se verdadeiro, retorna apenas rascunhos criados pelo usuário logado. Não pode ser verdadeiro quando 'favorite' for verdadeiro - Boolean
    • pageIndex - Índice opcional da página a buscar (padrão: 1) - Integer
    • pageSize - Tamanho opcional da página a buscar (padrão: 50) - Integer

Projetos

  • search_my_sonarqube_projects - Encontra projetos SonarQube. A resposta é paginada.

    • pageIndex - Índice da página opcional baseado em 1 (padrão: 1) - Integer
    • pageSize - Tamanho da página opcional. Deve ser maior que 0 e menor ou igual a 500 (padrão: 500) - Integer
    • q - Consulta de pesquisa opcional para filtrar projetos por nome (correspondência parcial) ou chave (correspondência exata) - String
  • list_branches - Lista ramificações analisadas para um projeto.

    • SonarQube Cloud: retorna ramificações de longa duração (LONG) e de curta duração (SHORT) com campos type e mergeBranch. Filtro opcional branchTypes: ALL (padrão), LONG ou SHORT.
    • SonarQube Server: retorna todas as ramificações analisadas (nome, quality gate, data de análise). Sem filtros type, mergeBranch ou branchTypes.
    • Use os nomes de ramificação retornados como parâmetro branch em outras ferramentas. Para análise de pull request, use list_pull_requests em vez disso.
    • projectKey - Chave do projeto (ex.: my_project) - String obrigatória (Ignorado quando SONARQUBE_PROJECT_KEY é definido)
    • branchTypes - (Somente SonarQube Cloud) Filtro opcional: ALL (padrão), LONG ou SHORT - Enum {"ALL", "LONG", "SHORT"}
  • list_pull_requests - Lista todos os pull requests de um projeto. Use esta ferramenta para descobrir pull requests para análise decorada com PR (cobertura, problemas, quality gate). Retorna a chave/ID do pull request, que pode ser usada com outras ferramentas. Para análise baseada em ramificação sem pull requests, use list_branches em vez disso.

    • projectKey - Chave do projeto (ex.: my_project) - String obrigatória (Ignorado quando SONARQUBE_PROJECT_KEY é definido)

Portões de Qualidade

  • get_project_quality_gate_status - Obtém o status do Quality Gate para o projeto SonarQube.

    • analysisId - ID de análise opcional - String
    • branch - Nome da ramificação opcional para análise baseada em ramificação. Use list_branches para descobrir nomes válidos - String
    • projectId - ID do projeto opcional - String
    • projectKey - Chave do projeto opcional - String
    • pullRequest - Chave/ID do pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
  • list_quality_gates - Lista todos os quality gates no meu SonarQube.

Regras

  • show_rule - Mostra informações detalhadas sobre uma regra do SonarQube.
    • key - Chave da regra - String obrigatória

Duplicações

  • search_duplicated_files - Procura arquivos com duplicações de código em um projeto SonarQube. Por padrão, busca automaticamente todos os arquivos duplicados em todas as páginas (até 10.000 arquivos no máximo). Retorna apenas arquivos com duplicações.

    • projectKey - Chave do projeto - String obrigatória (Ignorado quando SONARQUBE_PROJECT_KEY é definido)
    • branch - Nome da ramificação opcional para análise baseada em ramificação. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID do pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
    • pageSize - Número opcional de resultados por página para paginação manual (máx.: 500). Se não especificado, busca automaticamente todos os arquivos duplicados - Integer
    • pageIndex - Número da página opcional para paginação manual (começa em 1). Se não especificado, busca automaticamente todos os arquivos duplicados - Integer
  • get_duplications - Obtém duplicações de um arquivo. Exige permissão de Navegação no projeto do arquivo.

    • key - Chave do arquivo - String obrigatória
    • branch - Nome da ramificação opcional para análise baseada em ramificação. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID do pull request opcional. Use list_pull_requests para descobrir chaves válidas - String

Fontes

  • get_raw_source - Obtém código-fonte como texto bruto do SonarQube. Exige permissão 'Ver Código-Fonte' no arquivo.

    • key - Chave do arquivo - String obrigatória
    • branch - Nome da ramificação opcional para análise baseada em ramificação. Use list_branches para descobrir nomes válidos - String
    • pullRequest - Chave/ID do pull request opcional. Use list_pull_requests para descobrir chaves válidas - String
  • get_scm_info - Obtém informações de SCM dos arquivos-fonte do SonarQube. Exige permissão de Ver Código-Fonte no projeto do arquivo.

    • key - Chave do arquivo - String obrigatória
    • commits_by_line - Agrupa linhas por commit SCM se o valor for falso, caso contrário exibe commits para cada linha - String
    • from - Primeira linha a retornar. Começa em 1 - Number
    • to - Última linha a retornar (inclusiva) - Number

Sistema

Observação: as ferramentas do sistema estão disponíveis somente ao conectar ao SonarQube Server.

  • get_system_health - Obtém o status de saúde da instância do SonarQube Server. Retorna GREEN (totalmente operacional), YELLOW (utilizável, mas requer atenção) ou RED (não operacional).

  • get_system_info - Obtém informações detalhadas sobre a configuração do sistema do SonarQube Server, incluindo estado da JVM, banco de dados, índices de pesquisa e configurações. Exige permissões de 'Administrar'.

  • get_system_logs - Obtém logs do sistema SonarQube Server em formato texto simples. Exige permissão de administração do sistema.

    • name - Nome opcional dos logs a obter. Valores possíveis: access, app, ce, deprecation, es, web. Padrão: app - String
  • ping_system - Envia um ping para o sistema SonarQube Server para verificar se está ativo. Retorna 'pong' como texto simples.

  • get_system_status - Obtém informações de estado sobre o SonarQube Server. Retorna status (STARTING, UP, DOWN, RESTARTING, DB_MIGRATION_NEEDED, DB_MIGRATION_RUNNING), versão e ID.

Webhooks

  • create_webhook - Cria um novo webhook para a organização ou projeto SonarQube. Exige permissão 'Administrar' no projeto especificado, ou permissão global 'Administrar'.

    • name - Nome do webhook - String obrigatória
    • url - URL do webhook - String obrigatória
    • projectKey - Chave opcional do projeto para webhook específico do projeto - String
    • secret - Segredo opcional do webhook para proteger o payload do webhook - String
  • list_webhooks - Lista todos os webhooks para a organização ou projeto SonarQube. Exige permissão 'Administrar' no projeto especificado, ou permissão global 'Administrar'.

    • projectKey - Chave opcional do projeto para listar webhooks específicos do projeto - String

Aumento de Contexto

Ferramentas de Arquitetura
  • search_by_signature_patterns - Encontra elementos de código (classes, métodos, interfaces, ...) por suas assinaturas de declaração usando padrões regex.

    • include_code_regex_list - Lista de padrões regex para corresponder às assinaturas - String[] obrigatório
    • exclude_code_regex_list - Lista de padrões regex para excluir dos resultados - String[]
    • include_glob - Padrão glob de filtro de arquivo (ex.: *.java) - String
    • exclude_glob - Padrão glob de exclusão de arquivo - String
    • fields - Lista separada por vírgulas de campos a incluir na resposta - String
    • limit - Número máximo de resultados a retornar (padrão: 10) - Integer
    • regex_lists_operator - Como combinar vários padrões: OR (padrão) ou AND - String
  • search_by_body_patterns - Encontra elementos de código pelo corpo de implementação usando padrões regex. Útil para localizar onde APIs ou padrões são realmente usados.

    • include_code_regex_list - Lista de padrões regex para corresponder nos corpos de código - String[] obrigatório
    • exclude_code_regex_list - Lista de padrões regex para excluir dos resultados - String[]
    • include_glob - Padrão glob de filtro de arquivo - String
    • exclude_glob - Padrão glob de exclusão de arquivo - String
    • fields - Lista separada por vírgulas de campos a incluir na resposta - String
    • limit - Número máximo de resultados a retornar (padrão: 10) - Integer
    • regex_lists_operator - Como combinar vários padrões: OR (padrão) ou AND - String
  • get_upstream_call_flow - Rastreia quais funções chamam uma determinada função. Útil para encontrar todos os chamadores e pontos de entrada, e entender o que quebra se uma assinatura mudar.

    • fqn - Nome totalmente qualificado da função - String obrigatória
    • depth - Profundidade da cadeia de chamadas (0=somente a função, 1=chamadores diretos, etc.) - Integer
    • fields - Lista separada por vírgulas de campos a incluir na resposta - String
  • get_downstream_call_flow - Rastreia quais funções uma determinada função chama. Útil para análise de impacto e compreensão do fluxo de execução.

    • fqn - Nome totalmente qualificado da função - String obrigatória
    • depth - Profundidade da cadeia de chamadas (0=somente a função, 1=chamadas diretas, etc.) - Integer
    • fields - Lista separada por vírgulas de campos a incluir na resposta - String
  • get_source_code - Obtém código-fonte completo (assinatura e corpo) de um elemento de código por seu nome totalmente qualificado.

    • fqn - Nome totalmente qualificado do elemento - String obrigatória
    • fields - Lista separada por vírgulas de campos a incluir na resposta - String
  • get_type_hierarchy - Obtém a hierarquia de herança completa para uma estrutura semelhante a classe (classe, interface, enum, record, exceção, struct). Essencial para entender árvores de herança e refatoração.

    • fqn - Nome totalmente qualificado da estrutura semelhante a classe - String obrigatória
    • fields - Lista separada por vírgulas de campos a incluir na resposta - String
  • get_references - Obtém referências de código de entrada e saída diretas para uma classe ou módulo. Retorna apenas referências diretas (não transitivas).

    • fqn - Nome totalmente qualificado da classe ou módulo - String obrigatória
    • fields - Lista separada por vírgulas de campos a incluir na resposta - String
  • get_current_architecture - Obtém um grafo de arquitetura hierárquico filtrado por prefixo de caminho e profundidade. Útil para explorar a estrutura de módulos e dependências de alto nível.

    • depth - Profundidade da hierarquia (0=somente raiz, 1=raiz + filhos, etc.) - Integer obrigatório
    • path_prefix - Prefixo de caminho opcional para filtrar nós (ex.: com.example.service) - String
    • ecosystem - Ecossistema opcional para filtrar (java, cs, py, js, ts) - String
  • get_intended_architecture - Obtém restrições arquiteturais definidas pelo usuário que especificam quais módulos têm permissão para depender de outros.

Ferramentas de Diretrizes - **get_guidelines** - Obtenha diretrizes de codificação com base nos problemas do projeto SonarQube, categorias de catálogo ou uma combinação de ambos. - `mode` - Modo de recuperação de diretrizes: `project_based`, `category_based` ou `combined` - _String obrigatória_ - `categories` - Lista de nomes de categorias (necessária para os modos `category_based` e `combined`) - _String[]_ - `languages` - Lista de idiomas-alvo no formato de chave de repositório do SonarQube (necessária quando `categories` é fornecido) - _String[]_ - `file_paths` - Lista opcional de caminhos de arquivo para filtrar diretrizes - _String[]_
Ferramentas de Dependências de Terceiros
  • check_dependency - Verifique uma dependência de terceiros em busca de vulnerabilidades de segurança, malware na cadeia de suprimentos e conformidade de licença antes de adicioná-la ou atualizá-la.
    • purl - URL do pacote (purl) com versão, conforme purl-spec. Formato: pkg:<type>/<namespace>/<name>@<version> (ex.: pkg:npm/lodash@4.17.21, pkg:maven/org.apache.logging.log4j/log4j-core@2.14.1, pkg:pypi/django@3.2.0) - String obrigatória
Variáveis de Ambiente de Aumento de Contexto
VariávelDescriçãoObrigatóriaPadrão
SONARQUBE_URLURL do SonarQube CloudSimhttps://sonarcloud.io
SONARQUBE_TOKENToken de autenticaçãoSimNenhum
SONARQUBE_ORGChave da organização no SonarQube CloudSimNenhum
SONARQUBE_PROJECT_KEYChave do projeto no SonarQube CloudSimNenhum
SONAR_SQ_BRANCHSobrescrita explícita do branch do SonarQube *NãoNenhum
SONARQUBE_DEBUG_ENABLEDAtivar registro de depuração (para solução de problemas)NãoFalse
SONAR_LOG_LEVELNível de detalhe do log (TRACE, DEBUG, INFO, WARNING, ERROR)NãoINFO
  • A ser fornecido quando não estiver usando git, ou quando o nome do branch do git não corresponder ao nome do branch no SonarQube.
Configuração Específica do Projeto (Recomendado)

Primeiro, exporte a variável de ambiente SONARQUBE_TOKEN com um Personal Access Token (PAT) válido para o seu projeto.

# macOS/Linux (Bash/Zsh)
export SONARQUBE_TOKEN="{<YourUserToken>}"

Em seguida, monte o workspace do projeto para dar ao servidor de Aumento de Contexto acesso direto aos seus arquivos de código-fonte:

{
  "mcpServers": {
    "sonarqube-mcp-server": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--pull=always",
        "-e", "SONARQUBE_URL",
        "-e", "SONARQUBE_TOKEN",
        "-e", "SONARQUBE_ORG",
        "-e", "SONARQUBE_PROJECT_KEY",
        "-e", "SONARQUBE_TOOLSETS",
        "-v", "/ABSOLUTE/PATH/TO/YOUR/PROJECT:/app/mcp-workspace:rw",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_URL": "https://sonarcloud.io",
        "SONARQUBE_ORG": "<YourOrganizationKey>",
        "SONARQUBE_PROJECT_KEY": "<YourProjectKey>",
        "SONARQUBE_TOOLSETS": "cag"
      }
    }
  }
}

Importante: Em uma configuração com escopo de projeto, não coloque SONARQUBE_TOKEN no bloco env. Exporte-a como uma variável de ambiente (export SONARQUBE_TOKEN=...). O Docker a encaminhará para o contêiner via -e SONARQUBE_TOKEN.

Prontidão de Agentes

Nota: As ferramentas de Prontidão de Agentes estão disponíveis apenas no SonarQube Cloud e exigem que o recurso esteja habilitado para sua organização.

  • start_agentic_readiness_assessment - Inicia uma avaliação de prontidão de agentes para um projeto. Retorna imediatamente com o status PENDING e um assessmentId. Use get_agentic_readiness_assessment para consultar os resultados.

    • projectKey - A chave do projeto - String obrigatória (Ignorada quando SONARQUBE_PROJECT_KEY é definido)
    • branch - Branch a ser avaliado. Omita para usar o branch padrão do projeto - String
  • get_agentic_readiness_assessment - Recupera o resultado de uma avaliação. Chame novamente com o mesmo assessmentId até que o status seja COMPLETED, FAILED ou INTERRUPTED. Quando concluído, retorna o nível geral e um detalhamento por pilar com ações recomendadas e evidências.

    • assessmentId - O ID da avaliação retornado por start_agentic_readiness_assessment - String obrigatória
  • list_agentic_readiness_assessments - Lista todas as avaliações de um projeto, da mais recente para a mais antiga. Use get_agentic_readiness_assessment para obter resultados completos por pilar.

    • projectKey - A chave do projeto para listar as avaliações - String obrigatória (Ignorada quando SONARQUBE_PROJECT_KEY é definido)
    • branch - Filtra avaliações por nome do branch. Omita para listar avaliações de todos os branches - String
    • pageIndex - Índice de página baseado em 1 (padrão: 1) - Number
    • pageSize - Número de itens por página, máx. 100 (padrão: 50) - Number

Exemplos de Prompts

Depois de configurar o SonarQube MCP Server, aqui estão alguns exemplos de prompts para cenários comuns do mundo real:

Corrigindo um Quality Gate com Falha
My quality gate is failing for my project. Can you help me understand why and fix the most critical issues?
The quality gate on my feature branch is red. What do I need to fix to get it passing before I can merge to main?
Verificações Pré-Lançamento e Pré-Merge
I'm about to merge my pull request <#247> for the <web-app> project. Can you check if there are any quality issues I should address first?
We're deploying to production tomorrow. Can you check the quality gate status and alert me to any critical issues in this branch?
Melhorando a Qualidade do Código
I want to reduce technical debt in my project. What are the top issues I should prioritize?
Our code coverage dropped below 70%. Can you identify which files have the lowest coverage and help me improve it?
Entendendo e Corrigindo Problemas
I have 15 new code smells in my latest commit. Can you explain what they are and help me fix them?
SonarQube flagged a critical security vulnerability in <AuthController.java>. What's the issue and how do I fix it?
Segurança e Gerenciamento de Dependências
We need to pass a security audit. Can you check all our projects for security vulnerabilities and create a prioritized list of what needs to be fixed?
Are there any known vulnerabilities in our dependencies? Check this project for dependency risks.
Assistência de Revisão de Código
I just wrote this authentication function. Can you analyze it for security issues and code quality problems before I commit?
Review the changes in <src/database/migrations> for any potential bugs or security issues.
Monitoramento de Saúde do Projeto
Give me a health report for my project: quality gate status, number of bugs, Security Hotspots, and code coverage.
Compare code quality between our main branch and the develop branch. Are we introducing new issues?
Colaboração em Equipe
What are the most common rule violations across all our projects? We might need to update our coding standards.
Show me all the issues that were marked as false positives in the last month. Are we seeing patterns that suggest our rules need adjustment?

Build

Prefira a imagem de contêiner sonarsource/sonarqube-mcp.

Para executar o servidor como um JAR autônomo sem Docker, baixe uma versão pré-compilada do repositório de binários do SonarSource. Cada versão lançada é publicada lá como sonarqube-mcp-server-<version>.jar (por exemplo, sonarqube-mcp-server-1.19.0.2785.jar).

Executar a partir do JAR

Baixe o JAR da versão desejada no repositório de binários e configure seu cliente MCP para executá-lo com Java 21 ou posterior:

  • Para conectar ao SonarQube Cloud:
{
  "sonarqube": {
    "command": "java",
    "args": [
      "-jar",
      "<path_to_sonarqube_mcp_server_jar>"
    ],
    "env": {
      "STORAGE_PATH": "<path_to_your_mcp_storage>",
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>"
    }
  }
}
  • Para conectar ao SonarQube Server:
{
  "sonarqube": {
    "command": "java",
    "args": [
      "-jar",
      "<path_to_sonarqube_mcp_server_jar>"
    ],
    "env": {
      "STORAGE_PATH": "<path_to_your_mcp_storage>",
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}
Build a partir do código-fonte

O SonarQube MCP Server requer um Java Development Kit (JDK) versão 21 ou posterior para compilar.

Execute o seguinte comando Gradle para limpar o projeto e compilar o aplicativo:

./gradlew clean build -x test

O arquivo JAR será criado em build/libs/.

Após adicionar ou atualizar dependências, regenere os arquivos de bloqueio:

./gradlew :dependencies --write-locks
./gradlew :its:dependencies --write-locks

Use a configuração Executar a partir do JAR acima, apontando <path_to_sonarqube_mcp_server_jar> para o JAR em build/libs/.

Solução de Problemas

Os logs do aplicativo são gravados no arquivo STORAGE_PATH/logs/mcp.log por padrão. Para desabilitar completamente o log em arquivo, defina SONARQUBE_LOG_TO_FILE_DISABLED=true.

Problemas Comuns

"O recurso não está funcionando" ou "Ferramentas/funcionalidades ausentes"

Você pode estar executando uma imagem Docker desatualizada. O Docker armazena imagens em cache localmente, então você não receberá atualizações automaticamente.

Solução: Atualize para a versão mais recente:

docker pull sonarsource/sonarqube-mcp

Após baixar a imagem mais recente, reinicie seu cliente MCP para usar a versão atualizada.

Opcionalmente, adicione o sinalizador --pull=always ao seu comando docker run para sempre verificar e baixar a versão mais recente:

docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_ORG sonarsource/sonarqube-mcp

"Quero fixar uma versão específica"

Navegue pelas tags disponíveis em sonarsource/sonarqube-mcp e referencie a versão desejada:

docker pull sonarsource/sonarqube-mcp:1.19.0.2785

docker run --init -i --rm \
  -e SONARQUBE_TOKEN -e SONARQUBE_ORG \
  sonarsource/sonarqube-mcp:1.19.0.2785

Na configuração do seu cliente MCP, use sonarsource/sonarqube-mcp:<version> em vez de sonarsource/sonarqube-mcp e remova --pull=always para que o Docker não atualize a imagem silenciosamente.

Dados e telemetria

Este servidor coleta dados de uso anônimos e os envia à SonarSource para ajudar a melhorar o produto. Nenhum código-fonte ou endereço IP é coletado, e a SonarSource não compartilha os dados com mais ninguém. A coleta de telemetria pode ser desabilitada com a seguinte propriedade de sistema ou variável de ambiente: TELEMETRY_DISABLED=true. Clique aqui para ver uma amostra dos dados coletados.

Licença

Copyright 2025 SonarSource.

Licenciado sob a SONAR Source-Available License v1.0. Usar o SonarQube MCP Server em conformidade com esta documentação é uma Finalidade Não Competitiva e, portanto, permitido sob a SSAL.

Seu uso do SonarQube via MCP é regido pelos Termos de Serviço do SonarQube Cloud ou Termos e Condições do SonarQube Server, incluindo o uso dos Dados de Resultados exclusivamente para fins internos de desenvolvimento de software.