Сервер 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 | Пароль keystore | sonarlint |
| 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.
| Конечная точка | Метод | Описание | Пример ответа |
|---|---|---|---|
| /health | GET | Показатель живости. Возвращает 200 OK с пустым телом после начала обработки запросов | (пустое тело) |
| /info | GET | Возвращает версию 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 | Имя пользователя прокси HTTP | myuser |
| http.proxyPassword | Пароль прокси HTTP | mypassword |
| https.proxyUser | Имя пользователя прокси HTTPS | myuser |
| https.proxyPassword | Пароль прокси HTTPS | mypassword |
Прокси SOCKS5
Поддерживаются прокси SOCKS5.
| Свойство | Описание | По умолчанию | Пример |
|---|---|---|---|
| socksProxyHost | Хост SOCKS5-прокси | — | localhost |
| socksProxyPort | Порт SOCKS5-прокси | 1080 | 1080 |
| 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` - Необязательный шаблон для сопоставления ключей/названий языка - *Строк