SonarQube
resmiSonarQube Sunucusu veya Cloud ile sorunsuz entegrasyon sağlar ve ajan bağlamı içinde doğrudan kod parçacıklarının analizine olanak tanır
SonarQube MCP ile neler yapabilirsiniz?
- SonarQube Cloud veya Server'a bağlanın — Asistanınızı SonarQube'a bağlamak için
sonarsource/sonarqube-mcpkapsayıcısını bir token, kuruluş anahtarı veya sunucu URL'siyle yapılandırın. - Kod parçacıklarını analiz edin — Asistandan, dosyaları doğrudan diskten okumak için bir çalışma alanı bağlaması kullanarak bir kod parçacığını veya dosyayı analiz etmesini isteyin.
- Sorunları arayın ve yönetin —
issuesaraç seti aracılığıyla SonarQube sorunlarını bulun ve güncelleyin. - Güvenlik noktalarını inceleyin —
security-hotspotsaraç seti aracılığıyla Güvenlik Noktalarını arayın ve inceleyin. - Projeleri ve kalite kapılarını görüntüleyin — Proje anahtarlarını, kalite kapılarını, kuralları, ölçümleri ve kapsam verilerini arayın.
- Araç setlerini sınırlayın ve salt okunur modu kullanın — Hangi araçların yükleneceğini denetlemek ve yazma işlemlerini engellemek için
SONARQUBE_TOOLSETSveSONARQUBE_READ_ONLYdeğişkenlerini kullanın.
Dokümantasyon
SonarQube MCP Server
SonarQube MCP Server, kod kalitesi ve güvenliği için SonarQube Server veya Cloud ile sorunsuz entegrasyon sağlayan bir Model Context Protocol (MCP) sunucusudur. Ayrıca, kod parçacıklarının doğrudan aracı bağlamında analiz edilmesini destekler.
Hızlı kurulum ile başlayın veya SonarQube ürün ailesi hakkında daha fazla bilgi edinin.
Hızlı kurulum
Güvenlik en iyi uygulamaları
🔒 Önemli: SonarQube token'ınız hassas bir kimlik bilgisidir. Şu güvenlik uygulamalarını izleyin:
CLI komutlarını kullanırken:
- Token'ları komut satırı bağımsız değişkenlerinde sabit kodlamaktan kaçının – bunlar kabuk geçmişine kaydedilir
- Ortam değişkenlerini kullanın – komutları çalıştırmadan önce token'ları ortam değişkenlerinde ayarlayın
Yapılandırma dosyalarını kullanırken:
- Token'ları asla sürüm kontrolüne göndermeyin
- Mümkün olduğunda yapılandırma dosyalarında ortam değişkeni ikamesini kullanın
🚀 Yapılandırmanızı oluşturun
Başlamanın en hızlı yolu, tercih ettiğiniz yapay zeka aracı istemcisi için kullanıma hazır bir yapılandırma oluşturan etkileşimli bir araç olan SonarQube MCP Server Configuration Generator'ı kullanmaktır.
Manuel kurulum
Her şeyi kendiniz yapılandırmayı tercih ediyorsanız, en basit yöntem sonarsource/sonarqube-mcp kapsayıcı imajımızı kullanmaktır. Otomatik güncellemeler için sonarsource/sonarqube-mcp ( --pull=always ile) kullanın veya tekrarlanabilir dağıtımlar için bir sürüm etiketine (ör. sonarsource/sonarqube-mcp:1.19.0.2785) sabitleyin. Bazı sürümler, hizalandıkları SonarQube Server sürümüyle <SQS major>.<SQS minor>.<patch> biçiminde (ör. sonarsource/sonarqube-mcp:2026.5.0) etiketlenir; yama numarası, bu SonarQube Server sürümünü hedefleyen her MCP sürümünde artırılır. Yerel olarak derlemek istiyorsanız aşağıyı okuyun.
Not: Aşağıdaki örneklerde
dockerkullanılsa da OCI uyumlu herhangi bir kapsayıcı çalışma zamanı kullanılabilir (ör. Podman, nerdctl).dockeryerine tercih ettiğiniz aracı kullanmanız yeterlidir.
Antigravity
SonarQube MCP Server, Antigravity MCP Store'da kullanılabilir. Şu yönergeleri izleyin:
- Agent Side Panel'i açın
- Sağ üstteki üç noktaya (...) tıklayın ve MCP Servers'ı seçin
SonarQubeiçin arama yapın ve Install'ı seçin- Gerekli SonarQube User token'ını girin. SonarQube Cloud için kuruluş anahtarınızı veya SonarQube Server'a bağlanıyorsanız SonarQube URL'sini de girebilirsiniz.
SonarQube Cloud US için URL'yi https://sonarqube.us olarak ayarlayın.
Alternatif olarak, sunucuyu mcp_config.json üzerinden manuel olarak yapılandırabilirsiniz:
- SonarQube Cloud'a bağlanmak için:
Agent Side Panel'de üç noktaya (...) tıklayın -> MCP Store -> Manage MCP Servers -> View raw config yolunu izleyin ve aşağıdakini ekleyin:
{
"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 için "SONARQUBE_URL": "https://sonarqube.us" öğesini env bölümüne, "-e", "SONARQUBE_URL" öğesini ise args dizisine manuel olarak ekleyin.
- SonarQube Server'a bağlanmak için:
{
"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'a bağlanmak için:
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 için komuta --env SONARQUBE_URL=https://sonarqube.us ekleyin.
- SonarQube Server'a bağlanmak için:
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 konumundaki yapılandırma dosyasını manuel olarak düzenleyin ve aşağıdaki yapılandırmayı ekleyin:
- SonarQube Cloud'a bağlanmak için:
[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 için "SONARQUBE_URL" = "https://sonarqube.us" öğesini env bölümüne, "-e", "SONARQUBE_URL" öğesini ise args dizisine ekleyin.
- SonarQube Server'a bağlanmak için:
[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'a bağlanmak için:
SonarQube Cloud US için kurulumdan sonra MCP yapılandırmanızdaki env bölümüne "SONARQUBE_URL": "https://sonarqube.us" öğesini manuel olarak ekleyin.
- SonarQube Server'a bağlanmak için:
Gemini CLI
Not: Gemini CLI uzantısı sonarqube-agent-plugins deposuna taşındı. Bundan sonra lütfen uzantıyı oradan yükleyin.
MCP sunucusu uzantımızı aşağıdaki komutu kullanarak yükleyebilirsiniz:
gemini extensions install https://github.com/SonarSource/sonarqube-agent-plugins
Gemini'yi başlatmadan önce gerekli ortam değişkenlerini ayarlamanız gerekir:
Gerekli ortam değişkenleri:
-
SonarQube Cloud için:
SONARQUBE_TOKEN- SonarQube Cloud token'ınızSONARQUBE_ORG- Kuruluş anahtarınızSONARQUBE_URL- (İsteğe bağlı) SonarQube Cloud US içinhttps://sonarqube.usolarak ayarlayın
-
SonarQube Server için:
SONARQUBE_TOKEN- SonarQube Server USER token'ınızSONARQUBE_URL- SonarQube Server URL'niz
Kurulum tamamlandığında uzantı <home>/.gemini/extensions/sonarqube/gemini-extension.json altına yüklenir.
GitHub Copilot CLI
Copilot CLI'yi başlattıktan sonra SonarQube MCP sunucusunu eklemek için aşağıdaki komutu çalıştırın:
/mcp add
MCP sunucusu hakkında farklı bilgiler girmeniz gerekecek; alanlar arasında gezinmek için Tab tuşunu kullanabilirsiniz.
- SonarQube Cloud'a bağlanmak için:
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 için Arguments'a -e, SONARQUBE_URL, Environment Variables'a SONARQUBE_URL=https://sonarqube.us ekleyin.
- SonarQube Server'a bağlanmak için:
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: *
Yapılandırma dosyası ~/.copilot/mcp-config.json konumundadır.
GitHub Copilot coding agent
GitHub Copilot coding agent, SonarQube MCP sunucusundan doğrudan CI/CD'nizde yararlanabilir.
Gizli bilgileri Copilot ortamınıza eklemek için Copilot belgelerini izleyin. Yalnızca adı COPILOT_MCP_ ile başlayan gizli bilgiler MCP yapılandırmanızda kullanılabilir.
GitHub deponuzda Settings -> Copilot -> Coding agent yolunu izleyin ve MCP configuration bölümüne aşağıdaki yapılandırmayı ekleyin:
- SonarQube Cloud'a bağlanmak için:
{
"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 için "-e", "SONARQUBE_URL" öğesini args dizisine, "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL" öğesini ise env bölümüne ekleyin ve ardından COPILOT_MCP_SONARQUBE_URL=https://sonarqube.us gizli bilgisini ayarlayın.
- SonarQube Server'a bağlanmak için:
{
"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
Çalışma alanı dizininizde bir .kiro/settings/mcp.json dosyası oluşturun (veya varsa düzenleyin) ve aşağıdaki yapılandırmayı ekleyin:
- SonarQube Cloud'a bağlanmak için:
{
"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 için "-e", "SONARQUBE_URL" öğesini args dizisine, "SONARQUBE_URL": "https://sonarqube.us" öğesini ise env bölümüne ekleyin.
- SonarQube Server'a bağlanmak için:
{
"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 içinde kurulum sürecini kolaylaştırmak için aşağıdaki düğmeleri kullanabilirsiniz.
SonarQube Cloud US için kurulumdan sonra MCP yapılandırmanızdaki env bölümüne "SONARQUBE_URL": "https://sonarqube.us" öğesini manuel olarak ekleyin.
Windsurf
SonarQube MCP Server, Windsurf eklentisi olarak kullanılabilir. Şu yönergeleri izleyin:
- Windsurf Settings > Cascade > MCP Servers bölümünü açın ve Open MCP Marketplace'i seçin
- Cascade MCP Marketplace'te
sonarqubeiçin arama yapın - SonarQube MCP Server'ı seçin ve Install'ı seçin
- Gerekli SonarQube User token'ını ekleyin. İsteğe bağlı olarak SonarQube Cloud için varsayılan bir kuruluş anahtarı veya SonarQube Server ya da Community Build için SonarQube URL'si ekleyin.
SonarQube Cloud US için URL'yi https://sonarqube.us olarak ayarlayın.
Zed
Zed'de Extensions görünümüne gidin ve SonarQube MCP Server için arama yapın. Uzantıyı yüklerken gerekli ortam değişkenlerini girmeniz istenir:
- SonarQube Cloud kullanırken:
{
"sonarqube_token": "YOUR_SONARQUBE_TOKEN",
"sonarqube_org": "SONARQUBE_ORGANIZATION_KEY",
"docker_path": "DOCKER_PATH"
}
SonarQube Cloud US için yapılandırmaya "sonarqube_url": "https://sonarqube.us" ekleyin.
- SonarQube Server kullanırken:
{
"sonarqube_token": "YOUR_SONARQUBE_USER_TOKEN",
"sonarqube_url": "YOUR_SONARQUBE_SERVER_URL",
"docker_path": "DOCKER_PATH"
}
docker_path, docker yürütülebilir dosyasının yoludur. Örnekler:
Linux/macOS: /usr/bin/docker veya /usr/local/bin/docker
Windows: C:\Program Files\Docker\Docker\resources\bin\docker.exe
💡 İpucu: En güncel özelliklere ve düzeltmelere sahip olduğunuzdan emin olmak için en son imajı düzenli olarak veya sorun bildirmeden önce çekmenizi öneririz.
Manuel kurulum
Aşağıdaki parçacığı MCP sunucuları yapılandırma dosyasına kopyalayarak SonarQube MCP sunucusunu manuel olarak yükleyebilirsiniz:
- SonarQube Cloud'a bağlanmak için:
{
"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'a bağlanmak için:
{
"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 for IDE ile entegrasyon
SonarQube MCP Server, geliştirme iş akışınızı daha da iyileştirmek ve doğrudan IDE'nizde daha iyi kod analizi ve içgörüler sağlamak için SonarQube for IDE ile entegre olabilir.
Yapılandırma
SonarQube for IDE kullanırken SONARQUBE_IDE_PORT ortam değişkeni doğru bağlantı noktası numarasıyla ayarlanmalıdır. SonarQube for VS Code, doğru bağlantı noktası yapılandırmasını otomatik olarak ayarlayan bir Quick Install düğmesi içerir.
Örneğin, SonarQube Cloud ile:
{
"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 sunucusu Linux'ta bir kapsayıcı içinde çalışırken kapsayıcı, localhost üzerinde çalışan SonarQube for IDE gömülü sunucusuna erişemez. Kapsayıcının SonarQube for IDE sunucusuna bağlanmasını sağlamak için kapsayıcı çalıştırma komutuna
--network=hostseçeneğini ekleyin.
Yapılandırma
Ortamınıza bağlı olarak belirli ortam değişkenlerini sağlamanız gerekir.
Temel
MCP Server'ı çalıştırırken aşağıdaki değişkeni eklemelisiniz:
| Ortam değişkeni | Açıklama |
|---|---|
STORAGE_PATH | SonarQube MCP Server’ın dosyalarını (ör. oluşturma, güncelleme ve kalıcılık için) depolayacağı yazılabilir bir dizinin mutlak yolu zorunludur; kapsayıcı görüntüsü kullanıldığında otomatik olarak sağlanır |
SONARQUBE_PROJECT_KEY | İsteğe bağlı varsayılan proje anahtarı. Ayarlandığında, proje anahtarı gerektiren tüm araçlar bu değeri otomatik olarak kullanır — projectKey parametresi şemalarından tamamen kaldırılır. Tek bir projede çalışırken kullanışlıdır. |
SONARQUBE_IDE_PORT | SonarQube MCP Server’ı SonarQube for IDE’ye bağlamak için kullanılan, 64120 ile 64130 arasında isteğe bağlı bağlantı noktası numarası. |
SONARQUBE_FORCE_LOCAL_ANALYSIS | Cloud stdio’da, yetkilendirilmiş kuruluşlar da dahil olmak üzere Vortex analizi yerine analyze_code_snippet kullanmak için true olarak ayarlayın. analysis araç kümesini gerektirir. Varsayılan: false. SonarQube Server veya Cloud HTTP üzerinde etkisi yoktur. |
SONARQUBE_DEBUG_ENABLED | true olarak ayarlandığında hata ayıklama günlüklerini etkinleştirir. Hata ayıklama günlükleri hem günlük dosyasına hem de STDERR’a yazılır. Bağlantı veya yapılandırma sorunlarını gidermek için kullanışlıdır. Varsayılan: false. |
SONARQUBE_LOG_TO_FILE_DISABLED | true olarak ayarlandığında günlüklerin diske yazılmasını tamamen devre dışı bırakır. STORAGE_PATH/logs/ altında günlük dosyaları oluşturulmaz. Dosyaya günlük yazmanın istenmediği kapsayıcılı veya geçici ortamlarda kullanışlıdır. Varsayılan: false. |
Çalışma Alanını Bağlama (Bağlam Şişmesini Azaltma)
Varsayılan olarak, analiz aracı analyze_code_snippet, aracının tüm dosya içeriğini fileContent bağımsız değişkeni olarak iletmesini gerektirir. Büyük dosyalarda veya bir oturumda çok sayıda dosya analiz edilirken bu, bağlam penceresi kullanımını ve maliyeti önemli ölçüde artırır.
Çözüm: proje dizininizi kapsayıcıya /app/mcp-workspace konumunda bağlayın. Bu bağlama algılandığında sunucu, dosyaları doğrudan diskten proje göreli filePath bağımsız değişkenini kullanarak okur — dosya içeriği aracının bağlamından hiç geçmez.
{
"args": [
"run", "-i", "--rm", "--init", "--pull=always",
"-e", "SONARQUBE_TOKEN",
"-e", "SONARQUBE_ORG",
"-v", "/path/to/your/project:/app/mcp-workspace",
"sonarsource/sonarqube-mcp"
]
}
Bağlama yapıldığında analiz araçları dosyaları doğrudan filePath kullanarak okur; fileContent gerekmez.
stdio üzerinden analiz, başlangıçta (etkinleştirilmiş araç kümelerine bağlı olarak) seçilir:
- SonarQube Cloud: Çalışma alanı bağlaması ve en az bir yetkilendirilmiş kuruluş varsa Vortex analizi (
run_advanced_code_analysis); aksi durumda yerel analiz. Vortex analizi yalnızca yetkilendirilmiş kuruluşları kabul eder. - SonarQube Server: Yetkilendirilmiş örneklerde Vortex analizi (çalışma alanı bağlaması gerekir); Vortex olmayan örneklerde yerel analiz.
Yerel analiz, bağlıysa SonarQube for IDE’yi, aksi durumda analyze_code_snippet kullanır. Bağlama olmadan parça analizi için fileContent gerekir.
Cloud stdio’da SONARQUBE_ORG, yetkilendirme denetimini bu kuruluşla sınırlar. Tüm kuruluşlar için parçaları kullanmak üzere SONARQUBE_FORCE_LOCAL_ANALYSIS=true ayarını yapın, analysis araç kümesini etkinleştirin ve sunucuyu yeniden başlatın. Bu ayar yalnızca Cloud stdio’yu etkiler.
HTTP/HTTPS üzerinden Cloud ve Server, MCP sunucusunda başlangıçta bir SONARQUBE_TOKEN varsa ve analysis araç kümesi etkinse analyze_code_snippet özelliğini destekler. Çözümleyicinin başlatılması için başlangıç belirteci gerekir (Cloud eklenti indirmeleri anonimdir); çağrılar, kalite profillerini ve etkin kuralları almak için çağıranın belirtecini ve Cloud’da istek için seçilen kuruluşu kullanır. Başlangıç belirteci olmadan, SONARQUBE_FORCE_LOCAL_ANALYSIS=true ayarlanmış olsa bile parça analizi ve çözümleyici indirmeleri devre dışıdır. Vortex yetkilendirmesi gerekmez.
Araçları Seçerek Etkinleştirme
MCP istemcileri, etkinleştirilmiş her aracı — adını, açıklamasını ve girdi şemasını — her konuşmada aracının bağlamına yükler. Bu listeyi SONARQUBE_TOOLSETS ile sınırlamak, bağlam kullanımını ve her oturumun belirteç maliyetini azaltır.
Varsayılan olarak yalnızca önemli araç kümeleri etkinleştirilir. Ek araç kümelerini yalnızca gerektiğinde etkinleştirin.
| Ortam değişkeni | Açıklama |
|---|---|
SONARQUBE_TOOLSETS | Etkinleştirilecek araç kümelerinin virgülle ayrılmış listesi. Ayarlandığında yalnızca bu araç kümeleri kullanılabilir. Ayarlanmazsa varsayılan önemli araç kümeleri etkinleştirilir (analysis, ide, issues, projects, quality-gates, rules, duplications, measures, security-hotspots, dependency-risks, coverage, cag). Not: Diğer işlemler için proje anahtarlarını bulmak gerektiğinden projects araç kümesi her zaman etkindir. Vortex bağlam araçları (kullanımdan kaldırılmış adı: Context Augmentation/CAG) ve Vortex analiz araçları (kullanımdan kaldırılmış adı: Advanced Analysis/A3S) yalnızca stdio modunda kullanılabilir ve tek bir birleşik kuruluş yetkilendirmesini paylaşır — her ikisini de kullanabilmek için kuruluşun her ikisi için de yetkilendirilmiş olması gerekir. Cloud’un yerleşik analizi, çalışma zamanında seçilen kuruluşu denetler; proxy üzerinden sunulan bağlam araçları başlangıç kuruluşunu kullanır. SonarQube Server’da stdio, hem CAG hem de A3S hub’ları yetkilendirilmişse Vortex bağlamını ve run_advanced_code_analysis aracını listeler. Birleşik vortex araç kümesi anahtarını tercih edin. Kullanımdan kaldırılmış cag ve analysis anahtarları çalışmaya devam eder; vortex olmadan kullanıldıklarında başlangıç uyarısı ve sunucu talimatlarında kullanımdan kaldırma notu gösterilir. Streamable HTTP modunda istemciler, isteğe göre bu listeyi daha da daraltmak için bir SONARQUBE_TOOLSETS HTTP başlığı gönderebilir; ancak sunucu başlatılırken etkinleştirilenlerin ötesinde araç kümelerini etkinleştiremezler (aşağıdaki Streamable HTTP aktarımı bölümüne bakın). |
SONARQUBE_READ_ONLY | true olarak ayarlandığında, tüm yazma işlemlerini (örneğin sorun durumunu değiştirme) devre dışı bırakan salt okunur modu etkinleştirir. Her ikisi de ayarlanmışsa bu filtre, SONARQUBE_TOOLSETS ile birlikte uygulanır. Varsayılan: false. Streamable HTTP modunda istemciler, tek tek istekleri salt okunur olarak daha da kısıtlamak için bir SONARQUBE_READ_ONLY HTTP başlığı gönderebilir; ancak sunucu düzeyindeki salt okunur kısıtlamasını kaldıramazlar (aşağıdaki Streamable HTTP aktarımı bölümüne bakın). |
Kullanılabilir Araç Kümeleri
| Araç kümesi | Anahtar | Açıklama | |-----------------------|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Analiz** | `analysis` | Kod analizi araçları (`analyze_code_snippet` aracılığıyla yerel analiz, `analyze_file_list`/Vortex analizinin lehine **kullanımdan kaldırılmıştır**) | | **IDE** | `ide` | SonarQube for IDE köprü araçları (dosya analizi, otomatik analiz geçişi) — şu anda `analysis` içinde de yer alır | | **Sorunlar** | `issues` | SonarQube sorunlarını arama ve yönetme | | **Güvenlik Açıkları** | `security-hotspots` | Güvenlik Açıklarını arama ve inceleme | | **Projeler** | `projects` | SonarQube projelerine göz atma ve projeleri arama | | **Kalite Kapıları** | `quality-gates` | Kalite kapılarına ve durumlarına erişme | | **Kurallar** | `rules` | SonarQube kurallarına göz atma ve kuralları arama | | **Kaynaklar** | `sources` | Kaynak koduna ve SCM bilgilerine erişme | | **Yinelenenler** | `duplications` | Projeler arasındaki kod tekrarlarını bulma | | **Ölçümler** | `measures` | Metrikleri ve ölçümleri alma (hem ölçüm hem de metrik araçlarını içerir) | | **Diller** | `languages` | Desteklenen programlama dillerini listeleme | | **Portföyler** | `portfolios` | Portföyleri ve kuruluşları yönetme (Cloud ve Server) | | **Sistem** | `system` | Sistem yönetimi araçları (yalnızca Server) | | **Web kancaları** | `webhooks` | Web kancalarını yönetme | | **Bağımlılık Riskleri** | `dependency-risks` | Bağımlılık risklerini ve güvenlik sorunlarını analiz etme (SCA) | | **Kapsama** | `coverage` | Test kapsamı analizi ve iyileştirme araçları | | **Vortex Bağlamı** | `cag` | Vortex bağlam araçları — yalnızca stdio. `vortex` lehine **kullanımdan kaldırılmıştır** (eski adı: Context Augmentation/CAG) | | **Vortex** | `vortex` | Vortex bağlamı ve Vortex analiz araçlarını tek bir ad altında sunan birleşik, **önerilen** araç kümesi (yalnızca stdio; Cloud için birleşik kuruluş yetkisi gerekir; Server için her iki hub'a da yetki verilmiş olmalıdır) | | **Aracı Hazır Olma Durumu** | `agentic-readiness` | Aracı Hazır Olma Değerlendirmesi araçları (SonarQube Cloud, kuruluş yetkisi gerektirir) | | **Mimari** | `architecture` | Mimarinin okunması, amaçlanan modellerin değiştirilmesi ve proje yönergelerinin yönetilmesi (varsayılan olarak etkin değildir) |Örnekler
Analiz, sorunlar ve kalite kapıları araç kümelerini etkinleştirme (SonarQube Cloud ile Docker kullanarak):
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
Not: projects araç kümesi her zaman otomatik olarak etkinleştirilir; bu nedenle SONARQUBE_TOOLSETS içine eklemeniz gerekmez.
Salt okunur modu etkinleştirme (SonarQube Cloud ile Docker kullanarak):
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
stdio için aşağıdaki ortam değişkenlerini yapılandırın:
| Ortam değişkeni | Açıklama | Gerekli |
|---|---|---|
SONARQUBE_TOKEN | SonarQube Cloud token'ınız | Evet |
SONARQUBE_ORG | İsteğe bağlı sabit SonarQube Cloud kuruluş anahtarı | Hayır |
SONARQUBE_URL | Özel SonarQube Cloud URL'si (varsayılan: https://sonarcloud.io). SonarQube Cloud US için bunu kullanın: https://sonarqube.us | Hayır |
Örnekler:
- SonarQube Cloud: Yalnızca
SONARQUBE_TOKENgereklidir. AyarlandığındaSONARQUBE_ORGkuruluşu sabitler. - SonarQube Cloud US:
SONARQUBE_TOKENveSONARQUBE_URL=https://sonarqube.usdeğerlerini ayarlayın;SONARQUBE_ORGisteğe bağlıdır.
SonarQube Server
| Ortam değişkeni | Açıklama | Gerekli |
|---|---|---|
SONARQUBE_TOKEN | SonarQube Server USER token'ınız | Evet |
SONARQUBE_URL | SonarQube Server URL'niz | Evet |
Sürüm gereksinimi: SonarQube Server 2025.1 (SQS) veya 25.1 (SonarQube Community Build) ya da daha yeni bir sürüm gereklidir. Başlangıçta MCP sunucusu bağlı örneğin sürümünü okur ve sürüm çok eskiyse hata vererek çıkar (örneğin, eski 9.x/10.x Server sürümleri ve Community Build 24.x desteklenmez). SonarQube Cloud bu denetime tabi değildir.
⚠️ SonarQube Server'a bağlanmak için USER türünde bir token gerekir; proje token'ları veya genel token'lar kullanılırsa düzgün çalışmaz.
💡 Yapılandırma İpucu (stdio modu): URL belirtilmeyen bir token varsayılan olarak SonarQube Cloud'u kullanır. SonarQube Server veya farklı bir Cloud bölgesi için
SONARQUBE_URLdeğerini ayarlayın. AyarlandığındaSONARQUBE_ORGCloud kuruluşunu sabitler.
stdio'da SONARQUBE_ORG ayarlanması Cloud kuruluşunu sabitler. organization arayüzleri şemalardan çıkarılır ve SONARQUBE_PROJECT_KEY ayarlandığında projectKey gibi reddedilir.
SONARQUBE_ORG ayarlanmamışsa aracılar, kullanıcı hesabınızın erişebildiği kuruluş anahtarlarını, adlarını, kimliklerini ve UUID'lerini bulmak için list_organizations çağrısını yapabilir; ardından kuruluşu dikkate alan araçlarda isteğe bağlı organization bağımsız değişkeni olarak bir anahtar iletebilir. stdio, benzersiz olarak algılanan bir kuruluşu varsayılan olarak kullanmaya devam eder; hiç kuruluş bulunamazsa veya birden fazla kuruluş bulunursa kuruluş çözümlenmemiş kalır. Bir araç bağımsız değişkeni yalnızca o çağrı için geçerlidir ve algılanan varsayılanı hiçbir zaman değiştirmez. Parçacık profili ve kural aramaları, o çağrı için seçilen kuruluşu kullanır.
HTTP/HTTPS token isteklerinde sunucu düzeyindeki SONARQUBE_ORG geriye dönük uyumluluk için desteklenmeye devam eder, ancak kullanımdan kaldırılmıştır ve başlangıç uyarısı kaydeder. Bu ayar her istek için kuruluşu sabitler ve istemci kuruluş başlıklarını ve organization araç bağımsız değişkenlerini reddeder. Sunucu düzeyinde kuruluş yapılandırılmadığında, isteğe bağlı bir istemci SONARQUBE_ORG başlığı o istek için kuruluşu sabitler ve organization araç bağımsız değişkenlerine izin vermez. Başlık yoksa araç bağımsız değişkenini kullanın. Kuruluş gerektiren araçlar, tümü eksik olduğunda kuruluş keşfiyle ilgili yönergeler sunar. Kuruluş keşfi ve API'leri yalnızca kaynak tanımlayıcılarını kullanan araçlar kuruluş bağımsız değişkeni gerektirmez. Kuruluşu dikkate alan sorun araması ve bağımlılık riski yetki denetimleri seçilen kuruluşu kullanır. OAuth yapılandırıldığında sunucu düzeyindeki SONARQUBE_ORG reddedilir. OAuth isteklerinde kuruluş başlıkları da reddedilir; kuruluşları araç bağımsız değişkenleriyle seçin.
Vortex bağlam araçları, yapılandırılmış veya başlangıçta benzersiz olarak algılanan kuruluşu kullanır. Çalışma zamanı kuruluş bağımsız değişkenleri, vekil bağlam altyapısını yeniden yapılandırmaz; başlangıçta kuruluş çözümlenmemişse bu vekil atlanır. Yerleşik run_advanced_code_analysis aracı, her çağrıda seçilen kuruluş için birleşik Vortex yetkisini denetler.
Taşıma Modları
MCP belirtimi iki taşıma mekanizması tanımlar: Stdio ve Streamable HTTP. SonarQube MCP Server her ikisini de destekler:
| MCP taşıması | Sunucu modu | Tipik kullanım |
|---|---|---|
| Stdio | Varsayılan (SONARQUBE_TRANSPORT yok) | Sunucuyu alt süreç olarak başlatan yerel MCP istemcileri (Cursor, Claude Code, VS Code vb.) |
| Streamable HTTP | SONARQUBE_TRANSPORT=http veya https | Uzak veya çok kullanıcılı dağıtımlar; istemciler HTTP(S) üzerinden /mcp adresine bağlanır (ör. kendi sunucusunda barındırılan sunucu URL'siyle Windsurf) |
Not: Streamable HTTP, güncel MCP ağ taşımasıdır. Eski MCP sürümlerindeki yalnızca SSE kullanan HTTP taşıması kullanımdan kaldırılmıştır ve desteklenmez.
1. Stdio (Varsayılan - Yerel Geliştirme için Önerilir)
Yerel geliştirme ve tek kullanıcılı kurulumlar için önerilen, çoğu MCP istemcisinin kullandığı moddur.
Örnek - SonarQube Cloud ile Docker:
{
"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)
Şifrelenmemiş Streamable HTTP taşıması. Çok kullanıcılı dağıtımlar için bunun yerine HTTPS kullanın.
⚠️ Önerilmez: Yerel geliştirme için Stdio, çok kullanıcılı üretim dağıtımları için HTTPS (Streamable HTTP) kullanın.
| Ortam değişkeni | Açıklama | Varsayılan |
|---|---|---|
SONARQUBE_TRANSPORT | Streamable HTTP taşımasını etkinleştirmek için http olarak ayarlayın | Ayarlanmamış (stdio) |
SONARQUBE_HTTP_PORT | Bağlantı noktası numarası (1024-65535) veya işletim sisteminin atadığı bir bağlantı noktası için 0 | 8080 |
SONARQUBE_HTTP_HOST | Bağlanılacak ana makine (güvenlik için varsayılan olarak localhost) | 127.0.0.1 |
SONARQUBE_HTTP_ALLOWED_ORIGINS | CORS için izin verilen tarayıcı kaynaklarının virgülle ayrılmış listesi (ör. https://my-app.example.com) | Ayarlanmamış |
SONARQUBE_MCP_IN_CONTAINER | Bir kapsayıcı içinde çalışırken true olarak ayarlayın. Resmî Docker imajı bunu otomatik olarak ayarlar; diğer OCI çalışma zamanlarını (Podman, Kubernetes, Nomad vb.) kullanırken kendiniz ayarlayın. | false |
Not: HTTP/HTTPS, kullanıcının SonarQube belirtecini Authorization: Bearer <token> üzerinden kabul eder. Sonar'ın barındırılan Cloud hizmeti ayrıca OAuth desteği sunar. SonarQube Cloud belirteci isteklerinde kuruluş şu şekilde belirlenir: |
SONARQUBE_ORG, bu istek için kuruluşu sabitleyen isteğe bağlı bir istek başlığıdır. Kullanımdan kaldırılmış sunucu düzeyindeki yapılandırma, kuruluşu tüm istekler için sabitler ve istemciden gelen kuruluş başlıklarını ve araç kuruluşu bağımsız değişkenlerini reddeder.- Kuruluşu dikkate alan araçlar, sunucu yapılandırması veya istek başlığı kuruluşu sabitlemediğinde isteğe bağlı bir
organizationbağımsız değişkenini kabul eder. Kuruluş sabitlenmişken bu bağımsız değişkenin sağlanması reddedilir. - Varsayılan kuruluş yoksa aracı sistemler yalnızca belirteçlerini kullanarak
list_organizationsçağrısı yapabilir, ardından seçilen anahtarı sonraki araçlara iletebilir.
İstemciler ayrıca SONARQUBE_TOOLSETS ve/veya SONARQUBE_READ_ONLY başlıklarını sağlayarak istek başına görünür araçları daraltabilir; bunlar sunucu düzeyindeki yapılandırmaya ek filtreleme uygular — kapsamı yalnızca daraltabilir, asla genişletemez.
İstekler arasında oturum durumu tutulmaz.
Kullanımdan kaldırıldı: SonarQube belirteçleri için
SONARQUBE_TOKENistek başlığı geriye dönük uyumluluk amacıyla hâlâ kabul edilir, ancak gelecekteki bir sürümde kaldırılacaktır.Authorization: Bearer <token>kullanımına geçin.
3. HTTPS (TLS üzerinden Streamable HTTP) (Çok Kullanıcılı Üretim Dağıtımları için Önerilir)
TLS şifrelemesi kullanan güvenli Streamable HTTP aktarımı. SSL sertifikaları gerektirir.
✅ Üretim için önerilir: MCP sunucusunu Streamable HTTP üzerinden birden fazla kullanıcı için dağıtırken HTTPS kullanın. Güvenlik amacıyla sunucu varsayılan olarak
127.0.0.1(localhost) adresine bağlanır.
| Ortam değişkeni | Açıklama | Varsayılan |
|---|---|---|
SONARQUBE_TRANSPORT | TLS üzerinden Streamable HTTP aktarımını etkinleştirmek için https olarak ayarlayın | Ayarlanmamış (stdio) |
SONARQUBE_HTTP_PORT | Bağlantı noktası numarası (HTTPS için genellikle 8443) veya işletim sisteminin atadığı bir bağlantı noktası için 0 | 8080 |
SONARQUBE_HTTP_HOST | Bağlanılacak ana bilgisayar (güvenlik amacıyla varsayılan olarak localhost) | 127.0.0.1 |
SONARQUBE_HTTP_ALLOWED_ORIGINS | CORS için izin verilen, virgülle ayrılmış tarayıcı kaynakları (ör. https://my-app.example.com) | Ayarlanmamış |
SONARQUBE_MCP_IN_CONTAINER | Bir kapsayıcı içinde çalışırken true olarak ayarlayın. Resmî Docker imajı bunu otomatik olarak ayarlar; diğer OCI çalışma ortamlarını (Podman, Kubernetes, Nomad vb.) kullanırken kendiniz ayarlayın. | false |
SSL Sertifikası Yapılandırması (İsteğe Bağlı):
| Ortam değişkeni | Açıklama | Varsayılan |
|---|---|---|
SONARQUBE_HTTPS_KEYSTORE_PATH | Anahtar deposu dosyasının yolu (.p12 veya .jks) | /etc/ssl/mcp/keystore.p12 |
SONARQUBE_HTTPS_KEYSTORE_PASSWORD | Anahtar deposu parolası | sonarlint |
SONARQUBE_HTTPS_KEYSTORE_TYPE | Anahtar deposu türü (PKCS12 veya JKS) | PKCS12 |
Örnek - SonarQube Cloud ile Docker:
Not: Bir kapsayıcıda çalıştırırken, kapsayıcının tüm arabirimleri dinlemesi ve çalışma ortamının bağlantı noktası eşlemesinin çalışması için
SONARQUBE_HTTP_HOST=0.0.0.0ayarlayın; sunucuya bir kapsayıcının içinde olduğunu bildirmek için deSONARQUBE_MCP_IN_CONTAINER=trueayarlayın. Resmî Docker imajı ikinci değişkeni otomatik olarak ayarlar; diğer OCI çalışma ortamlarını (Podman, Kubernetes, Nomad vb.) kullanırken kendiniz ayarlayın. Ana bilgisayar tarafındaki bağlantı noktası bayrağı, kapsayıcının dışından sunucuya kimlerin erişebileceğini belirler.SONARQUBE_HTTP_HOST=0.0.0.0yalnızca sunucunun kapsayıcı içinde nerede dinleyeceğini belirler — tarayıcı CORS'u varsayılan olarak localhost kaynaklarına yine izin verir.
Makinenizde yerel olarak çalışan (yalnızca localhost üzerinden erişilebilen) bir sunucu için:
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 \
sonarsource/sonarqube-mcp
Ağ üzerinden erişilebilen bir sunucu için (uzak dağıtımlar):
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 \
sonarsource/sonarqube-mcp
İstemci Yapılandırması (SonarQube Cloud):
SonarQube belirteci isteklerinde, isteğin kuruluşunu sabitlemek için istemci başlıklarında isteğe bağlı olarak SONARQUBE_ORG ayarlayın veya kuruluşları araç bağımsız değişkenleriyle seçmek için bu başlığı kullanmayın.
{
"mcpServers": {
"sonarqube-https": {
"url": "https://your-server:8443/mcp",
"headers": {
"Authorization": "Bearer <your-token>",
"SONARQUBE_TOOLSETS": "issues,quality-gates",
"SONARQUBE_READ_ONLY": "true"
}
}
}
}
İstemci Yapılandırması (SonarQube Server):
{
"mcpServers": {
"sonarqube-https": {
"url": "https://your-server:8443/mcp",
"headers": {
"Authorization": "Bearer <your-token>",
"SONARQUBE_TOOLSETS": "issues,quality-gates",
"SONARQUBE_READ_ONLY": "true"
}
}
}
}
Not:
SONARQUBE_TOOLSETSveSONARQUBE_READ_ONLY, sunucu düzeyindeki araç kümesini belirli bir istek için daraltan isteğe bağlı istek başlıklarıdır. Kapsamı yalnızca daraltabilirler — sunucunun başlatıldığı yapılandırmanın ötesinde araç kümelerini etkinleştiremez veya kısıtlamaları kaldıramazlar.
Not: Yerel geliştirme için bunun yerine Stdio aktarımını (varsayılan) kullanın. HTTPS Streamable HTTP, uygun SSL sertifikalarıyla çok kullanıcılı üretim dağıtımları için tasarlanmıştır.
Barındırılan SonarQube Cloud OAuth
OAuth desteği, Sonar'ın barındırılan SonarQube Cloud MCP hizmetini hedefler. OAuth destekli bir MCP istemcisi kullanın ve istendiğinde oturum açın; istemci yapılandırmanızda OAuth sunucusu ayarlarına gerek yoktur. Mevcut SonarQube belirteci istemcileri desteklenmeye devam eder.
mcp:tools:read ve mcp:tools:write kapsamları, Cloud izinlerinize tabi olarak okuma ve yazma araçlarına erişimi birbirinden bağımsız biçimde denetler. Kuruluş seçmek için list_organizations ve araçtaki organization bağımsız değişkenlerini kullanın.
Kendi barındırdığınız dağıtımlar SonarQube belirteçlerini kullanmaya devam eder; SonarQube Server için OAuth henüz desteklenmemektedir.
Hizmet Uç Noktaları
Streamable HTTP modunda (http veya https) çalışırken sunucu, /mcp adresindeki MCP uç noktasına ek olarak kimlik doğrulaması gerektirmeyen birkaç hizmet uç noktası sunar. Bunlar hizmetler arası kullanım (izleme, düzenleme, istemci uyumluluğu denetimleri) için tasarlanmıştır ve bir Authorization başlığı gerektirmez.
| Uç nokta | Yöntem | Açıklama | Örnek yanıt |
|---|---|---|---|
/health | GET | Canlılık denetimi. Sunucu istekleri kabul etmeye başladığında boş gövdeyle 200 OK döndürür. | (boş gövde) |
/info | GET | MCP sunucusu sürümünü JSON olarak döndürür. Dağıtılan sunucu sürümünü doğrulamak için kullanışlıdır. | {"version":"1.16.0"} |
Bu uç noktalar Stdio aktarımıyla çalışırken kullanılamaz.
Özel Sertifikalar
SonarQube Server'ınız kendinden imzalı bir sertifika veya özel bir Sertifika Yetkilisinden (CA) alınmış bir sertifika kullanıyorsa, kapsayıcıya otomatik olarak yüklenecek özel sertifikalar ekleyebilirsiniz.
Configuration
Bir Birim Bağlama Kullanımı
Kapsayıcıyı çalıştırırken sertifikalarınızı içeren bir dizini bağlayın:
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
Desteklenen Sertifika Biçimleri
Kapsayıcı aşağıdaki sertifika biçimlerini destekler:
.crtdosyaları (PEM veya DER kodlamalı).pemdosyaları (PEM kodlamalı)
Sertifikalarla MCP Yapılandırması
Özel sertifikalar kullanırken, sertifikaları bağlamak için MCP yapılandırmanızı değiştirebilirsiniz:
{
"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>"
}
}
}
Not: Sunucuyu kapsayıcı yerine bir JAR dosyasından mı çalıştırıyorsunuz? Yukarıdaki birim bağlama, sertifikaları sunucunun da okuduğu kapsayıcının işletim sistemi güven deposuna yükler. İşletim sistemi güven deposunu kullanamıyorsanız — özellikle bu deponun kullanılmadığı Windows'ta — JVM'yi CA sertifikasını içeren bir Java güven deposuna yönlendirin:
-Djavax.net.ssl.trustStore=/path/to/truststore.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=<passphrase>. Bu depo, varsayılan güvenilir sertifikalara eklenir.
Proxy
SonarQube MCP Server, standart Java proxy sistem özellikleri aracılığıyla HTTP ve SOCKS5 proxy'lerini destekler.
Configuration
HTTP/HTTPS Proxy
Java sistem özelliklerini kullanarak proxy ayarlarını yapılandırabilirsiniz. Bunlar ortam değişkenleri olarak ayarlanabilir veya JVM bağımsız değişkenleri olarak iletilebilir.
Yaygın Proxy Özellikleri:
| Özellik | Açıklama | Örnek |
|---|---|---|
http.proxyHost | HTTP proxy ana bilgisayar adı | proxy.example.com |
http.proxyPort | HTTP proxy bağlantı noktası | 8080 |
https.proxyHost | HTTPS proxy ana bilgisayar adı | proxy.example.com |
https.proxyPort | HTTPS proxy bağlantı noktası | 8443 |
http.nonProxyHosts | Proxy'yi atlayan ana bilgisayarlar (dikey çizgiyle ayrılmış) | localhost|127.0.0.1|*.internal.com |
HTTP/HTTPS Proxy Kimlik Doğrulaması:
| Özellik | Açıklama | Örnek |
|---|---|---|
http.proxyUser | HTTP proxy kullanıcı adı | myuser |
http.proxyPassword | HTTP proxy parolası | mypassword |
https.proxyUser | HTTPS proxy kullanıcı adı | myuser |
https.proxyPassword | HTTPS proxy parolası | mypassword |
SOCKS5 Proxy
SOCKS5 proxy'leri desteklenir.
| Özellik | Açıklama | Varsayılan | Örnek |
|---|---|---|---|
socksProxyHost | SOCKS5 proxy ana bilgisayar adı | — | localhost |
socksProxyPort | SOCKS5 proxy bağlantı noktası | 1080 | 1080 |
java.net.socks.username | SOCKS5 kullanıcı adı (kimlik doğrulama gerekiyorsa) | — | myuser |
java.net.socks.password | SOCKS5 parolası (kimlik doğrulama gerekiyorsa) | — | mypassword |
İstemci Sertifikası (Karşılıklı TLS)
SonarQube Server'ınız istemcilerin TLS el sıkışması sırasında sertifika sunmasını gerektiriyorsa (karşılıklı TLS), kapsayıcıya bir PKCS12 anahtar deposu bağlayıp konumunu JAVA_OPTS üzerinden iletebilirsiniz.
Configuration
PKCS12 anahtar deposu kullanma
.p12 veya .pfx dosyanızı kapsayıcıya bağlayın ve anahtar deposu özelliklerini içeren JAVA_OPTS ortam değişkenini ayarlayın:
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
Not: Sertifika dosyası kapsayıcı işlemi tarafından okunabilir olmalıdır. Gerekirse izinleri denetleyip düzeltin:
ls -la /path/to/client.p12 # -rw-r--r-- (644) veya daha geniş izinleri arayın chmod 644 /path/to/client.p12 # kapsayıcı kullanıcısına okuma izni verin
Anahtar deposunun parolası yoksa -Djavax.net.ssl.keyStorePassword değişkenini kullanmayın. Burada kullanılan parolanın docker inspect veya işlem listesi üzerinden görülebileceğini unutmayın.
İstemci Sertifikasıyla MCP Yapılandırması
{
"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>"
}
}
}
Bağımsız bir JAR ile PKCS12 anahtar deposu kullanma
Sunucuyu bir JAR dosyasından çalıştırırken, anahtar deposu özelliklerini -jar öncesinde JVM bağımsız değişkenleri olarak iletin:
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>
Anahtar deposunun parolası yoksa -Djavax.net.ssl.keyStorePassword değişkenini kullanmayın.
İstemci Sertifikasıyla MCP Yapılandırması (JAR)
{
"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>"
}
}
}
Not: PEM sertifika ve anahtar dosyaları (ayrı
.crt/.keydosyaları) önce PKCS12 biçimine dönüştürülmelidir. Bunları dönüştürmek içinopenssl pkcs12 -export -in client.crt -inkey client.key -out client.p12kullanın.
Araçlar
Analiz
-
analyze_code_snippet - Kod kalitesi ve güvenlik sorunlarını belirlemek için dosya içeriğini SonarQube analizörleriyle analiz eder. Doğruluk için her zaman dosyanın tamamını analiz eder. İsteğe bağlı olarak sonuçları belirli bir kod parçacığıyla filtreleyin.
Kullanımdan kaldırıldı:
analyze_code_snippetgelecekteki bir sürümde kaldırılacaktır.analyze_file_listkullanmak için SonarQube for IDE'ye bağlanın veyarun_advanced_code_analysiskullanmak için kuruluşunuzda Vortex analizini etkinleştirin (aşağıya bakın).Kullanım:
- Çalışma alanı bağlandığında (önerilir):
filePath(proje göreli) değerini iletin — sunucu dosyayı doğrudan okur ve dosya içeriğinin aracının bağlam penceresine girmesini önler - Çalışma alanı bağlanmadığında: dosyanın tamamını analiz etmek için eksiksiz
fileContentdeğerini iletin (tüm sorunları raporlar) - Sonuçları filtrelemek için isteğe bağlı
codeSnippetekleyin; yalnızca kod parçacığının içindeki sorunlar raporlanır (kod parçacığının konumu otomatik olarak algılanır)
Parametreler:
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca CloudprojectKey- SonarQube proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)filePath- Analiz edilecek dosyanın proje göreli yolu (ör.src/main/java/MyClass.java). Çalışma alanı/app/mcp-workspacekonumuna bağlandığında kullanılır - StringfileContent- Dize olarak dosyanın eksiksiz içeriği. Çalışma alanı bağlı değilse gereklidir - StringcodeSnippet- Sorunları filtrelemek için kod parçacığı (fileContent içeriğiyle eşleşmelidir) - Stringlanguage- Kodun dili (ör. 'java', 'python', 'js', 'ts', 'tsx', 'jsx') - Stringscope- Dosyanın kapsamı: MAIN veya TEST (varsayılan: MAIN) - String
Desteklenen Diller: 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 - Çalışma alanı bağlandığında (önerilir):
SonarQube for IDE ile entegrasyon etkin olduğunda: (bu iki araç hem analysis hem de ide araç kümelerinde etiketlenmiştir)
-
analyze_file_list - SonarQube for IDE kullanarak geçerli çalışma dizinindeki dosyaları analiz edin. Bu araç, dosya listesinde kod kalitesi analizi yapmak için çalışan bir SonarQube for IDE örneğine bağlanır.
file_absolute_paths- Analiz edilecek mutlak dosya yollarının listesi - Gerekli String[]
-
toggle_automatic_analysis - SonarQube for IDE otomatik analizini etkinleştirin veya devre dışı bırakın. Etkinleştirildiğinde SonarQube for IDE, çalışma dizininde değiştirilen dosyaları otomatik olarak analiz eder. Devre dışı bırakıldığında otomatik analiz kapatılır.
enabled- Otomatik analizi etkinleştirin veya devre dışı bırakın - Gerekli Boolean
SonarQube Server'da, hem CAG hem de A3S hub'ları için yetki verildiğinde stdio, Vortex bağlam araçlarını ve run_advanced_code_analysis aracını listeler.
Vortex analizi kullanılabilir olduğunda:
Çalışma alanının
/app/mcp-workspacekonumuna bağlanmış olması gerekir
- run_advanced_code_analysis - Tek bir dosyada Vortex analizi çalıştırın. SonarQube Server, nil UUID yer tutucusunu kullanır.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca CloudprojectKey- Projenin anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)branch- En son analiz bağlamını almak için kullanılan dal adı - Gerekli StringfilePath- Analiz edilecek dosyanın proje göreli yolu (ör.src/main/java/MyClass.java). - Gerekli StringfileScope- Dosyanın hangi kapsamdan geldiğini belirtir: 'MAIN' veya 'TEST' (varsayılan: MAIN) - String
Kapsam
-
search_files_by_coverage - Bir projedeki dosyaları kapsama oranına göre artan sırada (en düşük kapsama önce) arayın. Bu araç, test kapsamının iyileştirilmesi gereken dosyaları belirlemeye yardımcı olur.
projectKey- Arama yapılacak proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)branch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları bulmak içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları bulmak içinlist_pull_requestskullanın - StringmaxCoverage- En yüksek kapsama eşiği (0-100). Yalnızca kapsama oranı bu değere eşit veya daha düşük olan dosyaları döndürür - NumberpageIndex- Sayfa dizini (1 tabanlı, varsayılan: 1) - NumberpageSize- Sayfa boyutu (varsayılan: 100, en fazla: 500) - Number
-
get_file_coverage_details - Belirli bir dosyanın satır satır kapsama bilgilerini alın; kapsanmayan satırları ve kısmen kapsanan dalları tam olarak gösterir. Bu araç, test kapsamının tam olarak nerede eklenmesi gerektiğini belirlemeye yardımcı olur. search_files_by_coverage ile kapsamı düşük dosyaları belirledikten sonra kullanın.
key- Dosya anahtarı (ör. my_project:src/foo/Bar.java) - Gerekli Stringbranch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları bulmak içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları bulmak içinlist_pull_requestskullanın - Stringfrom- Analiz edilecek ilk satır (1 tabanlı, varsayılan: 1) - Numberto- Analiz edilecek son satır (dahil). Belirtilmezse tüm satırlar döndürülür - Number
Bağımlılık Riskleri
Not: Bağımlılık riskleri için SonarQube Advanced Security gerekir. SonarQube Server'da 2025.4 Enterprise veya üzeri bir sürüm gereklidir.
- search_dependency_risks - SonarQube projesindeki yazılım bileşimi analizi sorunlarını (bağımlılık risklerini), analiz edilen projede, uygulamada veya portföyde bulunan sürümlerle eşleştirerek arayın.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca CloudprojectKey- Proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)branch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları bulmak içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları bulmak içinlist_pull_requestskullanın - StringpageIndex- İsteğe bağlı sayfa dizini (1 tabanlı, varsayılan: 1) - IntegerpageSize- İsteğe bağlı sayfa boyutu. 0'dan büyük ve 500'e eşit veya küçük olmalıdır (varsayılan: 100) - Integer
Kuruluşlar
Not: Kuruluşlar yalnızca SonarQube Cloud'a bağlanıldığında kullanılabilir.
- list_enterprises - SonarQube Cloud'da erişiminiz olan kuruluşları listeleyin. Diğer araçlarda kullanılabilecek kuruluş kimliklerini bulmak için bu aracı kullanın.
enterpriseKey- Sonuçları filtrelemek için isteğe bağlı kuruluş anahtarı - String
Sorunlar
-
change_sonar_issue_status - Bir SonarQube sorununun durumunu "accept", "falsepositive" veya "reopen" olarak değiştirin.
key- Sorun anahtarı - Gerekli Stringstatus- Sorunun yeni durumu - Gerekli Enum {"accept", "falsepositive", "reopen"}comment- Durum değişikliğini açıklayan isteğe bağlı yorum - String
-
search_sonar_issues_in_projects - Kuruluşumun projelerindeki SonarQube sorunlarını arayın.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca CloudprojectKeys- İsteğe bağlı SonarQube proje anahtarları listesi - String[]branch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları bulmak içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları bulmak içinlist_pull_requestskullanın - Stringseverities- Filtrelenecek isteğe bağlı önem dereceleri listesi. Olası değerler: INFO, LOW, MEDIUM, HIGH, BLOCKER - String[]impactSoftwareQualities- Filtrelenecek isteğe bağlı yazılım kaliteleri listesi. Olası değerler: MAINTAINABILITY, RELIABILITY, SECURITY - String[]issueStatuses- Filtrelenecek isteğe bağlı sorun durumları listesi. Olası değerler: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED, IN_SANDBOX - String[]tags- Filtrelenecek isteğe bağlı sorun etiketleri listesi. Etiketler küçük harfle yazılır - String[]inNewCodePeriod- Yalnızca yeni kod dönemindeki sorunları döndürür.projectKeysvefilesarasında tam olarak bir giriş gerektirir - BooleanissueKey- Belirli bir sorunu getirmek için isteğe bağlı sorun anahtarı - StringpageIndex- İsteğe bağlı 1 tabanlı sayfa dizini (varsayılan: 1) - IntegerpageSize- İsteğe bağlı sayfa boyutu. 0'dan büyük ve 500'e eşit veya küçük olmalıdır (varsayılan: 100) - Integer
Güvenlik Odak Noktaları
-
search_security_hotspots - Bir SonarQube projesindeki Güvenlik Odak Noktalarını arayın.
projectKey- Proje veya uygulama anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)hotspotKeys- Alınacak belirli Güvenlik Odak Noktası anahtarlarının virgülle ayrılmış listesi - String[]branch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları bulmak içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları bulmak içinlist_pull_requestskullanın - Stringfiles- Filtrelenecek isteğe bağlı dosya yolları listesi - String[]status- İsteğe bağlı durum filtresi: TO_REVIEW, REVIEWED - Stringresolution- İsteğe bağlı çözüm filtresi: FIXED, SAFE, ACKNOWLEDGED - StringsinceLeakPeriod- Sızıntı döneminden (yeni kod) bu yana oluşturulan odak noktalarını filtreler - BooleanonlyMine- Yalnızca bana atanmış odak noktalarını gösterir - BooleanpageIndex- İsteğe bağlı 1 tabanlı sayfa dizini (varsayılan: 1) - IntegerpageSize- İsteğe bağlı sayfa boyutu. 0'dan büyük ve 500'e eşit veya küçük olmalıdır (varsayılan: 100) - Integer
-
show_security_hotspot - Kural ayrıntıları, kod bağlamı, akışlar ve yorumlar dahil olmak üzere belirli bir Güvenlik Odak Noktası hakkında ayrıntılı bilgi alın.
hotspotKey- Güvenlik Odak Noktası anahtarı - Gerekli String
-
change_security_hotspot_status - Durumunu değiştirerek bir Güvenlik Odak Noktasını inceleyin. REVIEWED olarak işaretlerken bir çözüm (FIXED, SAFE veya ACKNOWLEDGED) belirtmeniz gerekir.
hotspotKey- Güvenlik Odak Noktası anahtarı - Gerekli Stringstatus- Yeni durum - Gerekli Enum {"TO_REVIEW", "REVIEWED"}resolution- Durum REVIEWED olduğunda çözüm - Enum {"FIXED", "SAFE", "ACKNOWLEDGED"}comment- İsteğe bağlı inceleme yorumu - String
Diller
- list_languages - Bu SonarQube örneğinde desteklenen tüm programlama dillerini listeleyin.
q- Dil anahtarları/adlarıyla eşleştirilecek isteğe bağlı desen - String
Ölçümler
- get_component_measures - Bir bileşen (proje, dizin, dosya) için SonarQube ölçümlerini alın.
projectKey- Proje anahtarı -SONARQUBE_PROJECT_KEYyapılandırılmadığında gerekli Stringbranch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları bulmak içinlist_brancheskullanın - StringmetricKeys- Alınacak isteğe bağlı ölçüm anahtarları (ör. ncloc, complexity, violations, coverage) - String[]pullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları bulmak içinlist_pull_requestskullanın - String
Metrikler
- search_metrics - SonarQube metriklerini arayın.
pageIndex- İsteğe bağlı 1 tabanlı sayfa dizini (varsayılan: 1) - IntegerpageSize- İsteğe bağlı sayfa boyutu. 0'dan büyük ve 500'e eşit veya küçük olmalıdır (varsayılan: 100) - Integer
Portföyler
-
list_portfolios - SonarQube'da bulunan kurumsal portföyleri filtreleme ve sayfalama seçenekleriyle listeleyin.
SonarQube Server için:
q- Portföyleri ada veya anahtara göre filtrelemek için isteğe bağlı arama sorgusu - Stringfavorite- True ise yalnızca favori portföyleri döndürür - BooleanpageIndex- İsteğe bağlı 1 tabanlı sayfa numarası (varsayılan: 1) - IntegerpageSize- İsteğe bağlı sayfa boyutu, en fazla 500 (varsayılan: 100) - Integer
SonarQube Cloud için:
enterpriseId- Enterprise uuid. Yalnızca 'favorite' parametresi true değeriyle sağlanmışsa atlanabilir - Stringq- Portföyleri ada göre filtrelemek için isteğe bağlı arama sorgusu - Stringfavorite- 'enterpriseId' parametresi atlanmışsa true olması gerekir. True ise yalnızca oturum açmış kullanıcının favorilerine eklediği portföyleri döndürür. 'draft' true olduğunda true olamaz - Booleandraft- True ise yalnızca oturum açmış kullanıcı tarafından oluşturulan taslakları döndürür. 'favorite' true olduğunda true olamaz - BooleanpageIndex- Getirilecek sayfanın isteğe bağlı dizini (varsayılan: 1) - IntegerpageSize- Getirilecek sayfanın isteğe bağlı boyutu (varsayılan: 50) - Integer
Projeler
-
list_organizations - Kullanıcının üyesi olduğu SonarQube Cloud kuruluşlarını anahtarlar, adlar, kimlikler ve UUID'ler dahil listeleyin. Döndürülen bir anahtarı sonraki araçlarda
organizationolarak kullanın. -
search_my_sonarqube_projects - SonarQube projelerini bulun. Yanıt sayfalandırılır.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca CloudpageIndex- İsteğe bağlı 1 tabanlı sayfa dizini (varsayılan: 1) - IntegerpageSize- İsteğe bağlı sayfa boyutu. 0'dan büyük ve 500'e eşit veya küçük olmalıdır (varsayılan: 500) - Integerq- Projeleri ada (kısmi eşleşme) veya anahtara (tam eşleşme) göre filtrelemek için isteğe bağlı arama sorgusu - String
-
list_branches - Bir proje için analiz edilmiş dalları listeleyin.
- SonarQube Cloud:
typevemergeBranchalanlarıyla uzun ömürlü (LONG) ve kısa ömürlü (SHORT) dalları döndürür. İsteğe bağlıbranchTypesfiltresi:ALL(varsayılan),LONGveyaSHORT. - SonarQube Server: analiz edilmiş tüm dalları (ad, kalite kapısı, analiz tarihi) döndürür.
type,mergeBranchveyabranchTypesfiltresi yoktur. - Döndürülen dal adlarını diğer araçlarda
branchparametresi olarak kullanın. Çekme isteği analizi için bunun yerinelist_pull_requestskullanın. projectKey- Proje anahtarı (ör. my_project) - Gerekli String (SONARQUBE_PROJECT_KEYtanımlandığında yoksayılır)branchTypes- (Yalnızca SonarQube Cloud) İsteğe bağlı filtre:ALL(varsayılan),LONGveyaSHORT- Enum {"ALL", "LONG", "SHORT"}
- SonarQube Cloud:
-
list_pull_requests - Bir proje için tüm çekme isteklerini listeleyin. PR dekorasyonlu analiz (kapsam, sorunlar, kalite kapısı) için çekme isteklerini keşfetmek üzere bu aracı kullanın. Diğer araçlarla kullanılabilecek çekme isteği anahtarını/kimliğini döndürür. Çekme isteği içermeyen dal tabanlı analiz için bunun yerine
list_brancheskullanın.projectKey- Proje anahtarı (ör. my_project) - Gerekli String (SONARQUBE_PROJECT_KEYtanımlandığında yoksayılır)
Kalite Kapıları
-
get_project_quality_gate_status - SonarQube projesinin Kalite Kapısı Durumunu alın.
analysisId- İsteğe bağlı analiz kimliği - Stringbranch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları keşfetmek içinlist_brancheskullanın - StringprojectId- İsteğe bağlı proje kimliği - StringprojectKey- İsteğe bağlı proje anahtarı - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları keşfetmek içinlist_pull_requestskullanın - String
-
list_quality_gates - SonarQube'umdaki tüm kalite kapılarını listeleyin.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca Cloud
Kurallar
- show_rule - Bir SonarQube kuralı hakkında ayrıntılı bilgi gösterir.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca Cloudkey- Kural anahtarı - Gerekli String
Kod Tekrarları
-
search_duplicated_files - Bir SonarQube projesinde kod tekrarı bulunan dosyaları arayın. Varsayılan olarak tüm sayfalardaki yinelenen dosyaları otomatik olarak getirir (en fazla 10.000 dosya). Yalnızca kod tekrarı bulunan dosyaları döndürür.
projectKey- Proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlandığında yoksayılır)branch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları keşfetmek içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları keşfetmek içinlist_pull_requestskullanın - StringpageSize- Elle sayfalandırma için sayfa başına isteğe bağlı sonuç sayısı (en fazla: 500). Belirtilmezse yinelenen tüm dosyalar otomatik olarak getirilir - IntegerpageIndex- Elle sayfalandırma için isteğe bağlı sayfa numarası (1'den başlar). Belirtilmezse yinelenen tüm dosyalar otomatik olarak getirilir - Integer
-
get_duplications - Bir dosyanın kod tekrarlarını alın. Dosyanın projesinde Browse izni gerekir.
key- Dosya anahtarı - Gerekli Stringbranch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları keşfetmek içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları keşfetmek içinlist_pull_requestskullanın - String
Kaynaklar
-
get_raw_source - SonarQube'dan kaynak kodunu ham metin olarak alın. Dosyada 'See Source Code' izni gerekir.
key- Dosya anahtarı - Gerekli Stringbranch- Dal tabanlı analiz için isteğe bağlı dal adı. Geçerli adları keşfetmek içinlist_brancheskullanın - StringpullRequest- İsteğe bağlı çekme isteği anahtarı/kimliği. Geçerli anahtarları keşfetmek içinlist_pull_requestskullanın - String
-
get_scm_info - SonarQube kaynak dosyalarının SCM bilgilerini alın. Projenin dosyasında See Source Code izni gerekir.
key- Dosya anahtarı - Gerekli Stringcommits_by_line- Değer false ise satırları SCM commit'ine göre gruplandırır, aksi hâlde her satır için commit'leri gösterir - Stringfrom- Döndürülecek ilk satır. 1'den başlar - Numberto- Döndürülecek son satır (dahil) - Number
Sistem
Not: Sistem araçları yalnızca SonarQube Server'a bağlanıldığında kullanılabilir.
-
get_system_health - SonarQube Server örneğinin sağlık durumunu alın. GREEN (tamamen çalışır durumda), YELLOW (kullanılabilir ancak ilgilenilmesi gerekiyor) veya RED (çalışmıyor) döndürür.
-
get_system_info - JVM durumu, veritabanı, arama dizinleri ve ayarlar dahil SonarQube Server sistem yapılandırması hakkında ayrıntılı bilgi alın. 'Administer' izinleri gerekir.
-
get_system_logs - SonarQube Server sistem günlüklerini düz metin biçiminde alın. Sistem yönetimi izni gerekir.
name- Alınacak günlüklerin isteğe bağlı adı. Olası değerler: access, app, ce, deprecation, es, web. Varsayılan: app - String
-
ping_system - Çalışır durumda olup olmadığını kontrol etmek için SonarQube Server sistemine ping gönderin. Düz metin olarak 'pong' döndürür.
-
get_system_status - SonarQube Server hakkında durum bilgilerini alın. Durumu (STARTING, UP, DOWN, RESTARTING, DB_MIGRATION_NEEDED, DB_MIGRATION_RUNNING), sürümü ve kimliği döndürür.
Web kancaları
-
create_webhook - SonarQube kuruluşu veya projesi için yeni bir web kancası oluşturun. Belirtilen projede 'Administer' izni veya genel 'Administer' izni gerekir.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca Cloudname- Web kancası adı - Gerekli Stringurl- Web kancası URL'si - Gerekli StringprojectKey- Projeye özel web kancası için isteğe bağlı proje anahtarı - Stringsecret- Web kancası yükünü güvenceye almak için isteğe bağlı web kancası gizli anahtarı - String
-
list_webhooks - SonarQube kuruluşu veya projesi için tüm web kancalarını listeleyin. Belirtilen projede 'Administer' izni veya genel 'Administer' izni gerekir.
organization- SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca CloudprojectKey- Projeye özel web kancalarını listelemek için isteğe bağlı proje anahtarı - String
Bağlam Zenginleştirme
Mimari Araçları
-
search_by_signature_patterns - Regex kalıpları kullanarak bildirim imzalarına göre kod öğelerini (sınıflar, metotlar, arayüzler, ...) bulun.
include_code_regex_list- İmzalarla eşleştirilecek regex kalıplarının listesi - Gerekli String[]exclude_code_regex_list- Sonuçlardan hariç tutulacak regex kalıplarının listesi - String[]include_glob- Dosya filtresi glob kalıbı (ör.*.java) - Stringexclude_glob- Dosya hariç tutma glob kalıbı - Stringfields- Yanıta dahil edilecek alanların virgülle ayrılmış listesi - Stringlimit- Döndürülecek en fazla sonuç sayısı (varsayılan: 10) - Integerregex_lists_operator- Birden fazla kalıbın nasıl birleştirileceği:OR(varsayılan) veyaAND- String
-
search_by_body_patterns - Regex kalıpları kullanarak uygulama gövdelerine göre kod öğelerini bulun. API'lerin veya kalıpların gerçekte nerede kullanıldığını bulmak için kullanışlıdır.
include_code_regex_list- Kod gövdelerinde eşleştirilecek regex kalıplarının listesi - Gerekli String[]exclude_code_regex_list- Sonuçlardan hariç tutulacak regex kalıplarının listesi - String[]include_glob- Dosya filtresi glob kalıbı - Stringexclude_glob- Dosya hariç tutma glob kalıbı - Stringfields- Yanıta dahil edilecek alanların virgülle ayrılmış listesi - Stringlimit- Döndürülecek en fazla sonuç sayısı (varsayılan: 10) - Integerregex_lists_operator- Birden fazla kalıbın nasıl birleştirileceği:OR(varsayılan) veyaAND- String
-
get_upstream_call_flow - Belirli bir işlevi hangi işlevlerin çağırdığını izleyin. Tüm çağıranları ve giriş noktalarını bulmak, ayrıca imza değişikliğinin neleri bozacağını anlamak için kullanışlıdır.
fqn- İşlevin tam nitelikli adı - Gerekli Stringdepth- Çağrı zinciri derinliği (0=yalnızca işlev, 1=doğrudan çağıranlar vb.) - Integerfields- Yanıta dahil edilecek alanların virgülle ayrılmış listesi - String
-
get_downstream_call_flow - Belirli bir işlevin hangi işlevleri çağırdığını izleyin. Etki analizinde ve yürütme akışını anlamada kullanışlıdır.
fqn- İşlevin tam nitelikli adı - Gerekli Stringdepth- Çağrı zinciri derinliği (0=yalnızca işlev, 1=doğrudan çağrılanlar vb.) - Integerfields- Yanıta dahil edilecek alanların virgülle ayrılmış listesi - String
-
get_source_code - Tam nitelikli adına göre bir kod öğesinin eksiksiz kaynak kodunu (imza ve gövde) alın.
fqn- Öğenin tam nitelikli adı - Gerekli Stringfields- Yanıta dahil edilecek alanların virgülle ayrılmış listesi - String
-
get_type_hierarchy - Sınıf benzeri bir yapının (sınıf, arayüz, enum, record, exception, struct) tam kalıtım hiyerarşisini alın. Kalıtım ağaçlarını anlamak ve yeniden düzenleme yapmak için gereklidir.
fqn- Sınıf benzeri yapının tam nitelikli adı - Gerekli Stringfields- Yanıta dahil edilecek alanların virgülle ayrılmış listesi - String
-
get_references - Bir sınıf veya modül için doğrudan gelen ve giden kod referanslarını alın. Yalnızca doğrudan (geçişli olmayan) referansları döndürür.
fqn- Sınıfın veya modülün tam nitelikli adı - Gerekli Stringfields- Yanıta dahil edilecek alanların virgülle ayrılmış listesi - String
-
get_current_architecture - Yol öneki ve derinliğe göre filtrelenmiş hiyerarşik bir mimari grafiği alın. Modül yapısını ve üst düzey bağımlılıkları keşfetmek için kullanışlıdır.
depth- Hiyerarşi derinliği (0=yalnızca kök, 1=kök + alt öğeler vb.) - Gerekli Integerpath_prefix- Düğümleri filtrelemek için isteğe bağlı yol öneki (ör.com.example.service) - Stringecosystem- Filtrelenecek isteğe bağlı ekosistem (java,cs,py,js,ts) - String
-
get_intended_architecture - Hangi modüllerin diğer modüllere bağımlı olabileceğini belirten, kullanıcı tanımlı mimari kısıtlamaları alın.
Kılavuz Araçları
- get_guidelines - SonarQube proje sorunlarına, katalog kategorilerine veya her ikisinin birleşimine dayalı kodlama kılavuzlarını alın.
mode- Kılavuzları alma modu:project_based,category_basedveyacombined- Gerekli Stringcategories- Kategori adlarının listesi (category_basedvecombinedmodları için gereklidir) - String[]languages- SonarQube depo anahtarı biçimindeki hedef dillerin listesi (categoriessağlandığında gereklidir) - String[]file_paths- Kılavuzları filtrelemek için isteğe bağlı dosya yolları listesi - String[]
Üçüncü Taraf Bağımlılık Araçları
- check_dependency - Üçüncü taraf bir bağımlılığı eklemeden veya güncellemeden önce güvenlik açıkları, tedarik zinciri kötü amaçlı yazılımları ve lisans uyumluluğu açısından denetleyin.
purl- Sürümü içeren Paket URL'si (purl), purl-spec uyarınca. Biçim:pkg:<type>/<namespace>/<name>@<version>(ör.pkg:npm/lodash@4.17.21,pkg:maven/org.apache.logging.log4j/log4j-core@2.14.1,pkg:pypi/django@3.2.0) - Gerekli String
Bağlam Zenginleştirme Ortam Değişkenleri
| Değişken | Açıklama | Gerekli | Varsayılan |
|---|---|---|---|
SONARQUBE_URL | SonarQube Cloud URL'si | Evet | https://sonarcloud.io |
SONARQUBE_TOKEN | Kimlik doğrulama belirteci | Evet | Yok |
SONARQUBE_ORG | Bulut kuruluşu; başlangıç yapılandırmasından veya benzersiz algılamayla proxy'ye aktarılır | Hayır | Yok |
SONARQUBE_PROJECT_KEY | SonarQube Cloud'daki proje anahtarı | Evet | Yok |
SONAR_SQ_BRANCH | Açık SonarQube dal geçersiz kılması * | Hayır | Yok |
SONARQUBE_DEBUG_ENABLED | Hata ayıklama günlük kaydını etkinleştir (sorun giderme için) | Hayır | False |
SONAR_LOG_LEVEL | Günlük ayrıntı düzeyi (TRACE, DEBUG, INFO, WARNING, ERROR) | Hayır | INFO |
- Git kullanılmadığında veya Git dal adı SonarQube'daki dal adıyla eşleşmediğinde sağlanmalıdır.
Projeye Özel Yapılandırma (Önerilen)
Önce, projeniz için geçerli bir Kişisel Erişim Belirteci (PAT) içeren SONARQUBE_TOKEN ortam değişkenini dışa aktarın.
# macOS/Linux (Bash/Zsh)
export SONARQUBE_TOKEN="{<YourUserToken>}"
Ardından, Bağlam Zenginleştirme sunucusunun kaynak dosyalarınıza doğrudan erişebilmesi için proje çalışma alanını bağlayın:
{
"mcpServers": {
"sonarqube-mcp-server": {
"command": "docker",
"args": [
"run", "-i", "--rm", "--pull=always",
"-e", "SONARQUBE_URL",
"-e", "SONARQUBE_TOKEN",
"-e", "SONARQUBE_ORG",
"-e", "SONARQUBE_PROJECT_KEY",
"-e", "SONARQUBE_TOOLSETS",
"-v", "/ABSOLUTE/PATH/TO/YOUR/PROJECT:/app/mcp-workspace:rw",
"sonarsource/sonarqube-mcp"
],
"env": {
"SONARQUBE_URL": "https://sonarcloud.io",
"SONARQUBE_ORG": "<YourOrganizationKey>",
"SONARQUBE_PROJECT_KEY": "<YourProjectKey>",
"SONARQUBE_TOOLSETS": "cag"
}
}
}
}
Önemli: Proje kapsamlı bir yapılandırmada SONARQUBE_TOKEN öğesini env bloğuna koymayın. Bunu bir ortam değişkeni olarak dışa aktarın (export SONARQUBE_TOKEN=...). Docker, bunu -e SONARQUBE_TOKEN aracılığıyla kapsayıcıya aktarır.
Agentic Readiness
Not: Agentic Readiness araçları yalnızca SonarQube Cloud'da kullanılabilir ve kuruluşunuz için özelliğin etkinleştirilmesini gerektirir.
Özellik bayrağı, stdio modunda başlangıçta denetlenir. HTTP/HTTPS üzerinden araçları etkinleştirmek için sunucunun SONARQUBE_TOOLSETS öğesine agentic-readiness ekleyin.
-
start_agentic_readiness_assessment - Bir proje için agentic readiness değerlendirmesi başlatın.
PENDINGdurumuyla ve birassessmentIdile hemen yanıt verir. Sonuçları sorgulamak içinget_agentic_readiness_assessmentkullanın.projectKey- Proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)branch- Değerlendirilecek dal. Projenin varsayılan dalını kullanmak için belirtmeyin - String
-
get_agentic_readiness_assessment - Bir değerlendirmenin sonucunu alın. Durum
COMPLETED,FAILEDveyaINTERRUPTEDolana kadar aynıassessmentIdile yeniden çağırın. Tamamlandığında genel düzeyi ve önerilen eylemler ile kanıtları içeren, her sütuna göre ayrıntılı dökümü döndürür.assessmentId-start_agentic_readiness_assessmenttarafından döndürülen değerlendirme kimliği - Gerekli String
-
list_agentic_readiness_assessments - Bir projenin tüm değerlendirmelerini en yeniden en eskiye doğru listeleyin. Sütunların tamamına göre ayrıntılı sonuçlar için
get_agentic_readiness_assessmentkullanın.projectKey- Değerlendirmelerin listeleneceği proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)branch- Değerlendirmeleri dal adına göre filtreleyin. Tüm dallardaki değerlendirmeleri listelemek için belirtmeyin - StringpageIndex- 1 tabanlı sayfa dizini (varsayılan: 1) - NumberpageSize- Sayfa başına öğe sayısı, en fazla 100 (varsayılan: 50) - Number
Mimari
Not: Bu araçları stdio veya HTTP/HTTPS modunda SONARQUBE_TOOLSETS=architecture ile etkinleştirin. SonarQube Cloud için Team veya Enterprise planı gerekir. SonarQube Server için 2026.6 veya üzeri sürüm ve Developer sürümü ya da üzeri gerekir; araçlar eski sürümlerde veya Community Build'de kullanılamaz. Mimari iş akışları ve kurtarma bölümüne bakın.
-
architecture_get - Geçerli bağımlılıkları, amaçlanan mimariyi, proje yönergelerini veya bulguları (sapmalar, kusurlar ve kod kokuları) okuyun.
target-current,intended,directivesveyafindings; kullanılabilirlik MCP ve Server derlemesine bağlıdır - Gerekli EnumprojectKey- Proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)organization- Yapılandırılmamışsa SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca Cloudcomponent- Tam geçerli düğüm anahtarı veya amaçlanan grup yolu; belirtilmezse en üst düzey - Stringdepth- Yalnızca geçerli/amaçlanan: başlangıç düzeyinin altındaki düzeyler; geçerli için varsayılan 1, amaçlanan için tümü - Numberlanguage- Yalnızca geçerli/amaçlanan/bulgular:java,cs,js,tsveyapy- EnumdirectiveId- UUID'ye göre açıklama dahil tam yönerge; sayfalama yerine kullanın - Stringcategory/type- Yalnızca bulgular: sapmaları, kusurları veya kod kokularını bildirilen türlerine göre filtreleyin - EnumpageIndex- Yönergeler/Bulgular: 1 tabanlı sayfa dizini (varsayılan: 1) - NumberpageSize- Yönergeler: özetler, varsayılan/en fazla 50. Bulgular: varsayılan 50, en fazla 1000; 0 yalnızca sayım yapar - Number
-
architecture_set - Amaçlanan mimarinin tamamını değiştirin veya proje yönergeleri oluşturun, güncelleyin ve silin. Yazma işlemlerinin etkin olduğu desteklenen Cloud ve Server derlemelerinde kullanılabilir.
target-intendedveyadirectives- Gerekli EnumprojectKey- Proje anahtarı - Gerekli String (SONARQUBE_PROJECT_KEYtanımlıysa yok sayılır)organization- Yapılandırılmamışsa SonarQube Cloud kuruluş anahtarı - İsteğe bağlı String, yalnızca Cloudmodel- JSON dizesi: amaçlanan mimarinin tam dışa aktarımı veyamodelsdizisi (içeriği çıkarılan öğeler kaldırılır) ya dacreate,updatevedeletedizilerini içeren yönerge değişiklikleri - Gerekli StringdryRun- Önizleme içintrue, uygulamak içinfalse- Gerekli Booleanrevision- Yalnızca amaçlanan mimari:architecture_getöğesinden alınan revizyon; varsayılan olarak tam dışa aktarımın revizyonu kullanılır. Temizleme uygulanırken gereklidir - String
Örnek İstemler
SonarQube MCP Server'ı kurduktan sonra, yaygın gerçek dünya senaryolarına yönelik bazı örnek istemler aşağıda verilmiştir:
Başarısız Kalite Kapısını Düzeltme
My quality gate is failing for my project. Can you help me understand why and fix the most critical issues?
The quality gate on my feature branch is red. What do I need to fix to get it passing before I can merge to main?
Sürüm Öncesi ve Birleştirme Öncesi Denetimler
I'm about to merge my pull request <#247> for the <web-app> project. Can you check if there are any quality issues I should address first?
We're deploying to production tomorrow. Can you check the quality gate status and alert me to any critical issues in this branch?
Kod Kalitesini İyileştirme
I want to reduce technical debt in my project. What are the top issues I should prioritize?
Our code coverage dropped below 70%. Can you identify which files have the lowest coverage and help me improve it?
Sorunları Anlama ve Düzeltme
I have 15 new code smells in my latest commit. Can you explain what they are and help me fix them?
SonarQube flagged a critical security vulnerability in <AuthController.java>. What's the issue and how do I fix it?
Güvenlik ve Bağımlılık Yönetimi
We need to pass a security audit. Can you check all our projects for security vulnerabilities and create a prioritized list of what needs to be fixed?
Are there any known vulnerabilities in our dependencies? Check this project for dependency risks.
Kod İncelemesine Yardım
I just wrote this authentication function. Can you analyze it for security issues and code quality problems before I commit?
Review the changes in <src/database/migrations> for any potential bugs or security issues.
Proje Sağlığını İzleme
Give me a health report for my project: quality gate status, number of bugs, Security Hotspots, and code coverage.
Compare code quality between our main branch and the develop branch. Are we introducing new issues?
Ekip İş Birliği
What are the most common rule violations across all our projects? We might need to update our coding standards.
Show me all the issues that were marked as false positives in the last month. Are we seeing patterns that suggest our rules need adjustment?
Derleme
sonarsource/sonarqube-mcp kapsayıcı imajını tercih edin.
Sunucuyu Docker olmadan bağımsız bir JAR olarak çalıştırmak için önceden derlenmiş bir sürümü SonarSource ikili dosyalar deposundan indirin. Yayımlanan her sürüm burada sonarqube-mcp-server-<version>.jar olarak yayımlanır (örneğin, sonarqube-mcp-server-1.19.0.2785.jar).
JAR'dan çalıştırma
İstediğiniz sürümün JAR dosyasını ikili dosyalar deposundan indirin, ardından MCP istemcinizi Java 21 veya üzeriyle çalıştıracak şekilde yapılandırın:
- SonarQube Cloud'a bağlanmak için:
{
"sonarqube": {
"command": "java",
"args": [
"-jar",
"<path_to_sonarqube_mcp_server_jar>"
],
"env": {
"STORAGE_PATH": "<path_to_your_mcp_storage>",
"SONARQUBE_TOKEN": "<token>",
"SONARQUBE_ORG": "<org>"
}
}
}
- SonarQube Server'a bağlanmak için:
{
"sonarqube": {
"command": "java",
"args": [
"-jar",
"<path_to_sonarqube_mcp_server_jar>"
],
"env": {
"STORAGE_PATH": "<path_to_your_mcp_storage>",
"SONARQUBE_TOKEN": "<token>",
"SONARQUBE_URL": "<url>"
}
}
}
Kaynak koddan derleme
SonarQube MCP Server'ı derlemek için Java Development Kit (JDK) 21 veya üzeri gerekir.
Projeyi temizleyip uygulamayı derlemek için aşağıdaki Gradle komutunu çalıştırın:
./gradlew clean build -x test
JAR dosyası build/libs/ konumunda oluşturulur.
Bağımlılıkları ekledikten veya güncelledikten sonra kilit dosyalarını yeniden oluşturun:
./gradlew :dependencies --write-locks
./gradlew :its:dependencies --write-locks
Yukarıdaki JAR'dan çalıştırma yapılandırmasını kullanın ve <path_to_sonarqube_mcp_server_jar> öğesini build/libs/ konumundaki JAR dosyasını gösterecek şekilde ayarlayın.
Sorun Giderme
Uygulama günlükleri varsayılan olarak STORAGE_PATH/logs/mcp.log dosyasına yazılır. Dosyaya günlük kaydını tamamen devre dışı bırakmak için SONARQUBE_LOG_TO_FILE_DISABLED=true ayarını yapın.
Yaygın Sorunlar
"SonarQube server version is not supported"
MCP sunucusu, başlangıç sırasında bağlı SonarQube Server sürümünü denetler. Örnek 2025.1 (SQS) veya 25.1 (SQCB) sürümünden eskiyse başlangıç şu hatayla başarısız olur:
SonarQube server version is not supported, minimal version is SQS 2025.1 or SQCB 25.1
Çözüm: SonarQube Server'ı desteklenen bir sürüme yükseltin. Bu denetim yalnızca SonarQube Server'a bağlanırken (SONARQUBE_URL, SONARQUBE_ORG olmadan) uygulanır; SonarQube Cloud için uygulanmaz.
"Feature is not working" veya "Missing tools/functionality"
Eski bir Docker imajı kullanıyor olabilirsiniz. Docker imajları yerel olarak önbelleğe alır, bu nedenle güncellemeleri otomatik olarak almazsınız.
Çözüm: En son sürüme güncelleyin:
docker pull sonarsource/sonarqube-mcp
En son imajı çektikten sonra güncellenmiş sürümü kullanmak için MCP istemcinizi yeniden başlatın.
İsteğe bağlı olarak, en son sürümü her zaman denetleyip çekmek için docker run komutunuza --pull=always bayrağını ekleyin:
docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_ORG sonarsource/sonarqube-mcp
"I want to pin to a specific version"
Kullanılabilir etiketlere sonarsource/sonarqube-mcp adresinden göz atın ve istediğiniz sürümü belirtin:
docker pull sonarsource/sonarqube-mcp:1.19.0.2785
docker run --init -i --rm \
-e SONARQUBE_TOKEN -e SONARQUBE_ORG \
sonarsource/sonarqube-mcp:1.19.0.2785
MCP istemci yapılandırmanızda sonarsource/sonarqube-mcp yerine sonarsource/sonarqube-mcp:<version> kullanın ve Docker'ın imajı sessizce yükseltmemesi için --pull=always öğesini kaldırın.
Veri ve telemetri
Bu sunucu anonim kullanım verilerini toplar ve ürünü iyileştirmeye yardımcı olması için SonarSource'a gönderir. Kaynak kodu veya IP adresi toplanmaz ve SonarSource verileri başka hiç kimseyle paylaşmaz. Telemetri toplama aşağıdaki sistem özelliği veya ortam değişkeniyle devre dışı bırakılabilir: TELEMETRY_DISABLED=true. Toplanan verilere ilişkin bir örnek görmek için buraya tıklayın.
Lisans
Telif hakkı 2025 SonarSource.
SONAR Source-Available License v1.0 kapsamında lisanslanmıştır. SonarQube MCP Server'ı bu belgelere uygun şekilde kullanmak Rekabet Dışı Amaç kapsamındadır ve bu nedenle SSAL kapsamında izin verilir.
MCP aracılığıyla SonarQube kullanımınız, Sonuç Verilerinin yalnızca kurum içi yazılım geliştirme amaçlarınız için kullanılması da dahil olmak üzere, SonarQube Cloud Hizmet Koşulları veya SonarQube Server Hüküm ve Koşulları tarafından yönetilir.