MCP Live · SonarQube Server

SonarQube MCP
untuk Tim Titik Terang

Sambungkan Claude Code kamu langsung ke SonarQube milik tim. Analisis kualitas kode, cari bug & code smell, dan perbaiki issue tanpa keluar dari editor — tanpa install apa pun selain satu perintah connect.

00 Apa ini & kenapa gampang

Satu server MCP sudah jalan di VPS tim. Kamu cukup nyambung ke URL-nya.

SonarQube menganalisis kode di server. SonarQube MCP adalah jembatan yang membuat Claude Code bisa "ngobrol" dengan hasil analisis itu. Karena server MCP-nya sudah kami host di VPS (mode HTTP), kamu tidak perlu Docker, Java, atau apa pun di laptop — cukup Claude Code + satu perintah.

Arsitektur: Claude Code (laptopmu) → HTTPS → MCP @ VPSSonarQube @ VPS. Token kamu dikirim per-request (stateless), jadi tiap orang pakai token sendiri.

01 Prasyarat

Cuma dua.

Claude Code terpasang

Cek dengan:

claude --version
Token SonarQube kamu

Login ke SonarQube → klik avatar → My Account → Security → Generate Tokens. Simpan token squ_... baik-baik.

Buka SonarQube ↗

02 Sambungkan (1 perintah)

Ganti TOKEN_KAMU dengan token SonarQube kamu, lalu jalankan di terminal.

claude mcp add --transport http sonarqube \ https://sonarcube.titikterang.id/mcp \ --header "Authorization: Bearer TOKEN_KAMU"
i
Mau MCP-nya aktif di semua project? Tambahkan --scope user. Kalau cuma untuk repo e-office, jalankan dari dalam folder repo (default scope local).

Verifikasi berhasil:

claude mcp list # sonarqube: https://sonarcube.titikterang.id/mcp (HTTP) - ✓ Connected

03 Perintah ke Claude yang efektif

Buka Claude Code di repo, lalu tinggal ketik salah satu ini (Bahasa Indonesia pun paham).

Cek kesehatan project

"Cek quality gate project e-office-bwi di SonarQube, ringkas status & metrik utamanya."

Beresin issue

"Ambil 10 issue paling parah dari SonarQube untuk e-office-bwi, jelaskan, lalu perbaiki yang aman satu per satu."

Fokus keamanan

"Tampilkan semua security hotspot & vulnerability dari SonarQube, urutkan dari paling kritis, dan usulkan perbaikannya."

Sebelum merge

"Aku mau merge branch ini. Cek issue baru di SonarQube untuk branch/PR ini dan pastikan quality gate lolos."

Bersih-bersih

"Cari duplikasi kode & code smell terbanyak dari SonarQube, mulai dari file dengan skor terburuk."

Analisis snippet

"Analisis potongan kode ini pakai aturan SonarQube sebelum aku commit." (tempel kodenya)

04 Kombinasikan dengan skills / subagent Claude

SonarQube kasih temuan; subagent Claude yang mengeksekusi perbaikannya. Pasangan yang bagus:

code-reviewerSetelah SonarQube nunjuk issue, minta review menyeluruh + rekomendasi perbaikan berkualitas.
security-reviewerPasangkan dengan security hotspot SonarQube untuk audit OWASP mendalam.
refactor-cleanerUntuk code smell & duplikasi — bersihkan dead code dengan aman.
build-error-resolverKalau perbaikan bikin build error, agent ini yang membereskan.
Contoh alur sakti: "Ambil issue SonarQube untuk e-office-bwi, lalu pakai subagent code-reviewer untuk memvalidasi tiap perbaikan sebelum ditulis."

05 Tambah project baru (mis. repo private GitLab)

Sekali setup per repo, habis itu analisa jalan otomatis tiap push / merge request.

  1. Buat project di SonarQube. Login → Create Project → Local/Manually → isi Project Key (mis. nama-repo) & Display Name. Ingat key-nya.
  2. Generate token analisa. Saat wizard project, pilih GitLab CI → SonarQube kasih token analisa squ_.... Copy.
  3. Simpan variabel di GitLab. Repo → Settings → CI/CD → Variables (centang Masked + Protected):
    SONAR_HOST_URL = http://203.55.176.248:9000 SONAR_TOKEN = squ_xxxxxxxxxxxx
  4. Tambah sonar-project.properties di root repo:
    sonar.projectKey=nama-repo sonar.projectName=Nama Repo sonar.sources=. sonar.sourceEncoding=UTF-8 sonar.exclusions=vendor/**,node_modules/**,public/build/**,storage/**
  5. Tambah job di .gitlab-ci.yml:
    sonarqube-check: stage: test image: name: sonarsource/sonar-scanner-cli:latest entrypoint: [""] variables: GIT_DEPTH: "0" script: - sonar-scanner -Dsonar.host.url="$SONAR_HOST_URL" -Dsonar.token="$SONAR_TOKEN" rules: - if: $CI_COMMIT_BRANCH == "main" - if: $CI_COMMIT_BRANCH == "dev" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
Selesai. Tiap push ke main/dev atau buka merge request, GitLab Runner otomatis scan & kirim hasil ke SonarQube. Repo private aman — yang menjalankan scanner adalah Runner GitLab yang sudah pegang kodenya, SonarQube tak perlu akses ke GitLab.
!
Batasan versi gratis (Community Build): hanya menganalisa satu branch utama (main/dev). Analisa terpisah per-branch & komentar otomatis di merge request adalah fitur Developer Edition (berbayar). Di versi gratis, hasil MR tetap masuk tapi menumpuk ke branch utama.

06 Kalau macet

401 / UnauthorizedToken salah/expired. Generate ulang di SonarQube → My Account → Security.
Not connectedCek claude mcp list. Hapus & pasang ulang: claude mcp remove sonarqube lalu ulangi langkah 02.
Project tak ketemuPastikan key persis e-office-bwi. File sonar-project.properties di repo sudah menuliskannya.
Fallback URLKalau domain bermasalah, pakai langsung: http://203.55.176.248:8080/mcp