API VEGA

Сервер MCP SonarQube

Сервер MCP SonarQube — это сервер Model Context Protocol (MCP), который обеспечивает бесшовную интеграцию с SonarQube Server или Cloud для качества кода и безопасности.

Он также поддерживает анализ фрагмента кода напрямую в контексте агента.

Быстрая настройка

Лучшие практики безопасности

🔒 Важно: ваш токен SonarQube — это чувствительный учетный данные. Следуйте этим рекомендациям по безопасности:

При использовании CLI-команд:

  • Не сохраняйте токены напрямую в аргументах команд — они попадают в историю команд оболочки

  • Используйте переменные окружения — устанавливайте токены перед запуском команд

При использовании конфигурационных файлов:

  • Никогда не сохраняйте токены в систему контроля версий

  • По возможности используйте подстановку переменных окружения в конфигурационных файлах

🚀 Генерация вашей конфигурации

Самый быстрый способ начать работу — Генератор конфигурации сервера MCP SonarQube — интерактивный инструмент, который формирует готовую конфигурацию под вашего предпочитаемого клиента AI-агента.

Ручная настройка

Если предпочитаете настраивать всё самостоятельно, самый простой способ — использовать наш контейнерный образ по адресу sonarsource/sonarqube-mcp. Используйте sonarsource/sonarqube-mcp для автоматических обновлений (с --pull=always), или закрепите версию тега (например, sonarsource/sonarqube-mcp:1.19.0.2785) для воспроизводимых развёртываний. Ниже можно прочитать о сборке локально, если нужно.

Примечание: хотя примеры ниже используют docker, любой совместимый с OCI контейнерный рантайм работает (например, Podman, nerdctl). Просто замените docker на предпочитаемый инструмент.

Antigravity Сервер MCP SonarQube доступен в Antigravity MCP Store. Следуйте инструкциям:

  • Откройте Agent Side Panel (панель агента)

  • Нажмите на три точки (...) в верхнем правом углу и выберите MCP Servers

  • Найдите SonarQube и нажмите Install

  • Укажите требуемый токен пользователя SonarQube. При необходимости можно указать ваш organizational key для SonarQube Cloud или URL SonarQube при подключении к серверу SonarQube.

Для SonarQube Cloud US укажите URL https://sonarqube.us.

Альтернативно, сервер можно настроить вручную через mcp_config.json:

  • Чтобы подключиться к SonarQube Cloud:

В панели агента выберите три точки (...) -> MCP Store -> Manage MCP Servers -> View raw config, и добавьте следующее:

", "SONARQUBE_ORG": "" } } } }">``` { "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>" } } } }


Для **SonarQube Cloud US** вручную добавьте `"SONARQUBE_URL": "https://sonarqube.us"` в секцию `env` и `"-e", "SONARQUBE_URL"` в массив `args`.

- Чтобы подключиться к SonarQube Server:

",
        "SONARQUBE_URL": ""
      }
    }
  }
}">```
{
  "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

  • Чтобы подключиться к 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

Для SonarQube Cloud US добавьте --env SONARQUBE_URL=https://sonarqube.us к команде.

  • Чтобы подключиться к 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 Ручная правка конфигурационного файла в ~/.codex/config.toml и добавление следующей конфигурации:

  • Чтобы подключиться к SonarQube Cloud:

", "SONARQUBE_ORG" = "" }">``` [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>" }


Для **SonarQube Cloud US** добавьте в секцию `env` `"SONARQUBE_URL" = "https://sonarqube.us"` и в массив `args` добавьте `"-e", "SONARQUBE_URL"`.

- Чтобы подключиться к SonarQube Server:

", "SONARQUBE_URL" = "" }">```
[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

  • Чтобы подключиться к SonarQube Cloud:

Для SonarQube Cloud US вручную добавьте "SONARQUBE_URL": "https://sonarqube.us" в секцию env конфигурации MCP после установки.

  • Чтобы подключиться к SonarQube Server:

Gemini CLI

Примечание: расширение Gemini CLI для MCP переместилось в репозиторий sonarqube-agent-plugins. Пожалуйста, устанавливайте его оттуда в дальнейшем.

Вы можете установить сервер MCP через следующую команду:

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

Перед запуском Gemini нужно установить переменные окружения:

Необходимые переменные окружения:

  • Для SonarQube Cloud:

SONARQUBE_TOKEN — токен вашего SonarQube Cloud

  • SONARQUBE_ORG — ключ вашей организации

  • SONARQUBE_URL — (опционально) установите https://sonarqube.us для SonarQube Cloud US

  • Для SonarQube Server:

SONARQUBE_TOKEN — USER-токен вашего SonarQube Server

  • SONARQUBE_URL — URL вашего сервера SonarQube

После установки плагина расширение будет доступно по адресу <home>/.gemini/extensions/sonarqube/gemini-extension.json.

GitHub Copilot CLI После запуска Copilot CLI выполните следующую команду, чтобы добавить сервер MCP SonarQube:

/mcp add

Вам потребуется ввести различную информацию о MCP-сервере; можно перемещаться между полями клавишей Tab.

  • Чтобы подключиться к SonarQube Cloud:

,SONARQUBE_ORG= Tools: * 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: *


Для **SonarQube Cloud US** добавьте `-e, SONARQUBE_URL` в Arguments и `SONARQUBE_URL=https://sonarqube.us` в Environment Variables.

- Чтобы подключиться к SonarQube Server:

,SONARQUBE_URL=
Tools: *">```
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: *

Файл конфигурации находится по адресу ~/.copilot/mcp-config.json.

GitHub Copilot coding agent GitHub Copilot coding agent может напрямую использовать сервер MCP SonarQube в вашей CI/CD.

Чтобы добавить секреты в окружение Copilot, следуйте документации Copilot. Только секреты с префиксом COPILOT_MCP_ будут доступны для вашей MCP-конфигурации.

В вашем репозитории GitHub перейдите в Settings -> Copilot -> Coding agent и добавьте следующую конфигурацию в раздел MCP-конфигурации:

  • Чтобы подключиться к 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": ["*"]
    }
  }
}

Для SonarQube Cloud US добавьте "-e", "SONARQUBE_URL" в массив args и "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL" в секцию env, затем задайте секрет COPILOT_MCP_SONARQUBE_URL=https://sonarqube.us.

  • Чтобы подключиться к 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 Создайте файл .kiro/settings/mcp.json в рабочем каталоге (или редактируйте, если он уже существует) и добавьте следующую конфигурацию:

  • Чтобы подключиться к SonarQube Cloud:

", "SONARQUBE_ORG": "" }, "disabled": false, "autoApprove": [] } } }">``` { "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": [] } } }


Для **SonarQube Cloud US** добавьте `"-e", "SONARQUBE_URL"` в массив `args` и `"SONARQUBE_URL": "https://sonarqube.us"` в секцию `env`.

- Чтобы подключиться к SonarQube Server:

",
        "SONARQUBE_URL": ""
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}">```
{
  "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 Вы можете использовать следующие кнопки, чтобы упростить установку внутри VS Code.

Для SonarQube Cloud US вручную добавьте "SONARQUBE_URL": "https://sonarqube.us" в секцию env в вашей MCP-конфигурации после установки.

Windsurf Сервер MCP SonarQube доступен как плагин Windsurf. Следуйте инструкциям:

  • Откройте Windsurf Settings > Cascade > MCP Servers и выберите Open MCP Marketplace

  • Найдите sonarqube в Cascade MCP Marketplace

  • Выберите SonarQube MCP Server и нажмите Install

  • Добавьте требуемый токен пользователя SonarQube. Затем добавьте ключ организации, если хотите подключиться к SonarQube Cloud, или URL SonarQube, если подключаетесь к Server или Community Build.

Для SonarQube Cloud US установите URL: https://sonarqube.us.

Zed Перейдите на вкладку Extensions в Zed и найдите SonarQube MCP Server.

При установке расширения вам будут запрошены необходимые переменные окружения:

  • При использовании SonarQube Cloud:
{
  "sonarqube_token": "YOUR_SONARQUBE_TOKEN",
  "sonarqube_org": "SONARQUBE_ORGANIZATION_KEY",
  "docker_path": "DOCKER_PATH"
}

Для SonarQube Cloud US добавьте "sonarqube_url": "https://sonarqube.us" в конфигурацию.

  • При использовании SonarQube Server:
{
  "sonarqube_token": "YOUR_SONARQUBE_USER_TOKEN",
  "sonarqube_url": "YOUR_SONARQUBE_SERVER_URL",
  "docker_path": "DOCKER_PATH"
}

Путь к docker — путь к исполняемому файлу docker. Примеры:

Linux/macOS: /usr/bin/docker или /usr/local/bin/docker

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

💡 Советы: рекомендуется регулярно тянуть последнюю образу или перед сообщением об ошибках — так вы получите самые новые функции и исправления.

Ручная установка

Вы можете вручную установить сервер SonarQube MCP, скопировав следующий фрагмент в конфигурационный файл MCP-серверов:

  • Чтобы подключиться к SonarQube Cloud:

", "SONARQUBE_ORG": "" } } }">``` { "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>" } } }


- Чтобы подключиться к SonarQube Server:

",
      "SONARQUBE_URL": ""
    }
  }
}">```
{
  "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>"
    }
  }
}

Интеграция SonarQube для IDE

Сервер MCP SonarQube может интегрироваться с SonarQube для IDE, чтобы дополнительно улучшить ваш рабочий процесс разработки, обеспечивая лучший анализ кода и инсайты прямо в вашей IDE.

Настройка При использовании SonarQube для IDE переменная окружения SONARQUBE_IDE_PORT должна быть задана корректным портом. VS Code: Quick Install кнопка автоматически устанавливает правильную конфигурацию порта.

Например, для SonarQube Cloud:

", "SONARQUBE_ORG": "", "SONARQUBE_IDE_PORT": "" } } }">``` { "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>" } } }


> При запуске MCP-сервера в контейнере на Linux контейнер не может обратиться к встроенному серверу SonarQube for IDE, работающему на localhost. Чтобы контейнер мог подключиться к серверу SonarQube for IDE, добавьте опцию `--network=host` к вашей команде запуска контейнера.

## Конфигурация

В зависимости от вашей среды необходимо задавать конкретные переменные окружения.

### Базовые настройки

К MCP Server следует добавить следующие переменные:

| Переменная окружения | Описание |
| --- | --- |
| STORAGE_PATH | Обязательный абсолютный путь к записываемому каталогу, где Serвер MCP SonarQube будет хранить файлы (создание, обновления, персистентность). При использовании контейнера путь задаётся автоматически |
| SONARQUBE_PROJECT_KEY | Необязательный ключ проекта по умолчанию. Если задан, все инструменты, требующие ключ проекта, будут использовать это значение автоматически — параметр projectKey полностью удалён из их схемы. Удобно, если работаете над одним проектом. |
| SONARQUBE_IDE_PORT | Необязательный порт (64120–64130) для соединения MCP Server с SonarQube for IDE. |
| SONARQUBE_DEBUG_ENABLED | При установке в true включено отладочное логирование. Журнал создаётся в файле лога и в STDERR. Полезно для устранения проблем соединения или конфигурации. По умолчанию: false. |
| SONARQUBE_LOG_TO_FILE_DISABLED | При установке в true отключает запись логов на диск. Ни один файл логов не будет создан в STORAGE_PATH/logs/. Полезно в контейнеризованных или временных окружениях. По умолчанию: false. |

### Точечная монтировка рабочего пространства (уменьшение объёма контекста)

По умолчанию инструмент анализа analyze_code_snippet требует, чтобы агент передал полный контент файла в виде аргумента fileContent. Для больших файлов или большого количества файлов в рамках сессии это заметно увеличивает расход контекстного окна и стоимость.

Решение: смонтируйте директорию проекта в контейнер по пути `/app/mcp-workspace`. При обнаружении такого монтирования сервер читает файлы напрямую с диска, используя относительный к проекту аргумент `filePath` — содержимое файла нигде не передаётся через контекст агента.

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


Когда монтирование активно:

- доступен `run_advanced_code_analysis`, если ваша организация имеет на него право

- `analyze_code_snippet`: `filePath` обязателен, `fileContent` не используется — сервер находит файл аналогично

### Включение инструментов по умолчанию

По умолчанию включены только ключевые наборы инструментов, чтобы снизить накладные расходы контекста. При необходимости можно включать дополнительные наборы инструментов.

| Переменная окружения | Описание |
| --- | --- |
| SONARQUBE_TOOLSETS | Список наборов инструментов через запятую, которые нужно включить. При установке только эти наборы будут доступны. Если не задано — включены по умолчанию важные наборы: анализ, проблемы, проекты, quality-gates, правила, дубликаты, метрики, hot-spots безопасности, риски зависимостей, покрытие, cag. Примечание: набор инструментов проектов всегда включён, так как он необходим для поиска ключей проектов для прочих операций. Инструменты контекста могут быть доступны только в режиме stdio и требуют прав организации. В режиме Streamable HTTP клиенты могут отправлять заголовок HTTP `SONARQUBE_TOOLSETS`, чтобы сузить набор по запросу, но не могут включать инструменты сверх того, чем был запущен сервер (см. транспорт Streamable HTTP ниже). |
| SONARQUBE_READ_ONLY | При установке в true включает режим только чтения, который отключает все операции записи (например, изменение статуса проблемы). Этот фильтр суммируется с `SONARQUBE_TOOLSETS`, если оба параметра заданы. По умолчанию: false. В режиме Streamable HTTP клиенты могут отправлять заголовок HTTP `SONARQUBE_READ_ONLY` для дальнейшего ограничения конкретных запросов до режима только чтения, но не снимает ограничение на уровне сервера (см. транспорт Streamable HTTP ниже). |

Доступные наборы инструментов
| Набор инструментов | Ключ | Описание |
| --- | --- | --- |
| Анализ | analysis | Инструменты анализа кода (локальный анализ и расширенный удалённый анализ) |
| Проблемы | issues | Поиск и управление проблемами SonarQube |
| Безопасность Hotspots | security-hotspots | Поиск и обзор безопасных горячих точек |
| Проекты | projects | Обзор и поиск проектов SonarQube |
| Классы качества | quality-gates | Доступ к шлюзам качества и их статусу |
| Правила | rules | Обзор и поиск правил SonarQube |
| Источники | sources | Доступ к исходному коду и информации SCM |
| Дублирования | duplications | Поиск дубликатов кода между проектами |
| Метрики | measures | Получение метрик и показателей (включает и меры) |
| Языки | languages | Перечень поддерживаемых языков |
| Портфели | portfolios | Управление портфелями и предприятиями (Cloud и Server) |
| Система | system | Инструменты системного администрирования (только Server) |
| Вебхуки | webhooks | Управление вебхуками |
| Риски зависимостей | dependency-risks | Анализ рисков зависимостей и безопасности (SCA) |
| Покрытие | coverage | Анализ тестового покрытия и инструменты улучшения |
| Контекстная доработка | cag | Инструменты дополняющего контекста (stdio-режим, требует прав организации) |
| Готовность агента | agentic-readiness | Инструменты оценки агентной готовности (SonarQube Cloud, требует прав организации) |

#### Примеры

Включить наборы инструментов анализа, проблем и шлюзов качества (использование Docker с SonarQube Cloud):

-e SONARQUBE_ORG=""
-e SONARQUBE_TOOLSETS="analysis,issues,quality-gates"
sonarsource/sonarqube-mcp

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

Примечание: набор инструментов проектов всегда включён автоматически, поэтому в SONARQUBE_TOOLSETS его включать не нужно.

Включение режима только чтения (Docker с SonarQube Cloud):

-e SONARQUBE_ORG="" \
-e SONARQUBE_READ_ONLY="true" \
sonarsource/sonarqube-mcp

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

Чтобы включить полный функционал, перед запуском сервера должны быть заданы следующие переменные окружения:

| Переменная окружения | Описание | Обязательная |
| --- | --- | --- |
| SONARQUBE_TOKEN | Ваш токен SonarQube Cloud | Да |
| SONARQUBE_ORG | Ваш organizational key в SonarQube Cloud | Да |
| SONARQUBE_URL | Пользовательный URL для SonarQube Cloud (по умолчанию https://sonarcloud.io). Используйте это для SonarQube Cloud US: https://sonarqube.us | Нет |

Примеры:

- SonarQube Cloud: нужны только `SONARQUBE_TOKEN` и `SONARQUBE_ORG`

- SonarQube Cloud US: задайте `SONARQUBE_TOKEN`, `SONARQUBE_ORG` и `SONARQUBE_URL=https://sonarqube.us`

#### SonarQube Server

| Переменная окружения | Описание | Обязательная |
| --- | --- | --- |
| SONARQUBE_TOKEN | Ваш USER-токен сервера SonarQube | Да |
| SONARQUBE_URL | URL вашего сервера SonarQube | Да |

> ⚠️ Подключение к серверу SonarQube требует токен типа USER и не будет работать при использовании проектных или глобальных токенов.

> 💡 Подсказка по конфигурации (stdio-режим): наличие `SONARQUBE_ORG` определяет, подключаетесь ли вы к SonarQube Cloud или Server. Если `SONARQUBE_ORG` установлен, используется Cloud; иначе — Server.

### Транспортные режимы

Спецификация MCP определяет две транспортные механики: Stdio и Streamable HTTP. Сервер MCP SonarQube поддерживает обе:

| Транспорт MCP | Режим сервера | Типичное использование |
| --- | --- | --- |
| Stdio | По умолчанию (без `SONARQUBE_TRANSPORT`) | Локальные MCP-клиенты, которые запускают сервер как подпроцесс (Cursor, Claude Code, VS Code и т. д.) |
| Streamable HTTP | `SONARQUBE_TRANSPORT=http` или `https` | Удалённые или многопользовательские развёртывания; клиенты подключаются к `/mcp` по HTTP(S) (например Windsurf с URL сервера) |

> Примечание: Streamable HTTP сейчас является текущим транспортом MCP. Устаревший HTTP транспорт только SSE из ранних версий MCP устарел и не поддерживается.

#### 1. **Stdio** (по умолчанию — рекомендуется для локальной разработки)

Рекомендуемый режим для локальной разработки и одиночного пользователя, которым пользуются большинство MCP-клиентов.

Пример — Docker с SonarQube Cloud:

",
      "SONARQUBE_ORG": ""
    }
  }
}">```
{
  "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 (Streamable HTTP)

Нешифрованный транспорт Streamable HTTP. Для многопользовательских развёртываний используйте HTTPS.

⚠️ Не рекомендуется: используйте Stdio для локальной разработки или HTTPS (Streamable HTTP) для многопользовательских продакшн-развёртываний.

Переменная окруженияОписаниеЗначение по умолчанию
SONARQUBE_TRANSPORTУстановите http, чтобы включить Streamable HTTP транспортНе установлен (stdio)
SONARQUBE_HTTP_PORTПорт (1024-65535)8080
SONARQUBE_HTTP_HOSTХост для привязки (по умолчанию: localhost)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSРазрешённыеOrigins браузеров для CORS (например https://my-app.example.com)Не задано
SONARQUBE_MCP_IN_CONTAINERУстановите true, если запускаете внутри контейнера. Официальный Docker-образ устанавливает это автоматически; настройте вручную для других OCI-рантаймов (Podman, Kubernetes, Nomad и т. д.).false

Примечание: В режиме Streamable HTTP (HTTP или HTTPS) сервер является безсессионным — каждый запрос клиента должен содержать заголовок Authorization: Bearer <token>, несущий токен вашего SonarQube.

Для SonarQube Cloud организация определяется так:

  • Если SONARQUBE_ORG задан при запуске сервера, все запросы направляются в эту организацию. Клиентам не нужно отправлять заголовок SONARQUBE_ORG — отправка приведёт к ошибке.

  • Если SONARQUBE_ORG не задан, клиент обязателен отправлять заголовок SONARQUBE_ORG в каждом запросе.

Клиенты также могут сузить видимые инструменты по запросу, отправляя заголовки SONARQUBE_TOOLSETS и/или SONARQUBE_READ_ONLY; они применяют дополнительную фильтрацию поверх конфигурации сервера — они могут только сузить область, но не расширить её.

Сессии между запросами не сохраняются.

Примечание: заголовок SONARQUBE_TOKEN всё ещё принимается для совместимости, но будет удалён в будущей версии. Переход на Authorization: Bearer <token>.

3. HTTPS (Streamable HTTP over TLS) (Рекомендовано для многопользовательских продакшн-развёртываний)

Безопасный транспорт Streamable HTTP через TLS. Требуются SSL-сертификаты.

✅ Рекомендовано для продакшена: используйте HTTPS для многопользовательского окружения через Streamable HTTP. Сервер привязывается к 127.0.0.1 по умолчанию для безопасности.

Переменная окруженияОписаниеЗначение по умолчанию
SONARQUBE_TRANSPORTУстановите https для включения Streamable HTTP через TLSНе установлен (stdio)
SONARQUBE_HTTP_PORTПорт (обычно 8443 для HTTPS)8080
SONARQUBE_HTTP_HOSTХост привязки (по умолчанию: localhost)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSРазрешённыеOrigins браузеров для CORS (например https://my-app.example.com)Не задано
SONARQUBE_MCP_IN_CONTAINERУстановите true, если работаете внутри контейнера. Официальный образ устанавливает это автоматически; настройте вручную для других рантаймов.false

Конфигурация SSL-сертификата (необязательно):

Переменная окруженияОписаниеЗначение по умолчанию
SONARQUBE_HTTPS_KEYSTORE_PATHПуть к keystore-файлу (.p12 или .jks)/etc/ssl/mcp/keystore.p12
SONARQUBE_HTTPS_KEYSTORE_PASSWORDПароль keystoresonarlint
SONARQUBE_HTTPS_KEYSTORE_TYPEТип keystore (PKCS12 или JKS)PKCS12

Пример — Docker с SonarQube Cloud:

Примечание: при запуске в контейнере установите SONARQUBE_HTTP_HOST=0.0.0.0, чтобы контейнер прослушивал все интерфейсы и чтобы настройка портов работала, и установите SONARQUBE_MCP_IN_CONTAINER=true, чтобы сервер знал, что он внутри контейнера. Официальный образ Docker устанавливает это автоматически; настройте вручную для других рантаймов. Флаг порта на стороне хоста контролирует, кто может достучаться до сервера из вне контейнера. SONARQUBE_HTTP_HOST=0.0.0.0 управляет тем, где сервер слушает внутри контейнера — браузерные Origin по умолчанию остаются доступными для localhost.

Для сервера, работающего локально на вашей машине (доступен только из 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

Для сервера, доступного по сети (удалённые развёртывания):

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

Client Configuration (SonarQube Cloud):

", "SONARQUBE_ORG": "", "SONARQUBE_TOOLSETS": "issues,quality-gates", "SONARQUBE_READ_ONLY": "true" } } } }">``` { "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" } } } }


**Client Configuration (SonarQube Server):**

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

Примечание: заголовки SONARQUBE_TOOLSETS и SONARQUBE_READ_ONLY являются необязательными на уровне запроса и используются для дополнительного ограничения набора инструментов сервера для конкретного запроса. Они могут только уменьшить область — они не могут включать инструменты или ослаблять ограничения сверх того, на что был запущен сервер.

Примечание: для локальной разработки используйте транспорт Stdio (по умолчанию). HTTPS Streamable HTTP рекомендуется для продакшн-развёртываний с несколькими пользователями и надлежащими SSL-сертификатами.

Сервисные конечные точки

Если запущен режим Streamable HTTP (http или https), сервер предоставляет несколько публичных неавторизованных конечных точек помимо MCP на /mcp. Эти точки предназначены для взаимодействий между сервисами (мониторинг, оркестрация, проверки совместимости клиентов) и не требуют заголовка Authorization.

Конечная точкаМетодОписаниеПример ответа
/healthGETПоказатель живости. Возвращает 200 OK с пустым телом после начала обработки запросов(пустое тело)
/infoGETВозвращает версию MCP-сервера как JSON. Полезно для проверки версии развернутого сервера{"version":"1.16.0"}

Эти точки недоступны при использовании транспорта Stdio.

Пользовательские сертификаты

Если ваш сервер SonarQube использует самоподписанный сертификат или сертификат от частного удостоверяющего центра (CA), можно добавить собственные сертификаты в контейнер, которые будут автоматически установлены.

Настройка

ИспользованиеVolume Mount

Монтируйте директорию с сертификатами при запуске контейнера:

"
-e SONARQUBE_URL=""
sonarsource/sonarqube-mcp">``` 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


#### Поддерживаемые форматы сертификатов

Контейнер поддерживает следующие форматы сертификатов:

- `.crt` файлы (PEM или DER)

- `.pem` файлы (PEM)

#### MCP-конфигурация с сертификатами

При использовании пользовательских сертификатов можно изменить MCP-конфигурацию, чтобы примонтировать сертификаты:

",
      "SONARQUBE_URL": ""
    }
  }
}">```
{
  "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>"
    }
  }
}

Примечание: если вы запускаете сервер из JAR вместо контейнера, указанный выше монтирование томов устанавливает сертификаты в доверенный стор контейнера, который сам сервер также читает. Если вы не можете использовать хранилище доверенных сертификатов ОС — особенно на Windows, где оно не используется — настройте JVM на использование доверенного хранилища Java: -Djavax.net.ssl.trustStore=/path/to/truststore.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=<passphrase>. Это добавляется поверх стандартных доверенных сертификатов.

Прокси

Сервер MCP SonarQube поддерживает HTTP и SOCKS5 прокси через стандартные свойства прокси JVM.

Настройка

HTTP/HTTPS прокси

Настройки прокси можно задавать через свойства системы Java. Они могут быть заданы как переменные окружения, так и как аргументы JVM.

Общие свойства прокси:

СвойствоОписаниеПример
http.proxyHostИмя хоста HTTP-проксиproxy.example.com
http.proxyPortПорт HTTP-прокси8080
https.proxyHostИмя хоста HTTPS-проксиproxy.example.com
https.proxyPortПорт HTTPS-прокси8443
http.nonProxyHostsХосты, которые обходят прокси (разделитель

Аутентификация прокси HTTP/HTTPS:

СвойствоОписаниеПример
http.proxyUserИмя пользователя прокси HTTPmyuser
http.proxyPasswordПароль прокси HTTPmypassword
https.proxyUserИмя пользователя прокси HTTPSmyuser
https.proxyPasswordПароль прокси HTTPSmypassword
Прокси SOCKS5

Поддерживаются прокси SOCKS5.

СвойствоОписаниеПо умолчаниюПример
socksProxyHostХост SOCKS5-проксиlocalhost
socksProxyPortПорт SOCKS5-прокси10801080
java.net.socks.usernameИмя пользователя SOCKS5 (если нужна аутентификация)myuser
java.net.socks.passwordПароль SOCKS5 (если нужна аутентификация)mypassword

Клиентский сертификат (Mutual TLS)

Если ваш сервер SonarQube требует представлять клиентский сертификат во время TLS-рукопожатия (mutual TLS), можно предоставить PKCS12-ключхранилище, смонтировав его в контейнер и передав его расположение через JAVA_OPTS.

Настройка

С использованием PKCS12-ключевого хранилища

Монтируйте ваш файл .p12 или .pfx в контейнер и задайте свойства ключевого хранилища через переменную окружения JAVA_OPTS:

"
-e SONARQUBE_URL=""
sonarsource/sonarqube-mcp">``` 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


> Примечание: сертификат должен быть читаемым процессом контейнера. При необходимости проверьте права доступа:

>
 chmod 644 /path/to/client.p12    # предоставить чтение контейнерному пользователю
 ls -la /path/to/client.p12       # убедитесь в правах -rw-r--r--

Укажите -Djavax.net.ssl.keyStorePassword, если у keystore установлен пароль.

Конфигурация MCP с клиентским сертификатом

", "SONARQUBE_URL": "" } } }">``` { "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>" } } }


#### Использование PKCS12-ключа вместе с автономным JAR

При запуске сервера [из JAR](#build) передавайте параметры ключевого хранилища как аргументы JVM перед `-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>

Укажите пароль, если keystore имеет пароль.

MCP-конфигурация с клиентским сертификатом (JAR)

" ], "env": { "SONARQUBE_TOKEN": "", "SONARQUBE_URL": "" } } }">``` { "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>" } } }


> Примечание: PEM-сертификаты и ключи (`.crt` и `.key`) должны быть конвертированы в PKCS12 перед использованием. Применяйте конвертацию: `openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12`.

## Инструменты

### Анализ

-
**analyze_code_snippet** - Анализ содержимого файла с использованием анализаторов SonarQube для выявления проблем качества кода и безопасности. Всегда анализирует полный контент файла для точности. По желанию можно фильтровать результаты по конкретному фрагменту кода.

Использование:

**С монтированным рабочим пространством** (рекомендуется): передавайте `filePath` (относительно проекта) — сервер читает файл напрямую, исключая содержимое файла из контекстного окна агента

- **Без монтажа рабочего пространства**: передавайте полный `fileContent` для полного анализа файла — возвращает все ошибки

- Добавляйте необязательный `codeSnippet` для фильтрации результатов — будут возвращены только проблемы в пределах указанного фрагмента (расположение фрагмента определяется автоматически)

Параметры:

- `projectKey` - ключ проекта SonarQube - *Обязательная строка* *(Игнорируется, если задан `SONARQUBE_PROJECT_KEY`)*

- `filePath` - путь к файлу относительно проекта (например, `src/main/java/MyClass.java`). Используется, когда рабочее пространство смонтировано по пути `/app/mcp-workspace` - *Строка*

- `fileContent` - полный контент файла как строка. Требуется, если рабочее пространство не смонтировано - *Строка*

- `codeSnippet` - фрагмент кода для фильтрации проблем (должен соответствовать содержимому `fileContent`) - *Строка*

- `language` - язык кода (например, 'java', 'python', 'js', 'ts', 'tsx', 'jsx') - *Строка*

- `scope` - область файла: MAIN или TEST (по умолчанию MAIN) - *Строка*

**Поддерживаемые языки:** Java, Kotlin, Python, Ruby, Go, JavaScript (`js`, `jsx`), TypeScript (`ts`, `tsx`), JSP, PHP, XML, HTML, CSS, CloudFormation, Kubernetes, Terraform, Azure Resource Manager, Ansible, Docker, Secrets detection

**При включении интеграции с SonarQube для IDE:**

-
**analyze_file_list** - Анализ файлов в текущем рабочем каталоге с использованием SonarQube для IDE. Этот инструмент подключается к запущенному экземпляру SonarQube for IDE для анализа списка файлов.

`file_absolute_paths` - список абсолютных путей к файлам для анализа - *Обязательный массив строк*

-
**toggle_automatic_analysis** - Включение или выключение автоматического анализа SonarQube for IDE. При включении файлы будут автоматически анализироваться по мере их изменения в рабочем каталоге. При выключении автоматический анализ отключен.

`enabled` - включить или выключить автоматический анализ - *Обязательный булев*

**Когда advanced analysis включён для вашей организации SonarQube Cloud:**

> Требуется наличие монтированного пространства workspace по пути `/app/mcp-workspace`

- **run_advanced_code_analysis** - Выполнить расширенный анализ кода в SonarQube Cloud для одного файла. Организация определяется из конфигурации MCP.

`projectKey` - ключ проекта - *Обязательная строка* *(Игнорируется, если задан `SONARQUBE_PROJECT_KEY`)*

- `branch` - Имя ветки, используемое для получения последнего контекста анализа - *Обязательная строка*

- `filePath` - путь к файлу относительно проекта (например, `src/main/java/MyClass.java`). - *Обязательная строка*

- `fileScope` - Определяет область происхождения файла: 'MAIN' или 'TEST' (по умолчанию MAIN) - *Строка*

### Покрытие

-
**search_files_by_coverage** - Поиск файлов в проекте по уровню покрытия (возрастание; хужее покрытие — вначале). Этот инструмент поможет выявить файлы, которым требуется увеличение тестового покрытия.

`projectKey` - ключ проекта - *Обязательная строка* *(Игнорируется, если задан `SONARQUBE_PROJECT_KEY`)*

- `branch` - Необязательная ветка для анализа по веткам. Используйте `list_branches` для поиска допустимых имен - *Строка*

- `pullRequest` - Необязательный ключ/ID pull request. Используйте `list_pull_requests` для обнаружения допустимых ключей - *Строка*

- `maxCoverage` - Максимальный порог покрытия (0-100). Возвращать только файлы с покрытием <= этого значения - *Число*

- `pageIndex` - Номер страницы (1-основанный, по умолчанию: 1) - *Число*

- `pageSize` - Размер страницы (по умолчанию 100, максимум 500) - *Число*

-
**get_file_coverage_details** - Получить построчную информацию о покрытии для конкретного файла, включая какие строки не покрыты и какие ветви частично покрыты. Этот инструмент помогает точно определить, где добавить тестовое покрытие. Используйте после выявления файлов с низким покрытием через search_files_by_coverage.

`key` - Ключ файла (например, my_project:src/foo/Bar.java) - *Обязательная строка*

- `branch` - Необязательная ветка для анализа по веткам. Используйте `list_branches` для поиска допустимых имен - *Строка*

- `pullRequest` - Необязательный ключ/ID pull request. Используйте `list_pull_requests` для поиска допустимых ключей - *Строка*

- `from` - Первая строка для анализа (1-базовая) - *Число*

- `to` - Последняя строка для анализа (включительно). Если не указано, возвращаются все строки - *Число*

### Риски зависимостей

**Примечание:** риски зависимостей доступны только при подключении к SonarQube Server 2025.4 Enterprise или выше и включённой функции SonarQube Advanced Security.

- **search_dependency_risks** - Поиск проблем анализа состава программного обеспечения (риски зависимостей) проекта SonarQube, сопоставленных с релизами, появляющимися в анализируемом проекте, приложении или портфолио.

`projectKey` - Ключ проекта - *Обязательная строка* *(Игнорируется, если задан `SONARQUBE_PROJECT_KEY`)*

- `branch` - Необязательная ветка для анализа по веткам. Используйте `list_branches` для поиска допустимых имен - *Строка*

- `pullRequest` - Необязательный ключ/ID pull request. Используйте `list_pull_requests` для поиска допустимых ключей - *Строка*

- `pageIndex` - Необязательный индекс страницы (1-основанный) - *Число*

- `pageSize` - Необязочный размер страницы. Должен быть больше 0 и не превышать 500 (по умолчанию: 100) - *Число*

### Enterprises

**Примечание:** Enterprises доступны только при подключении к SonarQube Cloud.

- **list_enterprises** - Перечислить предприятия, доступные в SonarQube Cloud, к которым у вас есть доступ. Используйте этот инструмент для обнаружения идентификаторов предприятий, которые можно использовать с другими инструментами.

`enterpriseKey` - Необязательный ключ предприятия для фильтрации - *String*

### Issues

-
**change_sonar_issue_status** - Изменить статус проблемы SonarQube на "accept", "falsepositive" или "reopen".

`key` - Ключ проблемы - *Обязательная строка*

- `status` - Новый статус проблемы - *Обязательный Enum {"accept", "falsepositive", "reopen"}*

-
**search_sonar_issues_in_projects** - Поиск проблем SonarQube в проектах вашей организации.

`projectKeys` - Необязательный список ключей проектов - *String[]*

- `branch` - Необязательная ветка для ветвления анализа. Используйте `list_branches` для поиска допустимых имен - *Строка*

- `pullRequest` - Необязательный ключ/ID pull request. Используйте `list_pull_requests` для поиска допустимых ключей - *Строка*

- `severities` - Необязательный список уровней критичности для фильтрации. Возможные значения: INFO, LOW, MEDIUM, HIGH, BLOCKER - *String[]*

- `impactSoftwareQualities` - Необязательный список качеств ПО для фильтрации. Возможные значения: MAINTAINABILITY, RELIABILITY, SECURITY - *String[]*

- `issueStatuses` - Необязательный список статусов проблем для фильтрации. Возможные значения: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED, IN_SANDBOX - *String[]*

- `issueKey` - Необязательный ключ проблемы для получения конкретной проблемы - *String*

- `pageIndex` - Необязательный 1-битовый номер страницы (по умолчанию: 1) - *Integer*

- `pageSize` - Необязанный размер страницы. Должен быть > 0 и <= 500 (по умолчанию: 100) - *Integer*

### Security Hotspots

-
**search_security_hotspots** - Поиск Security Hotspots в проекте SonarQube.

`projectKey` - Ключ проекта или приложения - *Обязательная строка* *(Игнорируется, когда `SONARQUBE_PROJECT_KEY` задан)*

- `hotspotKeys` - Список ключей конкретных Security Hotspot через запятую - *String[]*

- `branch` - Необязательная ветка для ветвлённого анализа. Используйте `list_branches` для поиска валидных имен - *Строка*

- `pullRequest` - Необязательный ключ/ID pull request. Используйте `list_pull_requests` для поиска валидных ключей - *Строка*

- `files` - Необязательный список путей к файлам для фильтрации - *String[]*

- `status` - Необязательный фильтр статуса: TO_REVIEW, REVIEWED - *Строка*

- `resolution` - Необязательный фильтр разрешения: FIXED, SAFE, ACKNOWLEDGED - *Строка*

- `sinceLeakPeriod` - Фильтровать hotspots, созданные после периода утечки (новый код) - *Boolean*

- `onlyMine` - Показывать только hotspots, назначенные мне - *Boolean*

- `pageIndex` - Необязательный 1-основанный номер страницы (по умолчанию: 1) - *Integer*

- `pageSize` - Необязанный размер страницы. Должен быть > 0 и <= 500 (по умолчанию: 100) - *Integer*

-
**show_security_hotspot** - Получить подробную информацию о конкретной Security Hotspot, включая детали правила, контекст кода, потоки и комментарии.

`hotspotKey` - Ключ Security Hotspot - *Обязательная строка*

-
**change_security_hotspot_status** - Просмотреть Security Hotspot, изменив его статус. При пометке как REVIEWED необходимо указать разрешение (FIXED, SAFE, или ACKNOWLEDGED).

`hotspotKey` - Ключ Security Hotspot - *Обязательная строка*

- `status` - Новый статус - *Обязательный Enum {"TO_REVIEW", "REVIEWED"}*

- `resolution` - Разрешение при статусе REVIEWED - *Enum {"FIXED", "SAFE", "ACKNOWLEDGED"}*

- `comment` - Необязательный комментарий к обзору - *Строка*

### Languages

- **list_languages** - Перечислить все поддерживаемые в этом экземпляре SonarQube языки.

`q` - Необязательный шаблон для сопоставления ключей/названий языка - *Строк