SonarQube to narzędzie do automatycznej analizy jakości kodu. Nasz serwer działa pod adresem https://sonar.suncode.local i ocenia nowy kod projektu PlusWorkflow według bramki jakości, czyli zestawu progów, które muszą spełnić zmiany. Ta strona opisuje, jak podłączyć Sonara do asystenta AI, żeby sprawdzał zmieniony kod naszymi regułami przed oddaniem pracy.
Ta instrukcja dotyczy wyłącznie asystenta omp (oh-my-pi). Claude Code, Cursor, Codex i inne narzędzia mają własne pliki konfiguracyjne o innym formacie i ta instrukcja ich nie obejmuje. |
MCP (Model Context Protocol) to protokół, przez który asystent korzysta z zewnętrznych narzędzi. Serwer MCP SonarQube udostępnia asystentowi narzędzia do analizy kodu, przeglądania zgłoszeń i stanu bramki jakości na naszym serwerze. Działa w kontenerze Dockera, który omp uruchamia automatycznie przy starcie sesji.
docker run hello-world działa)./usr/local/share/ca-certificates/caddy-local-root-2023.crt. Jeśli przeglądarka otwiera Sonara bez ostrzeżenia o certyfikacie, plik zwykle już jest na miejscu.W Sonarze otwórz My Account → Security, wpisz nazwę tokena (np. omp-mcp), wybierz typ User Token i kliknij Generate. Skopiuj token — Sonar pokazuje go tylko raz.
Otwórz plik ~/.omp/agent/mcp.json. Jeśli plik nie istnieje, utwórz go z poniższą zawartością. Jeśli istnieje, dopisz sam wpis "sonarqube" do istniejącej sekcji "mcpServers". W miejsce TWOJ_TOKEN wstaw token z kroku 1.
{
"mcpServers": {
"sonarqube": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm", "--init", "--pull=always",
"-e", "SONARQUBE_TOKEN",
"-e", "SONARQUBE_URL",
"--add-host", "sonar.suncode.local:192.168.1.99",
"-v", "/usr/local/share/ca-certificates/caddy-local-root-2023.crt:/usr/local/share/ca-certificates/caddy-local-root-2023.crt:ro",
"mcp/sonarqube"
],
"env": {
"SONARQUBE_TOKEN": "TWOJ_TOKEN",
"SONARQUBE_URL": "https://sonar.suncode.local"
}
}
}
} |
Nie zapisuj tej konfiguracji w repozytorium ( |
Co oznaczają mniej oczywiste elementy:
--add-host sonar.suncode.local:192.168.1.99 — kontener Dockera używa publicznych serwerów DNS i nie zna nazwy sonar.suncode.local. Ten wpis podaje mu adres serwera wprost.-v …caddy-local-root-2023.crt… — udostępnia kontenerowi certyfikat naszego urzędu certyfikacji. Bez niego kontener odrzuca połączenie z błędem certificate verify failed. Obraz mcp/sonarqube przy starcie instaluje certyfikaty z tego katalogu.--pull=always — przy każdym starcie pobiera najnowszą wersję obrazu serwera MCP./mcp reload.| Objaw | Przyczyna | Co zrobić |
|---|---|---|
| Asystent nie ma narzędzi SonarQube | Błąd w pliku mcp.json albo Docker nie działa | Sprawdź, czy plik jest poprawnym JSON-em, i uruchom docker run hello-world. |
Błąd certificate verify failed | Brak certyfikatu Caddy pod podaną ścieżką | Sprawdź, czy plik /usr/local/share/ca-certificates/caddy-local-root-2023.crt istnieje. Jeśli masz go w innym miejscu, popraw ścieżkę po lewej stronie dwukropka w parametrze -v. |
| Błąd rozwiązywania nazwy albo przekroczony czas połączenia | Serwer Sonara zmienił adres IP | Sprawdź adres poleceniem getent hosts sonar.suncode.local i popraw go w parametrze --add-host. |
| Błąd autoryzacji (401) | Nieprawidłowy albo unieważniony token | Wygeneruj nowy token (krok 1) i podmień go w pliku. |
Konfigurację sprawdziliśmy na Linuksie. Na Windows i macOS ścieżka certyfikatu jest inna, a sposób jego udostępnienia kontenerowi nie był testowany. |