Instrukcja podłączenia serwera SonarQube do asystenta AI przez MCP, żeby asystent mógł analizować kod regułami naszego serwera.

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.

Wymagania

Krok 1. Wygeneruj token

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.

Krok 2. Dodaj serwer do konfiguracji omp

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 (.omp/mcp.json w katalogu projektu), bo zawiera Twój prywatny token.

Co oznaczają mniej oczywiste elementy:

Krok 3. Sprawdź połączenie

  1. Uruchom nową sesję omp albo w trwającej sesji wpisz /mcp reload.
  2. Poproś asystenta: „Sprawdź stan bramki jakości projektu PlusWorkflow w Sonarze”.
  3. Asystent powinien zwrócić listę warunków bramki jakości z wartościami. Jeśli zamiast tego napisze, że nie ma narzędzi SonarQube, przejdź do sekcji „Rozwiązywanie problemów”.

Rozwiązywanie problemów

ObjawPrzyczynaCo zrobić
Asystent nie ma narzędzi SonarQubeBłąd w pliku mcp.json albo Docker nie działaSprawdź, czy plik jest poprawnym JSON-em, i uruchom docker run hello-world.
Błąd certificate verify failedBrak 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łączeniaSerwer Sonara zmienił adres IPSprawdź adres poleceniem getent hosts sonar.suncode.local i popraw go w parametrze --add-host.
Błąd autoryzacji (401)Nieprawidłowy albo unieważniony tokenWygeneruj 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.