mobile menu
Desktop (4)
Yapay Zekâ Destekli Kod İyileştirme: SonarQube ve MCP

Yazılım geliştirme süreçlerinde kod kalitesi, bir projenin sürdürülebilirliği, güvenliği ve performansı açısından kritik öneme sahiptir. Bu hedefe ulaşmak için kullandığımız güçlü araçlardan biri de statik kod analizi platformu olan SonarQube’dur. 

Bu yazıda, kod kalitesi yönetimini bir adım öteye taşıyan bir entegrasyonu ele alacağız. Özellikle yapay zekâ uygulamalarında yeni bir standart haline gelen Model Context Protocol (MCP) ve bu protokolü kullanarak yapay zekâ modelleri ile SonarQube’u entegre eden açık kaynak proje sonarqube-mcp-server üzerinde duracağız. 

Kod Kalitesi ve SonarQube 

SonarQube, yazılım geliştirme yaşam döngüsüne (CI/CD) entegre edilen, kod tabanını tanımlı kural setlerine göre sürekli analiz eden açık kaynaklı bir platformdur. (1) Hataları (bugs), güvenlik açıklarını (vulnerabilities) ve okunabilirliği düşüren kod kokularını (code smells) proaktif biçimde tespit eder.  

Belirlediğimiz kalite eşiklerinden (Quality Gates) geçemeyen kodların ana kod tabanına dahil edilmesini engelleyebilir. Bu sayede ekiplerin daha temiz, güvenli ve bakımı kolay kod yazmasına olanak tanır. 

Model Context Protocol (MCP) Nedir? 

Model Context Protocol (MCP), yapay zekâ modellerine dış uygulamalar ve güncel veri kaynaklarıyla doğrudan iletişim kurma yeteneği kazandıran açık bir iletişim standardıdır.   

Tıpkı USB-C’nin farklı cihazları tek bir standartla birbirine bağlaması gibi, MCP de farklı yapay zekâ modellerini çeşitli veri kaynaklarına ve uygulamalara (bizim örneğimizde SonarQube) bağlamak için standart bir yol sunar. (2)  MCP, yapay zekâ modellerinin eğitim verileriyle sınırlı kalma ve güncel sistemlerden izole olma sorununu çözer. Bu standart, modellere güvenilir, yapılandırılmış ve gerçek zamanlı bilgiye erişim sağlayarak bağlama özel, isabetli çözümler üretmelerini sağlar. 

Yapay zekâ platformları MCP Client kullanarak hızla bu standardı sistemlerine yerleştirdiler. (3) Bu platformlara entegre olmak için, farklı dillerde MCP Server özelliklerini barındıran uygulamalar geliştirilebiliyor. LLM’ler, küçük bir ayar ile entegre ettiğimiz MCP sunucusundaki fonksiyonları keşfediyor ve ihtiyacı olduğunda onları kullanıyor. 

C:\Users\bcankaya\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\CF7238B.tmp 

Şekil 1 - MCP öncesi ve sonrası hakkında basitleştirilmiş diyagram 

Twilio’nun MCP kullanımının verimini ölçmek için tasarladığı ölçümlere göre, görev sürelerinde %20’ye varan hızlanma, API çağrılarında %19 azalma, görev başarı oranında ise %8 artış elde edilmiştir. Buna karşın işlem başı maliyetin yaklaşık %27 arttığı gözlemlenmiştir. (4) Bu veriler, MCP’nin verimlilik sağlarken bazı kaynak tüketimi artışlarını da beraberinde getirebileceğini gösteriyor. 

MCP protokolü sürekli gelişiyor ve her geçen gün yeni özellikler ekleniyor. Claude Desktop, VS Code Copilot Chat gibi platformlar bu yenilikleri hızla entegre ediyor. Bu yazıda inceleyeceğimiz MCP Server örneğinde ise sadece araç çağırma (Tools) özelliğini kullanacağız. Güncel MCP özelliklerine ve onları destekleyen istemcilere resmi sitesi üzerinden erişebilirsiniz. (2) 

SonarQube MCP Server 

sonarqube-mcp-server, LLM’lerin MCP protokolü üzerinden SonarQube verilerine erişip bu verilerle etkileşime geçmesini sağlayan özel bir sunucudur (5). Bilgisayarımızda kolaylıkla kurup kullanabiliyoruz. 

Proje henüz erken geliştirme aşamasında ve sürekli gelişiyor. Şu anki haliyle bile LLM’lerin SonarQube projelerini analiz etmesini ve işlem yapmasını sağlayan zengin bir araç seti sunar. 

Kod Analizi ve Hata Yönetimi: 

  • analyze_code_snippet: Kod parçası veya dosya analiz edilerek hata tespiti yapılabilir. (PLUGINS_PATH ayarı gereklidir.) 

  • search_sonar_issues_in_projects: Belirli bir projedeki ya da Pull Request'teki hataları listeler. 

  • change_sonar_issue_status: Hataları "kabul edildi" veya "hatalı pozitif" olarak işaretler. 

Proje Sağlığı ve Metrikler: 

  • get_component_measures: LLM, projenizin sağlık durumunu anlamak için kritik metrikleri sorgulayabilir: 

  • Kod satırı (nloc) 

  • Karmaşıklık (complexity) 

  • Hata sayısı (violations) 

  • Test kapsamı (coverage) 

Kalite Kontrol: 

  • get_quality_gate_status_for_project: Projenin kalite kapısından (Quality Gate) geçip geçmediğini kontrol eder. 

  • list_rule_repositories / show_rule: Tanımlı kuralları listeler ve detaylarını gösterir. 

Genel Yetenekler: 

  • search_my_sonarqube_cloud_projects: Tüm projeleri listeler. 

  • list_languages: Desteklenen dillerin listesini verir. 

  • search_metrics: Sorgulanabilir tüm metrik türlerini keşfeder. 

Bu komutlar sayesinde LLM, projeyi anlar ve düzeltme yaparken kendi tahminlerine dayanmak yerine doğrudan SonarQube verilerine başvurur. Sonuç olarak ortaya çıkan öneriler hem daha hedef odaklı hem de tutarlıdır. 

Kurulum ve İlk Sorgu 

Sistemi kullanmaya başlamak için sonarqube-mcp-server’ı birkaç temel bilgiyle konfigüre etmek yeterlidir. Güncel kurulum talimatları için projenin dökümanını inceleyebilirsiniz. 

Kurulumu tamamladıktan sonra, MCP protokolünü destekleyen bir istemci üzerinden (örneğin VS Code Copilot Chat veya Cursor) LLM ile konuşmaya başlayabilirsiniz. Hızlı bir başlangıç için şu prompt’u verebilirsiniz: 

SonarQube’deki mevcut projeleri bul.  

Şu an açık olan projemin hatalarını listele.  

(Severity değerleri önemliden önemsize şu şekilde: BLOCKER, CRITICAL, MAJOR, MINOR, INFO)  

Önemli olan ilk 10 hatayı benim için listele ve ardından çözmeye başla. 

C:\Users\bcankaya\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\8FA863F.tmp 

Şekil 2 - VS Code Copilot Agent ile yapılış örnek diyalog 

Sonuç  

MCP, yapay zekanın gerçek sistemlerle bağlamsal veri alışverişi yapabilmesini ve eyleme geçebilmesini mümkün kılan önemli bir standart haline gelmiştir. SonarQube MCP Server ise bu protokolün yazılım kalitesi alanındaki etkili bir uygulamasıdır. 

Bu entegrasyon, kod hatalarının manuel düzeltilmesi yerine bağlama duyarlı yapay zekâ sayesinde otomatik düzeltilmesini sağlar. Sonuç olarak hem zamandan tasarruf edilir hem de kod kalitesinde tutarlılık artar. Geliştiriciler rutin hata düzeltme işlerinden kurtularak, daha karmaşık ve değeri yüksek görevlere odaklanabilir. 

Protokol, kullanım kolaylığı sayesinde hızla yaygınlaştı ve birçok entegrasyon yazıldı. Bu entegrasyonlarla birlikte yapay zekâ destekli geliştirme süreçlerinin daha da güçlenmesini bekleyebiliriz. 

Siz de bu teknolojileri kullanarak LLM’lere farklı entegrasyonlar ekleyebilir, rutin işlerinizi hızlandırabilir ve hatta otomatikleştirebilirsiniz. 

Kaynakça: 

Bekir Sıddık Çankaya
Ağustos 01 , 2025
Diğer Blog İçerikleri