SonarQube
आधिकारिकSonarQube सर्वर या क्लाउड के साथ सहज एकीकरण प्रदान करता है, और एजेंट संदर्भ में सीधे कोड स्निपेट का विश्लेषण सक्षम करता है
SonarQube MCP के साथ आप क्या कर सकते हैं?
- SonarQube Cloud या Server से कनेक्ट करें — अपने असिस्टेंट को SonarQube से जोड़ने के लिए
sonarsource/sonarqube-mcpकंटेनर को टोकन, org key या server URL के साथ कॉन्फ़िगर करें। - कोड स्निपेट का विश्लेषण करें — असिस्टेंट से किसी कोड स्निपेट या फ़ाइल का विश्लेषण करने को कहें। फ़ाइलों को सीधे डिस्क से पढ़ने के लिए workspace mount का उपयोग करें।
- समस्याएँ खोजें और प्रबंधित करें —
issuesटूलसेट के ज़रिए SonarQube की समस्याएँ खोजें और अपडेट करें। - सुरक्षा हॉटस्पॉट की समीक्षा करें —
security-hotspotsटूलसेट के ज़रिए Security Hotspots खोजें और उनकी समीक्षा करें। - प्रोजेक्ट और क्वालिटी गेट ब्राउज़ करें — प्रोजेक्ट कुंजियाँ, क्वालिटी गेट, नियम, माप और कवरेज डेटा देखें।
- टूलसेट सीमित करें और केवल-पढ़ने का मोड अपनाएँ — लोड होने वाले टूल नियंत्रित करने और लिखने की कार्रवाइयों को रोकने के लिए
SONARQUBE_TOOLSETSऔरSONARQUBE_READ_ONLYका उपयोग करें।
दस्तावेज़
SonarQube MCP Server
SonarQube MCP Server एक Model Context Protocol (MCP) सर्वर है, जो कोड की गुणवत्ता और सुरक्षा के लिए SonarQube Server या Cloud के साथ सहज एकीकरण सक्षम करता है। यह एजेंट के संदर्भ में सीधे कोड स्निपेट के विश्लेषण का भी समर्थन करता है।
त्वरित सेटअप से शुरुआत करें, या SonarQube उत्पाद परिवार के बारे में अधिक जानें।
त्वरित सेटअप
सुरक्षा के सर्वोत्तम तरीके
🔒 महत्वपूर्ण: आपका SonarQube टोकन एक संवेदनशील क्रेडेंशियल है। इन सुरक्षा तरीकों का पालन करें:
CLI कमांड का उपयोग करते समय:
- टोकन को कमांड-लाइन आर्ग्युमेंट में हार्डकोड करने से बचें – वे शेल हिस्ट्री में सहेजे जाते हैं
- एनवायरनमेंट वेरिएबल का उपयोग करें – कमांड चलाने से पहले टोकन को एनवायरनमेंट वेरिएबल में सेट करें
कॉन्फ़िगरेशन फ़ाइलों का उपयोग करते समय:
- टोकन को कभी भी वर्ज़न कंट्रोल में कमिट न करें
- जहाँ संभव हो, कॉन्फ़िगरेशन फ़ाइलों में एनवायरनमेंट वेरिएबल सब्स्टिट्यूशन का उपयोग करें
🚀 अपना कॉन्फ़िगरेशन जनरेट करें
शुरुआत करने का सबसे तेज़ तरीका SonarQube MCP Server Configuration Generator है – यह एक इंटरैक्टिव टूल है, जो आपके पसंदीदा AI एजेंट क्लाइंट के लिए उपयोग हेतु तैयार कॉन्फ़िगरेशन बनाता है।
मैन्युअल सेटअप
यदि आप स्वयं कॉन्फ़िगरेशन करना पसंद करते हैं, तो सबसे आसान तरीका sonarsource/sonarqube-mcp कंटेनर इमेज का उपयोग करना है। स्वचालित अपडेट के लिए sonarsource/sonarqube-mcp ( --pull=always के साथ) का उपयोग करें, या दोहराए जा सकने वाले डिप्लॉयमेंट के लिए किसी वर्ज़न टैग (उदाहरण के लिए, sonarsource/sonarqube-mcp:1.19.0.2785) को पिन करें। कुछ रिलीज़ को उस SonarQube Server वर्ज़न के साथ भी टैग किया जाता है जिसके अनुरूप वे हैं; इसका प्रारूप <SQS major>.<SQS minor>.<patch> है (उदाहरण के लिए, sonarsource/sonarqube-mcp:2026.5.0), जहाँ पैच नंबर उस SonarQube Server वर्ज़न को लक्षित करने वाली प्रत्येक MCP रिलीज़ के लिए बढ़ाया जाता है। यदि आप इसे स्थानीय रूप से बनाना चाहते हैं, तो नीचे पढ़ें।
ध्यान दें: नीचे दिए गए उदाहरणों में
dockerका उपयोग किया गया है, लेकिन कोई भी OCI-संगत कंटेनर रनटाइम काम करता है (उदाहरण के लिए, Podman, nerdctl)। बसdockerको अपने पसंदीदा टूल से बदलें।
Antigravity
SonarQube MCP Server, Antigravity MCP Store में उपलब्ध है। इन निर्देशों का पालन करें:
- Agent Side Panel खोलें
- ऊपर दाईं ओर तीन बिंदुओं (...) पर क्लिक करें और MCP Servers चुनें
SonarQubeखोजें और Install चुनें- आवश्यक SonarQube User टोकन दें। SonarQube Cloud के लिए अपनी organization key या SonarQube Server से कनेक्ट करने पर SonarQube URL भी दे सकते हैं।
SonarQube Cloud US के लिए, URL को https://sonarqube.us पर सेट करें।
वैकल्पिक रूप से, आप mcp_config.json के माध्यम से सर्वर को मैन्युअल रूप से कॉन्फ़िगर कर सकते हैं:
- SonarQube Cloud से कनेक्ट करने के लिए:
Agent Side Panel में, तीन बिंदुओं (...) पर क्लिक करें -> MCP Store -> Manage MCP Servers -> View raw config, और निम्नलिखित जोड़ें:
{
"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 के लिए, "SONARQUBE_URL": "https://sonarqube.us" को env सेक्शन में और "-e", "SONARQUBE_URL" को args ऐरे में मैन्युअल रूप से जोड़ें।
- SonarQube Server से कनेक्ट करने के लिए:
{
"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 से कनेक्ट करने के लिए:
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 के लिए, कमांड में --env SONARQUBE_URL=https://sonarqube.us जोड़ें।
- SonarQube Server से कनेक्ट करने के लिए:
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 पर कॉन्फ़िगरेशन फ़ाइल को मैन्युअल रूप से संपादित करें और निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
- SonarQube Cloud से कनेक्ट करने के लिए:
[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 के लिए, "SONARQUBE_URL" = "https://sonarqube.us" को env सेक्शन में और "-e", "SONARQUBE_URL" को args ऐरे में जोड़ें।
- SonarQube Server से कनेक्ट करने के लिए:
[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 से कनेक्ट करने के लिए:
SonarQube Cloud US के लिए, इंस्टॉलेशन के बाद अपने MCP कॉन्फ़िगरेशन के env सेक्शन में "SONARQUBE_URL": "https://sonarqube.us" को मैन्युअल रूप से जोड़ें।
- SonarQube Server से कनेक्ट करने के लिए:
Gemini CLI
ध्यान दें: Gemini CLI एक्सटेंशन अब sonarqube-agent-plugins रिपॉज़िटरी में स्थानांतरित हो गया है। आगे से कृपया इसे वहीं से इंस्टॉल करें।
आप निम्नलिखित कमांड का उपयोग करके हमारा MCP सर्वर एक्सटेंशन इंस्टॉल कर सकते हैं:
gemini extensions install https://github.com/SonarSource/sonarqube-agent-plugins
Gemini शुरू करने से पहले आपको आवश्यक एनवायरनमेंट वेरिएबल सेट करने होंगे:
आवश्यक एनवायरनमेंट वेरिएबल:
-
SonarQube Cloud के लिए:
SONARQUBE_TOKEN- आपका SonarQube Cloud टोकनSONARQUBE_ORG- आपकी organization keySONARQUBE_URL- (वैकल्पिक) SonarQube Cloud US के लिएhttps://sonarqube.usपर सेट करें
-
SonarQube Server के लिए:
SONARQUBE_TOKEN- आपका SonarQube Server USER टोकनSONARQUBE_URL- आपका SonarQube Server URL
इंस्टॉल होने के बाद, एक्सटेंशन <home>/.gemini/extensions/sonarqube/gemini-extension.json के अंतर्गत इंस्टॉल होगा।
GitHub Copilot CLI
Copilot CLI शुरू करने के बाद, SonarQube MCP Server जोड़ने के लिए निम्नलिखित कमांड चलाएँ:
/mcp add
आपको MCP सर्वर के बारे में अलग-अलग जानकारी देनी होगी। फ़ील्ड के बीच जाने के लिए tab का उपयोग कर सकते हैं।
- SonarQube Cloud से कनेक्ट करने के लिए:
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 के लिए, Arguments में -e, SONARQUBE_URL और Environment Variables में SONARQUBE_URL=https://sonarqube.us जोड़ें।
- SonarQube Server से कनेक्ट करने के लिए:
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: *
कॉन्फ़िगरेशन फ़ाइल यहाँ स्थित है: ~/.copilot/mcp-config.json।
GitHub Copilot coding agent
GitHub Copilot coding agent, SonarQube MCP Server का सीधे आपके CI/CD में उपयोग कर सकता है।
अपने Copilot एनवायरनमेंट में सीक्रेट जोड़ने के लिए, Copilot के दस्तावेज़ का पालन करें। केवल COPILOT_MCP_ से शुरू होने वाले नामों वाले सीक्रेट आपके MCP कॉन्फ़िगरेशन के लिए उपलब्ध होंगे।
अपने GitHub रिपॉज़िटरी में Settings -> Copilot -> Coding agent पर जाएँ और MCP configuration सेक्शन में निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
- SonarQube Cloud से कनेक्ट करने के लिए:
{
"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 के लिए, "-e", "SONARQUBE_URL" को args ऐरे में और "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL" को env सेक्शन में जोड़ें, फिर सीक्रेट COPILOT_MCP_SONARQUBE_URL=https://sonarqube.us सेट करें।
- SonarQube Server से कनेक्ट करने के लिए:
{
"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
अपने वर्कस्पेस डायरेक्टरी में .kiro/settings/mcp.json फ़ाइल बनाएँ (या यदि वह पहले से मौजूद है तो उसे संपादित करें) और निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
- SonarQube Cloud से कनेक्ट करने के लिए:
{
"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 के लिए, "-e", "SONARQUBE_URL" को args ऐरे में और "SONARQUBE_URL": "https://sonarqube.us" को env सेक्शन में जोड़ें।
- SonarQube Server से कनेक्ट करने के लिए:
{
"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 में इंस्टॉलेशन प्रक्रिया को आसान बनाने के लिए आप निम्नलिखित बटन का उपयोग कर सकते हैं।
SonarQube Cloud US के लिए, इंस्टॉलेशन के बाद अपने MCP कॉन्फ़िगरेशन के env सेक्शन में "SONARQUBE_URL": "https://sonarqube.us" को मैन्युअल रूप से जोड़ें।
Windsurf
SonarQube MCP Server, Windsurf प्लगइन के रूप में उपलब्ध है। इन निर्देशों का पालन करें:
- Windsurf Settings > Cascade > MCP Servers खोलें और Open MCP Marketplace चुनें
- Cascade MCP Marketplace में
sonarqubeखोजें - SonarQube MCP Server चुनें और Install चुनें
- आवश्यक SonarQube User टोकन जोड़ें। वैकल्पिक रूप से, SonarQube Cloud के लिए डिफ़ॉल्ट organization key या SonarQube Server अथवा Community Build के लिए SonarQube URL जोड़ें।
SonarQube Cloud US के लिए, URL को https://sonarqube.us पर सेट करें।
Zed
Zed में Extensions दृश्य पर जाएँ और SonarQube MCP Server खोजें। एक्सटेंशन इंस्टॉल करते समय, आपसे आवश्यक एनवायरनमेंट वेरिएबल देने के लिए कहा जाएगा:
- SonarQube Cloud का उपयोग करते समय:
{
"sonarqube_token": "YOUR_SONARQUBE_TOKEN",
"sonarqube_org": "SONARQUBE_ORGANIZATION_KEY",
"docker_path": "DOCKER_PATH"
}
SonarQube Cloud US के लिए, कॉन्फ़िगरेशन में "sonarqube_url": "https://sonarqube.us" जोड़ें।
- SonarQube Server का उपयोग करते समय:
{
"sonarqube_token": "YOUR_SONARQUBE_USER_TOKEN",
"sonarqube_url": "YOUR_SONARQUBE_SERVER_URL",
"docker_path": "DOCKER_PATH"
}
docker_path docker executable का पथ है। उदाहरण:
Linux/macOS: /usr/bin/docker या /usr/local/bin/docker
Windows: C:\Program Files\Docker\Docker\resources\bin\docker.exe
💡 सुझाव: नवीनतम सुविधाएँ और सुधार पाने के लिए, और समस्याओं की रिपोर्ट करने से पहले, हम नियमित रूप से नवीनतम इमेज पुल करने की सलाह देते हैं।
मैन्युअल इंस्टॉलेशन
आप निम्नलिखित स्निपेट को MCP servers कॉन्फ़िगरेशन फ़ाइल में कॉपी करके SonarQube MCP Server को मैन्युअल रूप से इंस्टॉल कर सकते हैं:
- SonarQube Cloud से कनेक्ट करने के लिए:
{
"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 से कनेक्ट करने के लिए:
{
"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 के साथ एकीकरण
SonarQube MCP Server, SonarQube for IDE के साथ एकीकृत होकर आपके विकास कार्यप्रवाह को और बेहतर बना सकता है तथा सीधे आपके IDE में बेहतर कोड विश्लेषण और जानकारी प्रदान कर सकता है।
कॉन्फ़िगरेशन
SonarQube for IDE का उपयोग करते समय, SONARQUBE_IDE_PORT एनवायरनमेंट वेरिएबल को सही पोर्ट नंबर के साथ सेट करना चाहिए। SonarQube for VS Code में Quick Install बटन शामिल है, जो पोर्ट कॉन्फ़िगरेशन को अपने आप सही सेट करता है।
उदाहरण के लिए, SonarQube Cloud के साथ:
{
"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>"
}
}
}
Linux पर MCP सर्वर को कंटेनर में चलाते समय, कंटेनर localhost पर चल रहे SonarQube for IDE के एम्बेडेड सर्वर तक नहीं पहुँच सकता। कंटेनर को SonarQube for IDE सर्वर से कनेक्ट करने की अनुमति देने के लिए, अपने कंटेनर रन कमांड में
--network=hostविकल्प जोड़ें।
कॉन्फ़िगरेशन
अपने एनवायरनमेंट के अनुसार, आपको विशिष्ट एनवायरनमेंट वेरिएबल देने चाहिए।
आधार
MCP Server चलाते समय आपको निम्नलिखित वेरिएबल जोड़ना चाहिए:
| Environment variable | विवरण |
|---|---|
STORAGE_PATH | लिखने योग्य डायरेक्टरी का अनिवार्य पूर्ण पथ, जहाँ SonarQube MCP Server अपनी फ़ाइलें संग्रहीत करेगा (उदाहरण के लिए, बनाने, अपडेट करने और स्थायी रूप से सहेजने के लिए)। कंटेनर इमेज का उपयोग करने पर यह अपने-आप उपलब्ध कराया जाता है। |
SONARQUBE_PROJECT_KEY | वैकल्पिक डिफ़ॉल्ट प्रोजेक्ट कुंजी। सेट होने पर, प्रोजेक्ट कुंजी की आवश्यकता वाले सभी टूल इस मान का अपने-आप उपयोग करेंगे — उनके स्कीमा से projectKey पैरामीटर पूरी तरह हटा दिया जाता है। किसी एक प्रोजेक्ट पर काम करते समय उपयोगी। |
SONARQUBE_IDE_PORT | SonarQube MCP Server को SonarQube for IDE से जोड़ने के लिए उपयोग किया जाने वाला वैकल्पिक पोर्ट नंबर, 64120 और 64130 के बीच। |
SONARQUBE_FORCE_LOCAL_ANALYSIS | Cloud stdio पर Vortex विश्लेषण के बजाय analyze_code_snippet का उपयोग करने के लिए इसे true पर सेट करें, इसमें पात्र संगठन भी शामिल हैं। इसके लिए analysis टूलसेट आवश्यक है। डिफ़ॉल्ट: false। SonarQube Server या Cloud HTTP पर इसका कोई प्रभाव नहीं पड़ता। |
SONARQUBE_DEBUG_ENABLED | डीबग लॉगिंग सक्षम करने के लिए इसे true पर सेट करें। डीबग लॉग, लॉग फ़ाइल और STDERR दोनों में लिखे जाते हैं। कनेक्टिविटी या कॉन्फ़िगरेशन संबंधी समस्याओं का निवारण करने में उपयोगी। डिफ़ॉल्ट: false। |
SONARQUBE_LOG_TO_FILE_DISABLED | डिस्क पर लॉग लिखना पूरी तरह बंद करने के लिए इसे true पर सेट करें। STORAGE_PATH/logs/ के अंतर्गत कोई लॉग फ़ाइल नहीं बनाई जाएगी। कंटेनर या अस्थायी परिवेशों में उपयोगी, जहाँ फ़ाइल में लॉग लिखना वांछनीय नहीं है। डिफ़ॉल्ट: false। |
Workspace Mount (संदर्भ का अनावश्यक विस्तार कम करना)
डिफ़ॉल्ट रूप से, विश्लेषण टूल analyze_code_snippet के लिए एजेंट को पूरी फ़ाइल सामग्री fileContent आर्ग्युमेंट के रूप में पास करनी होती है। बड़ी फ़ाइलों या किसी सत्र में कई फ़ाइलों का विश्लेषण करते समय, इससे संदर्भ विंडो का उपयोग और लागत काफ़ी बढ़ जाती है।
समाधान: अपने प्रोजेक्ट डायरेक्टरी को कंटेनर में /app/mcp-workspace पर माउंट करें। इस माउंट का पता चलने पर, सर्वर प्रोजेक्ट के सापेक्ष filePath आर्ग्युमेंट का उपयोग करके फ़ाइलों को सीधे डिस्क से पढ़ता है — फ़ाइल की सामग्री एजेंट के संदर्भ से होकर नहीं गुजरती।
{
"args": [
"run", "-i", "--rm", "--init", "--pull=always",
"-e", "SONARQUBE_TOKEN",
"-e", "SONARQUBE_ORG",
"-v", "/path/to/your/project:/app/mcp-workspace",
"sonarsource/sonarqube-mcp"
]
}
माउंट होने पर, विश्लेषण टूल filePath का उपयोग करके फ़ाइलों को सीधे पढ़ते हैं; fileContent की आवश्यकता नहीं होती।
stdio पर, विश्लेषण का चयन स्टार्टअप के समय होता है (सक्षम टूलसेट के अधीन):
- SonarQube Cloud: माउंट किए गए वर्कस्पेस और कम-से-कम एक पात्र संगठन के साथ Vortex विश्लेषण (
run_advanced_code_analysis); अन्यथा स्थानीय विश्लेषण। Vortex विश्लेषण केवल पात्र संगठनों को स्वीकार करता है। - SonarQube Server: पात्र इंस्टेंस के लिए Vortex विश्लेषण (वर्कस्पेस माउंट आवश्यक); Vortex के बिना वाले इंस्टेंस के लिए स्थानीय विश्लेषण।
स्थानीय विश्लेषण में, कनेक्ट होने पर SonarQube for IDE का उपयोग किया जाता है; अन्यथा analyze_code_snippet का। माउंट के बिना, स्निपेट विश्लेषण के लिए fileContent आवश्यक है।
Cloud stdio पर, SONARQUBE_ORG पात्रता जाँच को उस संगठन तक सीमित करता है। सभी संगठनों के लिए स्निपेट का उपयोग करने हेतु, SONARQUBE_FORCE_LOCAL_ANALYSIS=true सेट करें, analysis टूलसेट सक्षम करें और रीस्टार्ट करें। यह सेटिंग केवल Cloud stdio को प्रभावित करती है।
HTTP/HTTPS पर, Cloud और Server में analyze_code_snippet समर्थित है, बशर्ते MCP सर्वर के पास स्टार्टअप SONARQUBE_TOKEN हो और analysis टूलसेट सक्षम हो। एनालाइज़र को शुरू करने के लिए स्टार्टअप टोकन आवश्यक है (Cloud प्लगइन अनाम रूप से डाउनलोड किए जाते हैं); कॉल में गुणवत्ता प्रोफ़ाइल और सक्रिय नियम प्राप्त करने के लिए कॉलर का टोकन और, Cloud पर, अनुरोध के लिए चुना गया संगठन उपयोग किया जाता है। स्टार्टअप टोकन के बिना, SONARQUBE_FORCE_LOCAL_ANALYSIS=true होने पर भी स्निपेट विश्लेषण और एनालाइज़र डाउनलोड अक्षम रहते हैं। Vortex पात्रता आवश्यक नहीं है।
टूल को चुनिंदा रूप से सक्षम करना
MCP क्लाइंट हर बातचीत में सभी सक्षम टूल — उनके नाम, विवरण और इनपुट स्कीमा — एजेंट के संदर्भ में लोड करते हैं। SONARQUBE_TOOLSETS के साथ इस सूची को सीमित करने से संदर्भ का उपयोग और हर सत्र की टोकन लागत घटती है।
डिफ़ॉल्ट रूप से, केवल महत्वपूर्ण टूलसेट सक्षम होते हैं। अतिरिक्त टूलसेट केवल आवश्यकता पड़ने पर सक्षम करें।
| Environment variable | विवरण |
|---|---|
SONARQUBE_TOOLSETS | सक्षम किए जाने वाले टूलसेट की अल्पविराम से अलग की गई सूची। सेट होने पर, केवल ये टूलसेट उपलब्ध होंगे। सेट न होने पर, डिफ़ॉल्ट महत्वपूर्ण टूलसेट सक्षम होते हैं (analysis, ide, issues, projects, quality-gates, rules, duplications, measures, security-hotspots, dependency-risks, coverage, cag)। ध्यान दें: projects टूलसेट हमेशा सक्षम रहता है, क्योंकि अन्य कार्रवाइयों के लिए प्रोजेक्ट कुंजियाँ ढूँढ़ने हेतु इसकी आवश्यकता होती है। Vortex संदर्भ टूल (बहिष्कृत नाम: Context Augmentation/CAG) और Vortex विश्लेषण टूल (बहिष्कृत नाम: Advanced Analysis/A3S) केवल stdio मोड में उपलब्ध हैं और एक ही संयुक्त संगठन पात्रता साझा करते हैं — किसी संगठन को इनमें से किसी का उपयोग करने के लिए दोनों के लिए पात्र होना चाहिए। Cloud का अंतर्निर्मित विश्लेषण रनटाइम पर चुने गए संगठन की जाँच करता है; प्रॉक्सी किए गए संदर्भ टूल स्टार्टअप संगठन का उपयोग करते हैं। SonarQube Server पर, जब CAG और A3S दोनों हब पात्र हों, तो stdio Vortex संदर्भ और run_advanced_code_analysis सूचीबद्ध करता है। एकीकृत vortex टूलसेट कुंजी को प्राथमिकता दें। बहिष्कृत cag और analysis कुंजियाँ अब भी काम करती हैं; vortex के बिना उनका उपयोग करने पर स्टार्टअप चेतावनी और सर्वर निर्देशों में बहिष्करण संबंधी टिप्पणी दिखाई जाती है। Streamable HTTP मोड में, क्लाइंट प्रति-अनुरोध इसे और सीमित करने के लिए SONARQUBE_TOOLSETS HTTP हेडर भेज सकते हैं, लेकिन सर्वर लॉन्च होने पर उपलब्ध टूलसेट से अधिक सक्षम नहीं कर सकते (नीचे Streamable HTTP transport देखें)। |
SONARQUBE_READ_ONLY | केवल-पढ़ने का मोड सक्षम करने के लिए इसे true पर सेट करें, जिससे लिखने की सभी कार्रवाइयाँ (उदाहरण के लिए, इश्यू की स्थिति बदलना) अक्षम हो जाती हैं। यदि SONARQUBE_TOOLSETS भी सेट है, तो यह फ़िल्टर उसके साथ मिलकर लागू होता है। डिफ़ॉल्ट: false। Streamable HTTP मोड में, क्लाइंट अलग-अलग अनुरोधों को केवल-पढ़ने तक सीमित करने के लिए SONARQUBE_READ_ONLY HTTP हेडर भेज सकते हैं, लेकिन सर्वर-स्तर पर केवल-पढ़ने की पाबंदी हटा नहीं सकते (नीचे Streamable HTTP transport देखें)। |
उपलब्ध टूलसेट
| टूलसेट | कुंजी | विवरण | |-----------------------|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| | **विश्लेषण** | `analysis` | कोड विश्लेषण टूल ( `analyze_code_snippet` के माध्यम से स्थानीय विश्लेषण, `analyze_file_list`/Vortex विश्लेषण के पक्ष में **अप्रचलित**) | | **IDE** | `ide` | SonarQube for IDE ब्रिज टूल (फ़ाइल विश्लेषण, स्वचालित विश्लेषण टॉगल) — वर्तमान में `analysis` में भी शामिल | | **समस्याएँ** | `issues` | SonarQube समस्याएँ खोजें और प्रबंधित करें | | **सुरक्षा हॉटस्पॉट** | `security-hotspots` | सुरक्षा हॉटस्पॉट खोजें और उनकी समीक्षा करें | | **प्रोजेक्ट** | `projects` | SonarQube प्रोजेक्ट ब्राउज़ करें और खोजें | | **क्वालिटी गेट** | `quality-gates` | क्वालिटी गेट और उनकी स्थिति तक पहुँचें | | **नियम** | `rules` | SonarQube नियम ब्राउज़ करें और खोजें | | **स्रोत** | `sources` | सोर्स कोड और SCM जानकारी तक पहुँचें | | **डुप्लिकेशन** | `duplications` | प्रोजेक्ट में कोड डुप्लिकेशन खोजें | | **माप** | `measures` | मेट्रिक्स और माप प्राप्त करें (इसमें माप और मेट्रिक्स, दोनों टूल शामिल हैं) | | **भाषाएँ** | `languages` | समर्थित प्रोग्रामिंग भाषाओं की सूची बनाएँ | | **पोर्टफ़ोलियो** | `portfolios` | पोर्टफ़ोलियो और एंटरप्राइज़ प्रबंधित करें (Cloud और Server) | | **सिस्टम** | `system` | सिस्टम प्रशासन टूल (केवल Server) | | **वेबहुक** | `webhooks` | वेबहुक प्रबंधित करें | | **डिपेंडेंसी जोखिम** | `dependency-risks` | डिपेंडेंसी जोखिमों और सुरक्षा समस्याओं का विश्लेषण करें (SCA) | | **कवरेज** | `coverage` | टेस्ट कवरेज विश्लेषण और सुधार टूल | | **Vortex संदर्भ** | `cag` | Vortex संदर्भ टूल — केवल stdio। `vortex` के पक्ष में **अप्रचलित** (पुराना नाम: Context Augmentation/CAG) | | **Vortex** | `vortex` | एकीकृत, **अनुशंसित** टूलसेट, जो Vortex संदर्भ और Vortex विश्लेषण टूल को एक ही नाम के अंतर्गत उपलब्ध कराता है (केवल stdio; Cloud के लिए संयुक्त org entitlement आवश्यक; Server के लिए दोनों hubs का entitlement आवश्यक) | | **एजेंटिक तत्परता** | `agentic-readiness` | एजेंटिक तत्परता आकलन टूल (SonarQube Cloud, org entitlement आवश्यक) | | **आर्किटेक्चर** | `architecture` | आर्किटेक्चर पढ़ें, इच्छित मॉडल बदलें और प्रोजेक्ट निर्देश प्रबंधित करें (डिफ़ॉल्ट रूप से सक्षम नहीं) |उदाहरण
विश्लेषण, समस्याएँ और क्वालिटी गेट टूलसेट सक्षम करें (SonarQube Cloud के साथ Docker का उपयोग करके):
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
ध्यान दें: projects टूलसेट हमेशा अपने-आप सक्षम होता है, इसलिए आपको इसे SONARQUBE_TOOLSETS में शामिल करने की आवश्यकता नहीं है।
केवल-पढ़ने का मोड सक्षम करें (SonarQube Cloud के साथ Docker का उपयोग करके):
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 के लिए, निम्नलिखित पर्यावरण वेरिएबल कॉन्फ़िगर करें:
| पर्यावरण वेरिएबल | विवरण | आवश्यक |
|---|---|---|
SONARQUBE_TOKEN | आपका SonarQube Cloud टोकन | हाँ |
SONARQUBE_ORG | वैकल्पिक, निश्चित SonarQube Cloud संगठन कुंजी | नहीं |
SONARQUBE_URL | कस्टम SonarQube Cloud URL (डिफ़ॉल्ट https://sonarcloud.io है)। SonarQube Cloud US के लिए इसका उपयोग करें: https://sonarqube.us | नहीं |
उदाहरण:
- SonarQube Cloud: केवल
SONARQUBE_TOKENआवश्यक है। सेट होने परSONARQUBE_ORGसंगठन को निश्चित करता है। - SonarQube Cloud US:
SONARQUBE_TOKENऔरSONARQUBE_URL=https://sonarqube.usसेट करें;SONARQUBE_ORGवैकल्पिक है।
SonarQube Server
| पर्यावरण वेरिएबल | विवरण | आवश्यक |
|---|---|---|
SONARQUBE_TOKEN | आपका SonarQube Server USER टोकन | हाँ |
SONARQUBE_URL | आपका SonarQube Server URL | हाँ |
संस्करण की आवश्यकता: SonarQube Server 2025.1 (SQS) या 25.1 (SonarQube Community Build) या बाद का संस्करण आवश्यक है। स्टार्टअप पर, MCP सर्वर कनेक्ट किए गए इंस्टेंस का संस्करण पढ़ता है और यदि वह बहुत पुराना हो तो त्रुटि के साथ बंद हो जाता है (उदाहरण के लिए, पुराने 9.x/10.x Server रिलीज़ और Community Build 24.x समर्थित नहीं हैं)। SonarQube Cloud पर यह जाँच लागू नहीं होती।
⚠️ SonarQube Server से कनेक्शन के लिए USER प्रकार का टोकन आवश्यक है; प्रोजेक्ट टोकन या ग्लोबल टोकन का उपयोग करने पर यह ठीक से काम नहीं करेगा।
💡 कॉन्फ़िगरेशन सुझाव (stdio मोड): URL के बिना टोकन डिफ़ॉल्ट रूप से SonarQube Cloud पर जाता है। SonarQube Server या किसी अन्य Cloud क्षेत्र के लिए
SONARQUBE_URLसेट करें। सेट होने परSONARQUBE_ORGCloud संगठन को निश्चित करता है।
stdio में, SONARQUBE_ORG सेट करने से Cloud संगठन निश्चित हो जाता है। टूल organization के आर्ग्युमेंट स्कीमा से हटा दिए जाते हैं और अस्वीकार कर दिए जाते हैं, ठीक वैसे ही जैसे projectKey, जब SONARQUBE_PROJECT_KEY सेट हो।
SONARQUBE_ORG सेट न होने पर, एजेंट list_organizations को कॉल करके आपके उपयोगकर्ता खाते के लिए उपलब्ध संगठन कुंजियाँ, नाम, ID और UUID खोज सकते हैं, फिर संगठन-जागरूक टूल पर वैकल्पिक organization आर्ग्युमेंट के रूप में कुंजी दे सकते हैं। stdio में, विशिष्ट रूप से पहचाना गया एकमात्र संगठन डिफ़ॉल्ट बना रहता है; शून्य या एक से अधिक संगठन होने पर संगठन अनिर्धारित रहता है। टूल आर्ग्युमेंट केवल उस कॉल पर लागू होता है और पहचाने गए डिफ़ॉल्ट को कभी नहीं बदलता। स्निपेट प्रोफ़ाइल और नियम लुकअप उस कॉल के लिए चुने गए संगठन का उपयोग करते हैं।
HTTP/HTTPS टोकन अनुरोधों के लिए, सर्वर-स्तरीय SONARQUBE_ORG संगतता के लिए अब भी समर्थित है, लेकिन अप्रचलित है और स्टार्टअप चेतावनी लॉग करता है। यह हर अनुरोध के लिए संगठन निश्चित करता है और क्लाइंट संगठन हेडर तथा टूल organization आर्ग्युमेंट अस्वीकार करता है। जब कोई सर्वर संगठन कॉन्फ़िगर न हो, तो वैकल्पिक क्लाइंट SONARQUBE_ORG हेडर उस अनुरोध के लिए संगठन निश्चित करता है और टूल organization आर्ग्युमेंट की अनुमति नहीं देता। हेडर के बिना, टूल आर्ग्युमेंट का उपयोग करें। यदि संगठन आवश्यक करने वाले टूल के लिए सभी विकल्प अनुपस्थित हों, तो वे संगठन खोजने के निर्देश देते हैं। संगठन खोज और वे टूल जिनकी API केवल संसाधन पहचानकर्ताओं का उपयोग करती हैं, संगठन आर्ग्युमेंट की आवश्यकता नहीं रखते। संगठन-जागरूक समस्या खोज और डिपेंडेंसी-जोखिम entitlement जाँच में चुने गए संगठन का उपयोग होता है। OAuth कॉन्फ़िगर होने पर, सर्वर-स्तरीय SONARQUBE_ORG अस्वीकार किया जाता है। OAuth अनुरोध संगठन हेडर भी अस्वीकार करते हैं; संगठन चुनने के लिए टूल आर्ग्युमेंट का उपयोग करें।
Vortex संदर्भ टूल कॉन्फ़िगर किए गए या स्टार्टअप पर विशिष्ट रूप से पहचाने गए संगठन का उपयोग करते हैं। रनटाइम संगठन आर्ग्युमेंट प्रॉक्सी किए गए संदर्भ इंजन को पुनः कॉन्फ़िगर नहीं करते; स्टार्टअप पर संगठन अनिर्धारित होने पर उस प्रॉक्सी को छोड़ दिया जाता है। अंतर्निहित run_advanced_code_analysis टूल हर बार चलाए जाने पर चुने गए संगठन के लिए संयुक्त Vortex entitlement जाँचता है।
ट्रांसपोर्ट मोड
MCP विनिर्देश दो ट्रांसपोर्ट तंत्र परिभाषित करता है: Stdio और Streamable HTTP। SonarQube MCP Server दोनों का समर्थन करता है:
| MCP ट्रांसपोर्ट | सर्वर मोड | सामान्य उपयोग |
|---|---|---|
| Stdio | डिफ़ॉल्ट (SONARQUBE_TRANSPORT के बिना) | स्थानीय MCP क्लाइंट, जो सर्वर को सबप्रोसेस के रूप में लॉन्च करते हैं (Cursor, Claude Code, VS Code आदि) |
| Streamable HTTP | SONARQUBE_TRANSPORT=http या https | रिमोट या बहु-उपयोगकर्ता परिनियोजन; क्लाइंट HTTP(S) पर /mcp से कनेक्ट करते हैं (उदाहरण के लिए, स्वयं-होस्ट किए गए सर्वर URL के साथ Windsurf) |
ध्यान दें: Streamable HTTP वर्तमान MCP नेटवर्क ट्रांसपोर्ट है। पुराने MCP संस्करणों का SSE-only HTTP ट्रांसपोर्ट अप्रचलित है और समर्थित नहीं है।
1. Stdio (डिफ़ॉल्ट - स्थानीय विकास के लिए अनुशंसित)
स्थानीय विकास और एकल-उपयोगकर्ता सेटअप के लिए अनुशंसित मोड, जिसका उपयोग अधिकांश MCP क्लाइंट करते हैं।
उदाहरण - SonarQube Cloud के साथ 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)
अनएन्क्रिप्टेड Streamable HTTP ट्रांसपोर्ट। बहु-उपयोगकर्ता परिनियोजन के लिए इसके बजाय HTTPS का उपयोग करें।
⚠️ अनुशंसित नहीं: स्थानीय विकास के लिए Stdio या बहु-उपयोगकर्ता प्रोडक्शन परिनियोजन के लिए HTTPS (Streamable HTTP) का उपयोग करें।
| पर्यावरण वेरिएबल | विवरण | डिफ़ॉल्ट |
|---|---|---|
SONARQUBE_TRANSPORT | Streamable HTTP ट्रांसपोर्ट सक्षम करने के लिए http पर सेट करें | सेट नहीं (stdio) |
SONARQUBE_HTTP_PORT | पोर्ट नंबर (1024-65535), या OS द्वारा निर्धारित पोर्ट के लिए 0 | 8080 |
SONARQUBE_HTTP_HOST | बाइंड करने के लिए होस्ट (सुरक्षा के लिए डिफ़ॉल्ट localhost है) | 127.0.0.1 |
SONARQUBE_HTTP_ALLOWED_ORIGINS | CORS के लिए अनुमत ब्राउज़र origins की कॉमा से अलग की गई सूची (उदाहरण के लिए, https://my-app.example.com) | सेट नहीं |
SONARQUBE_MCP_IN_CONTAINER | कंटेनर के अंदर चलाते समय true पर सेट करें। आधिकारिक Docker इमेज इसे अपने-आप सेट करती है; अन्य OCI रनटाइम (Podman, Kubernetes, Nomad आदि) का उपयोग करते समय इसे स्वयं सेट करें। | false |
नोट: HTTP/HTTPS, Authorization: Bearer <token> के माध्यम से उपयोगकर्ता का SonarQube टोकन स्वीकार करता है। Sonar की होस्ट की गई Cloud सेवा OAuth का भी समर्थन करती है। SonarQube Cloud टोकन अनुरोधों के लिए, संगठन का निर्धारण इस प्रकार किया जाता है: |
SONARQUBE_ORGएक वैकल्पिक अनुरोध हेडर है, जो उस अनुरोध के लिए संगठन तय करता है। सर्वर-स्तर का अप्रचलित कॉन्फ़िगरेशन सभी अनुरोधों के लिए संगठन तय करता है और क्लाइंट संगठन हेडर तथा टूल संगठन आर्ग्युमेंट अस्वीकार करता है।- संगठन-जागरूक टूल तब वैकल्पिक
organizationआर्ग्युमेंट स्वीकार करते हैं, जब न तो सर्वर कॉन्फ़िगरेशन और न ही अनुरोध हेडर संगठन तय करता हो। संगठन तय होने पर यह आर्ग्युमेंट देने से अनुरोध अस्वीकार कर दिया जाता है। - डिफ़ॉल्ट संगठन न होने पर, एजेंट केवल अपने टोकन का उपयोग करके
list_organizationsको कॉल कर सकते हैं, फिर चुनी गई कुंजी को बाद के टूल में पास कर सकते हैं।
क्लाइंट, SONARQUBE_TOOLSETS और/या SONARQUBE_READ_ONLY हेडर देकर प्रति-अनुरोध दिखाई देने वाले टूल को भी सीमित कर सकते हैं; ये सर्वर-स्तर के कॉन्फ़िगरेशन के अतिरिक्त फ़िल्टरिंग लागू करते हैं — ये दायरा केवल घटा सकते हैं, कभी बढ़ा नहीं सकते।
अनुरोधों के बीच कोई सत्र स्थिति बनाए नहीं रखी जाती।
अप्रचलित: SonarQube टोकन के लिए,
SONARQUBE_TOKENअनुरोध हेडर अब भी पिछली संगतता के लिए स्वीकार किया जाता है, लेकिन भविष्य के संस्करण में हटा दिया जाएगा।Authorization: Bearer <token>पर माइग्रेट करें।
3. HTTPS (TLS पर Streamable HTTP) (बहु-उपयोगकर्ता प्रोडक्शन डिप्लॉयमेंट के लिए अनुशंसित)
TLS एन्क्रिप्शन के साथ सुरक्षित Streamable HTTP ट्रांसपोर्ट। SSL प्रमाणपत्र आवश्यक हैं।
✅ प्रोडक्शन के लिए अनुशंसित: Streamable HTTP पर MCP सर्वर को कई उपयोगकर्ताओं के लिए डिप्लॉय करते समय HTTPS का उपयोग करें। सुरक्षा के लिए सर्वर डिफ़ॉल्ट रूप से
127.0.0.1(localhost) पर बाइंड होता है।
| Environment variable | विवरण | डिफ़ॉल्ट |
|---|---|---|
SONARQUBE_TRANSPORT | TLS पर Streamable HTTP ट्रांसपोर्ट सक्षम करने के लिए https पर सेट करें | सेट नहीं (stdio) |
SONARQUBE_HTTP_PORT | पोर्ट नंबर (HTTPS के लिए आमतौर पर 8443), या OS द्वारा असाइन किए गए पोर्ट के लिए 0 | 8080 |
SONARQUBE_HTTP_HOST | बाइंड करने के लिए होस्ट (सुरक्षा के लिए डिफ़ॉल्ट localhost है) | 127.0.0.1 |
SONARQUBE_HTTP_ALLOWED_ORIGINS | CORS के लिए अनुमत ब्राउज़र origins की अल्पविराम से अलग की गई सूची (उदा. https://my-app.example.com) | सेट नहीं |
SONARQUBE_MCP_IN_CONTAINER | कंटेनर के अंदर चलाते समय true पर सेट करें। आधिकारिक Docker इमेज इसे अपने-आप सेट करती है; अन्य OCI रनटाइम (Podman, Kubernetes, Nomad आदि) का उपयोग करते समय इसे स्वयं सेट करें। | false |
SSL प्रमाणपत्र कॉन्फ़िगरेशन (वैकल्पिक):
| Environment variable | विवरण | डिफ़ॉल्ट |
|---|---|---|
SONARQUBE_HTTPS_KEYSTORE_PATH | keystore फ़ाइल का पथ (.p12 या .jks) | /etc/ssl/mcp/keystore.p12 |
SONARQUBE_HTTPS_KEYSTORE_PASSWORD | Keystore पासवर्ड | sonarlint |
SONARQUBE_HTTPS_KEYSTORE_TYPE | Keystore प्रकार (PKCS12 या JKS) | PKCS12 |
उदाहरण - SonarQube Cloud के साथ Docker:
नोट: कंटेनर में चलाते समय, कंटेनर को सभी इंटरफ़ेस पर सुनने देने और रनटाइम की पोर्ट मैपिंग को काम करने देने के लिए
SONARQUBE_HTTP_HOST=0.0.0.0सेट करें, और सर्वर को यह बताने के लिएSONARQUBE_MCP_IN_CONTAINER=trueसेट करें कि वह कंटेनर के अंदर है। आधिकारिक Docker इमेज बाद वाले को अपने-आप सेट करती है; अन्य OCI रनटाइम (Podman, Kubernetes, Nomad आदि) का उपयोग करते समय इसे स्वयं सेट करें। होस्ट-साइड पोर्ट फ़्लैग नियंत्रित करता है कि कंटेनर के बाहर से कौन सर्वर तक पहुँच सकता है।SONARQUBE_HTTP_HOST=0.0.0.0केवल यह नियंत्रित करता है कि सर्वर कंटेनर के अंदर कहाँ सुनता है — ब्राउज़र CORS डिफ़ॉल्ट रूप से localhost origins की अनुमति देता है।
आपकी मशीन पर स्थानीय रूप से चल रहे सर्वर के लिए (केवल localhost से पहुँच योग्य):
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
नेटवर्क से पहुँच योग्य सर्वर के लिए (रिमोट डिप्लॉयमेंट):
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
क्लाइंट कॉन्फ़िगरेशन (SonarQube Cloud):
SonarQube टोकन अनुरोधों के लिए, अनुरोध का संगठन तय करने हेतु क्लाइंट हेडर में वैकल्पिक रूप से SONARQUBE_ORG सेट करें, या टूल आर्ग्युमेंट के माध्यम से संगठन चुनने के लिए इसे छोड़ दें।
{
"mcpServers": {
"sonarqube-https": {
"url": "https://your-server:8443/mcp",
"headers": {
"Authorization": "Bearer <your-token>",
"SONARQUBE_TOOLSETS": "issues,quality-gates",
"SONARQUBE_READ_ONLY": "true"
}
}
}
}
क्लाइंट कॉन्फ़िगरेशन (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"
}
}
}
}
नोट:
SONARQUBE_TOOLSETSऔरSONARQUBE_READ_ONLYवैकल्पिक प्रति-अनुरोध हेडर हैं, जो उस विशिष्ट अनुरोध के लिए सर्वर-स्तर के टूल सेट को सीमित करते हैं। ये दायरा केवल घटा सकते हैं — सर्वर को शुरू करते समय निर्धारित टूलसेट सक्षम नहीं कर सकते या प्रतिबंधों को हटा नहीं सकते।
नोट: स्थानीय विकास के लिए इसके बजाय Stdio ट्रांसपोर्ट (डिफ़ॉल्ट) का उपयोग करें। HTTPS Streamable HTTP, उचित SSL प्रमाणपत्रों के साथ बहु-उपयोगकर्ता प्रोडक्शन डिप्लॉयमेंट के लिए है।
होस्ट किया गया SonarQube Cloud OAuth
OAuth समर्थन, Sonar की होस्ट की गई SonarQube Cloud MCP सेवा के लिए है। OAuth-सक्षम MCP क्लाइंट का उपयोग करें और संकेत मिलने पर साइन इन करें; आपके क्लाइंट कॉन्फ़िगरेशन में OAuth सर्वर सेटिंग की आवश्यकता नहीं है। मौजूदा SonarQube टोकन क्लाइंट भी समर्थित हैं।
mcp:tools:read और mcp:tools:write स्कोप, आपकी Cloud अनुमतियों के अधीन, पढ़ने और लिखने वाले टूल तक पहुँच को स्वतंत्र रूप से नियंत्रित करते हैं। संगठन चुनने के लिए list_organizations और टूल organization आर्ग्युमेंट का उपयोग करें।
स्वयं-होस्ट किए गए डिप्लॉयमेंट में SonarQube टोकन का उपयोग जारी रहता है; SonarQube Server के लिए OAuth अभी समर्थित नहीं है।
सेवा एंडपॉइंट
Streamable HTTP मोड (http या https) में चलने पर, सर्वर /mcp पर MCP एंडपॉइंट के अतिरिक्त कुछ अनधिकृत सेवा एंडपॉइंट भी उपलब्ध कराता है। ये सेवा-से-सेवा उपयोग (मॉनिटरिंग, ऑर्केस्ट्रेशन, क्लाइंट संगतता जाँच) के लिए हैं और इनके लिए Authorization हेडर की आवश्यकता नहीं होती।
| एंडपॉइंट | विधि | विवरण | उदाहरण प्रतिक्रिया |
|---|---|---|---|
/health | GET | लाइवनेस प्रोब। सर्वर के अनुरोध स्वीकार करने के लिए तैयार होने पर खाली बॉडी के साथ 200 OK लौटाता है। | (खाली बॉडी) |
/info | GET | MCP सर्वर संस्करण को JSON के रूप में लौटाता है। डिप्लॉय किए गए सर्वर संस्करण की पुष्टि के लिए उपयोगी। | {"version":"1.16.0"} |
Stdio ट्रांसपोर्ट के साथ चलने पर ये एंडपॉइंट उपलब्ध नहीं होते।
कस्टम प्रमाणपत्र
यदि आपका SonarQube Server स्व-हस्ताक्षरित प्रमाणपत्र या निजी Certificate Authority (CA) का प्रमाणपत्र उपयोग करता है, तो आप कंटेनर में कस्टम प्रमाणपत्र जोड़ सकते हैं, जो अपने-आप इंस्टॉल हो जाएंगे।
Configuration
Volume Mount का उपयोग
कंटेनर चलाते समय अपने प्रमाणपत्रों वाली डायरेक्टरी माउंट करें:
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
समर्थित प्रमाणपत्र फ़ॉर्मैट
कंटेनर निम्नलिखित प्रमाणपत्र फ़ॉर्मैट का समर्थन करता है:
.crtफ़ाइलें (PEM या DER एन्कोडेड).pemफ़ाइलें (PEM एन्कोडेड)
प्रमाणपत्रों के साथ MCP कॉन्फ़िगरेशन
कस्टम प्रमाणपत्रों का उपयोग करते समय, प्रमाणपत्र माउंट करने के लिए आप अपना MCP कॉन्फ़िगरेशन संशोधित कर सकते हैं:
{
"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>"
}
}
}
नोट: सर्वर को कंटेनर के बजाय JAR से चला रहे हैं? ऊपर दिया गया volume mount प्रमाणपत्रों को कंटेनर के OS trust store में इंस्टॉल करता है, जिसे सर्वर भी पढ़ता है। यदि आप OS trust store का उपयोग नहीं कर सकते — विशेष रूप से Windows पर, जहाँ इसे देखा नहीं जाता — तो CA प्रमाणपत्र वाली Java truststore के लिए JVM को निर्देशित करें:
-Djavax.net.ssl.trustStore=/path/to/truststore.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=<passphrase>। इसे डिफ़ॉल्ट विश्वसनीय प्रमाणपत्रों के अतिरिक्त जोड़ा जाता है।
प्रॉक्सी
SonarQube MCP Server, मानक Java प्रॉक्सी सिस्टम प्रॉपर्टीज़ के माध्यम से HTTP और SOCKS5 प्रॉक्सी का समर्थन करता है।
Configuration
HTTP/HTTPS प्रॉक्सी
आप Java सिस्टम प्रॉपर्टीज़ का उपयोग करके प्रॉक्सी सेटिंग कॉन्फ़िगर कर सकते हैं। इन्हें environment variables के रूप में सेट किया जा सकता है या JVM आर्ग्युमेंट के रूप में पास किया जा सकता है।
सामान्य प्रॉक्सी प्रॉपर्टीज़:
| Property | विवरण | उदाहरण |
|---|---|---|
http.proxyHost | HTTP प्रॉक्सी होस्टनेम | proxy.example.com |
http.proxyPort | HTTP प्रॉक्सी पोर्ट | 8080 |
https.proxyHost | HTTPS प्रॉक्सी होस्टनेम | proxy.example.com |
https.proxyPort | HTTPS प्रॉक्सी पोर्ट | 8443 |
http.nonProxyHosts | प्रॉक्सी को बायपास करने वाले होस्ट (पाइप से अलग किए गए) | localhost|127.0.0.1|*.internal.com |
HTTP/HTTPS प्रॉक्सी प्रमाणीकरण:
| Property | विवरण | उदाहरण |
|---|---|---|
http.proxyUser | HTTP प्रॉक्सी उपयोगकर्ता नाम | myuser |
http.proxyPassword | HTTP प्रॉक्सी पासवर्ड | mypassword |
https.proxyUser | HTTPS प्रॉक्सी उपयोगकर्ता नाम | myuser |
https.proxyPassword | HTTPS प्रॉक्सी पासवर्ड | mypassword |
SOCKS5 प्रॉक्सी
SOCKS5 प्रॉक्सी समर्थित हैं।
| Property | विवरण | डिफ़ॉल्ट | उदाहरण |
|---|---|---|---|
socksProxyHost | SOCKS5 प्रॉक्सी होस्टनेम | — | localhost |
socksProxyPort | SOCKS5 प्रॉक्सी पोर्ट | 1080 | 1080 |
java.net.socks.username | SOCKS5 उपयोगकर्ता नाम (यदि प्रमाणीकरण आवश्यक हो) | — | myuser |
java.net.socks.password | SOCKS5 पासवर्ड (यदि प्रमाणीकरण आवश्यक हो) | — | mypassword |
क्लाइंट प्रमाणपत्र (Mutual TLS)
यदि आपके SonarQube Server को TLS हैंडशेक के दौरान क्लाइंट से प्रमाणपत्र प्रस्तुत करने की आवश्यकता है (mutual TLS), तो आप PKCS12 keystore को कंटेनर में माउंट करके और उसका स्थान JAVA_OPTS के माध्यम से पास करके दे सकते हैं।
Configuration
PKCS12 keystore का उपयोग
अपनी .p12 या .pfx फ़ाइल को कंटेनर में माउंट करें और keystore प्रॉपर्टीज़ के साथ JAVA_OPTS environment variable सेट करें:
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
नोट: प्रमाणपत्र फ़ाइल कंटेनर प्रक्रिया द्वारा पढ़ी जा सकने योग्य होनी चाहिए। आवश्यकता पड़ने पर अनुमतियाँ जाँचें और ठीक करें:
ls -la /path/to/client.p12 # look for -rw-r--r-- (644) or wider chmod 644 /path/to/client.p12 # grant read access to the container user
यदि keystore में पासफ़्रेज़ नहीं है, तो -Djavax.net.ssl.keyStorePassword छोड़ दें। ध्यान दें कि यहाँ उपयोग किया गया पासफ़्रेज़ docker inspect या प्रक्रिया सूची के माध्यम से दिखाई दे सकता है।
क्लाइंट प्रमाणपत्र के साथ MCP कॉन्फ़िगरेशन
{
"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>"
}
}
}
स्टैंडअलोन JAR के साथ PKCS12 keystore का उपयोग
सर्वर को JAR से चलाते समय, -jar से पहले keystore प्रॉपर्टीज़ को JVM आर्ग्युमेंट के रूप में पास करें:
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>
यदि keystore में पासफ़्रेज़ नहीं है, तो -Djavax.net.ssl.keyStorePassword छोड़ दें।
क्लाइंट प्रमाणपत्र के साथ MCP कॉन्फ़िगरेशन (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>"
}
}
}
नोट: PEM प्रमाणपत्र और कुंजी फ़ाइलों (अलग-अलग
.crt/.keyफ़ाइलें) को पहले PKCS12 फ़ॉर्मैट में बदलना होगा। इन्हें बदलने के लिएopenssl pkcs12 -export -in client.crt -inkey client.key -out client.p12का उपयोग करें।
टूल
विश्लेषण
-
analyze_code_snippet - कोड गुणवत्ता और सुरक्षा समस्याओं की पहचान करने के लिए SonarQube analyzers से फ़ाइल की सामग्री का विश्लेषण करें। सटीकता के लिए हमेशा पूरी फ़ाइल की सामग्री का विश्लेषण करता है। वैकल्पिक रूप से परिणामों को किसी विशिष्ट कोड स्निपेट तक सीमित करें।
अप्रचलित:
analyze_code_snippetको भविष्य के रिलीज़ में हटा दिया जाएगा।analyze_file_listका उपयोग करने के लिए SonarQube for IDE से कनेक्ट करें, याrun_advanced_code_analysisका उपयोग करने के लिए अपने संगठन के लिए Vortex विश्लेषण सक्षम करें (नीचे देखें)।उपयोग:
- वर्कस्पेस माउंट होने पर (अनुशंसित):
filePath(प्रोजेक्ट-सापेक्ष) पास करें — सर्वर फ़ाइल को सीधे पढ़ता है, जिससे फ़ाइल की सामग्री एजेंट के संदर्भ विंडो से बाहर रहती है - वर्कस्पेस माउंट न होने पर: पूरी
fileContentपास करें, ताकि फ़ाइल का पूरा विश्लेषण हो सके (सभी समस्याएँ रिपोर्ट की जाती हैं) - परिणामों को फ़िल्टर करने के लिए वैकल्पिक
codeSnippetजोड़ें — केवल स्निपेट के भीतर की समस्याएँ रिपोर्ट की जाएँगी (स्निपेट का स्थान अपने-आप पहचाना जाता है)
पैरामीटर:
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल CloudprojectKey- SonarQube प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो इसे अनदेखा किया जाता है)filePath- विश्लेषण की जाने वाली फ़ाइल का प्रोजेक्ट-सापेक्ष पथ (उदा.,src/main/java/MyClass.java)। इसका उपयोग तब किया जाता है जब वर्कस्पेस/app/mcp-workspaceपर माउंट हो - StringfileContent- स्ट्रिंग के रूप में फ़ाइल की पूरी सामग्री। वर्कस्पेस माउंट न होने पर आवश्यक - StringcodeSnippet- समस्याओं को फ़िल्टर करने के लिए कोड स्निपेट (fileContent की सामग्री से मेल खाना चाहिए) - Stringlanguage- कोड की भाषा (उदा., 'java', 'python', 'js', 'ts', 'tsx', 'jsx') - Stringscope- फ़ाइल का स्कोप: MAIN या TEST (डिफ़ॉल्ट: MAIN) - String
समर्थित भाषाएँ: 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 - वर्कस्पेस माउंट होने पर (अनुशंसित):
SonarQube for IDE के साथ एकीकरण सक्षम होने पर: (ये दोनों टूल analysis और ide टूलसेट के अंतर्गत टैग किए गए हैं)
-
analyze_file_list - SonarQube for IDE का उपयोग करके मौजूदा कार्यशील डायरेक्टरी में फ़ाइलों का विश्लेषण करें। यह टूल फ़ाइलों की सूची पर कोड गुणवत्ता विश्लेषण करने के लिए चल रहे SonarQube for IDE इंस्टेंस से कनेक्ट होता है।
file_absolute_paths- विश्लेषण के लिए पूर्ण फ़ाइल पथों की सूची - आवश्यक String[]
-
toggle_automatic_analysis - SonarQube for IDE का स्वचालित विश्लेषण सक्षम या अक्षम करें। सक्षम होने पर, कार्यशील डायरेक्टरी में फ़ाइलों में बदलाव किए जाने पर SonarQube for IDE उनका स्वचालित रूप से विश्लेषण करेगा। अक्षम होने पर, स्वचालित विश्लेषण बंद रहता है।
enabled- स्वचालित विश्लेषण सक्षम या अक्षम करें - आवश्यक Boolean
SonarQube Server पर, जब CAG और A3S दोनों हब के लिए अधिकार प्राप्त हों, तो stdio Vortex संदर्भ टूल और run_advanced_code_analysis सूचीबद्ध करता है।
Vortex विश्लेषण उपलब्ध होने पर:
वर्कस्पेस को
/app/mcp-workspaceपर माउंट करना आवश्यक है
- run_advanced_code_analysis - किसी एक फ़ाइल पर Vortex विश्लेषण चलाएँ। SonarQube Server nil UUID प्लेसहोल्डर का उपयोग करता है।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल CloudprojectKey- प्रोजेक्ट की कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो इसे अनदेखा किया जाता है)branch- नवीनतम विश्लेषण संदर्भ प्राप्त करने के लिए उपयोग किया जाने वाला ब्रांच नाम - आवश्यक StringfilePath- विश्लेषण की जाने वाली फ़ाइल का प्रोजेक्ट-सापेक्ष पथ (उदा.,src/main/java/MyClass.java)। - आवश्यक StringfileScope- यह निर्धारित करता है कि फ़ाइल किस स्कोप से संबंधित है: 'MAIN' या 'TEST' (डिफ़ॉल्ट: MAIN) - String
कवरेज
-
search_files_by_coverage - किसी प्रोजेक्ट की फ़ाइलों को कवरेज के अनुसार क्रमबद्ध करके खोजें (आरोही क्रम — सबसे कम कवरेज पहले)। यह टूल उन फ़ाइलों की पहचान करने में मदद करता है जिनके टेस्ट कवरेज में सुधार की आवश्यकता है।
projectKey- खोज के लिए प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो इसे अनदेखा किया जाता है)branch- ब्रांच-आधारित विश्लेषण के लिए वैकल्पिक ब्रांच नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - StringmaxCoverage- अधिकतम कवरेज सीमा (0-100)। केवल वे फ़ाइलें लौटाएँ जिनका कवरेज इस मान से कम या बराबर हो - NumberpageIndex- पृष्ठ इंडेक्स (1 से शुरू, डिफ़ॉल्ट: 1) - NumberpageSize- पृष्ठ का आकार (डिफ़ॉल्ट: 100, अधिकतम: 500) - Number
-
get_file_coverage_details - किसी विशिष्ट फ़ाइल के लिए पंक्ति-दर-पंक्ति कवरेज जानकारी प्राप्त करें, जिसमें यह भी शामिल है कि कौन-सी सटीक पंक्तियाँ कवर नहीं हुई हैं और किनमें ब्रांच आंशिक रूप से कवर हुई हैं। यह टूल यह सटीक रूप से पहचानने में मदद करता है कि टेस्ट कवरेज कहाँ जोड़ना है। कम कवरेज वाली फ़ाइलों की पहचान search_files_by_coverage से करने के बाद इसका उपयोग करें।
key- फ़ाइल कुंजी (उदा. my_project:src/foo/Bar.java) - आवश्यक Stringbranch- ब्रांच-आधारित विश्लेषण के लिए वैकल्पिक ब्रांच नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - Stringfrom- विश्लेषण की पहली पंक्ति (1 से शुरू, डिफ़ॉल्ट: 1) - Numberto- विश्लेषण की अंतिम पंक्ति (समावेशी)। निर्दिष्ट न होने पर, सभी पंक्तियाँ लौटाई जाती हैं - Number
निर्भरता जोखिम
ध्यान दें: निर्भरता जोखिमों के लिए SonarQube Advanced Security आवश्यक है। SonarQube Server पर, संस्करण 2025.4 Enterprise या उससे उच्चतर आवश्यक है।
- search_dependency_risks - SonarQube प्रोजेक्ट के सॉफ़्टवेयर कंपोज़िशन विश्लेषण संबंधी मुद्दों (निर्भरता जोखिमों) को खोजें और उन्हें उन रिलीज़ के साथ दिखाएँ जो विश्लेषित प्रोजेक्ट, एप्लिकेशन या पोर्टफ़ोलियो में दिखाई देती हैं।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल CloudprojectKey- प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो इसे अनदेखा किया जाता है)branch- ब्रांच-आधारित विश्लेषण के लिए वैकल्पिक ब्रांच नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - StringpageIndex- वैकल्पिक पृष्ठ इंडेक्स (1 से शुरू, डिफ़ॉल्ट: 1) - IntegerpageSize- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - Integer
एंटरप्राइज़
ध्यान दें: एंटरप्राइज़ केवल SonarQube Cloud से कनेक्ट होने पर उपलब्ध हैं।
- list_enterprises - SonarQube Cloud में उपलब्ध उन एंटरप्राइज़ की सूची बनाएँ जिन तक आपकी पहुँच है। अन्य टूल के साथ उपयोग किए जा सकने वाले एंटरप्राइज़ ID खोजने के लिए इस टूल का उपयोग करें।
enterpriseKey- परिणामों को फ़िल्टर करने के लिए वैकल्पिक एंटरप्राइज़ कुंजी - String
समस्याएँ
-
change_sonar_issue_status - SonarQube समस्या की स्थिति को "accept", "falsepositive" या "reopen" में बदलें।
key- समस्या कुंजी - आवश्यक Stringstatus- समस्या की नई स्थिति - आवश्यक Enum {"accept", "falsepositive", "reopen"}comment- स्थिति में बदलाव का कारण बताने वाली वैकल्पिक टिप्पणी - String
-
search_sonar_issues_in_projects - मेरे संगठन के प्रोजेक्ट में SonarQube समस्याएँ खोजें।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल CloudprojectKeys- SonarQube प्रोजेक्ट कुंजियों की वैकल्पिक सूची - String[]branch- ब्रांच-आधारित विश्लेषण के लिए वैकल्पिक ब्रांच नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - Stringseverities- फ़िल्टर करने के लिए गंभीरता स्तरों की वैकल्पिक सूची। संभावित मान: INFO, LOW, MEDIUM, HIGH, BLOCKER - String[]impactSoftwareQualities- फ़िल्टर करने के लिए सॉफ़्टवेयर गुणवत्ता की वैकल्पिक सूची। संभावित मान: MAINTAINABILITY, RELIABILITY, SECURITY - String[]issueStatuses- फ़िल्टर करने के लिए समस्या स्थितियों की वैकल्पिक सूची। संभावित मान: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED, IN_SANDBOX - String[]tags- फ़िल्टर करने के लिए समस्या टैग की वैकल्पिक सूची। टैग लोअरकेस में होते हैं - String[]inNewCodePeriod- केवल नए कोड की अवधि की समस्याएँ लौटाएँ।projectKeysऔरfilesमें से किसी एक में ठीक एक प्रविष्टि होना आवश्यक है - BooleanissueKey- किसी विशिष्ट समस्या को प्राप्त करने के लिए वैकल्पिक समस्या कुंजी - StringpageIndex- वैकल्पिक पृष्ठ इंडेक्स (1 से शुरू, डिफ़ॉल्ट: 1) - IntegerpageSize- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - Integer
सुरक्षा हॉटस्पॉट
-
search_security_hotspots - SonarQube प्रोजेक्ट में सुरक्षा हॉटस्पॉट खोजें।
projectKey- प्रोजेक्ट या एप्लिकेशन कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो इसे अनदेखा किया जाता है)hotspotKeys- प्राप्त करने के लिए विशिष्ट सुरक्षा हॉटस्पॉट कुंजियों की अल्पविराम से अलग की गई सूची - String[]branch- ब्रांच-आधारित विश्लेषण के लिए वैकल्पिक ब्रांच नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - Stringfiles- फ़िल्टर करने के लिए फ़ाइल पथों की वैकल्पिक सूची - String[]status- वैकल्पिक स्थिति फ़िल्टर: TO_REVIEW, REVIEWED - Stringresolution- वैकल्पिक समाधान फ़िल्टर: FIXED, SAFE, ACKNOWLEDGED - StringsinceLeakPeriod- लीकेज अवधि (नया कोड) के बाद बनाए गए हॉटस्पॉट फ़िल्टर करें - BooleanonlyMine- केवल मुझे असाइन किए गए हॉटस्पॉट दिखाएँ - BooleanpageIndex- वैकल्पिक पृष्ठ इंडेक्स (1 से शुरू, डिफ़ॉल्ट: 1) - IntegerpageSize- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - Integer
-
show_security_hotspot - किसी विशिष्ट सुरक्षा हॉटस्पॉट के बारे में विस्तृत जानकारी प्राप्त करें, जिसमें नियम का विवरण, कोड संदर्भ, फ़्लो और टिप्पणियाँ शामिल हैं।
hotspotKey- सुरक्षा हॉटस्पॉट कुंजी - आवश्यक String
-
change_security_hotspot_status - सुरक्षा हॉटस्पॉट की स्थिति बदलकर उसकी समीक्षा करें। REVIEWED के रूप में चिह्नित करते समय, आपको समाधान (FIXED, SAFE या ACKNOWLEDGED) निर्दिष्ट करना होगा।
hotspotKey- सुरक्षा हॉटस्पॉट कुंजी - आवश्यक Stringstatus- नई स्थिति - आवश्यक Enum {"TO_REVIEW", "REVIEWED"}resolution- स्थिति REVIEWED होने पर समाधान - Enum {"FIXED", "SAFE", "ACKNOWLEDGED"}comment- वैकल्पिक समीक्षा टिप्पणी - String
भाषाएँ
- list_languages - इस SonarQube इंस्टेंस में समर्थित सभी प्रोग्रामिंग भाषाओं की सूची बनाएँ।
q- भाषा की कुंजियों/नामों से मिलान करने के लिए वैकल्पिक पैटर्न - String
माप
- get_component_measures - किसी घटक (प्रोजेक्ट, डायरेक्टरी, फ़ाइल) के लिए SonarQube माप प्राप्त करें।
projectKey- प्रोजेक्ट कुंजी - जबSONARQUBE_PROJECT_KEYकॉन्फ़िगर न हो, तब आवश्यक Stringbranch- ब्रांच-आधारित विश्लेषण के लिए वैकल्पिक ब्रांच नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringmetricKeys- प्राप्त करने के लिए वैकल्पिक मेट्रिक कुंजियाँ (उदा. ncloc, complexity, violations, coverage) - String[]pullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - String
मेट्रिक्स
- search_metrics - SonarQube मेट्रिक्स खोजें।
pageIndex- वैकल्पिक पृष्ठ इंडेक्स (1 से शुरू, डिफ़ॉल्ट: 1) - IntegerpageSize- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - Integer
पोर्टफ़ोलियो
-
list_portfolios - फ़िल्टर और पृष्ठांकन विकल्पों के साथ SonarQube में उपलब्ध एंटरप्राइज़ पोर्टफ़ोलियो की सूची बनाएँ।
SonarQube Server के लिए:
q- नाम या कुंजी के आधार पर पोर्टफ़ोलियो फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - Stringfavorite- true होने पर, केवल पसंदीदा पोर्टफ़ोलियो लौटाता है - BooleanpageIndex- वैकल्पिक पृष्ठ संख्या (1 से शुरू, डिफ़ॉल्ट: 1) - IntegerpageSize- वैकल्पिक पृष्ठ आकार, अधिकतम 500 (डिफ़ॉल्ट: 100) - Integer
SonarQube Cloud के लिए:
enterpriseId- Enterprise uuid. इसे केवल तभी छोड़ा जा सकता है, जब 'favorite' पैरामीटर का मान true हो - Stringq- पोर्टफ़ोलियो को नाम के आधार पर फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - Stringfavorite- यदि 'enterpriseId' पैरामीटर छोड़ा गया है, तो इसका मान true होना आवश्यक है। यदि true है, तो केवल लॉग-इन उपयोगकर्ता द्वारा पसंदीदा बनाए गए पोर्टफ़ोलियो लौटाता है। 'draft' के true होने पर इसका मान true नहीं हो सकता - Booleandraft- यदि true है, तो केवल लॉग-इन उपयोगकर्ता द्वारा बनाए गए ड्राफ़्ट लौटाता है। 'favorite' के true होने पर इसका मान true नहीं हो सकता - BooleanpageIndex- प्राप्त किए जाने वाले पृष्ठ का वैकल्पिक इंडेक्स (डिफ़ॉल्ट: 1) - IntegerpageSize- प्राप्त किए जाने वाले पृष्ठ का वैकल्पिक आकार (डिफ़ॉल्ट: 50) - Integer
प्रोजेक्ट
-
list_organizations - उन SonarQube Cloud संगठनों की सूची बनाएँ जिनका उपयोगकर्ता सदस्य है; इसमें कुंजियाँ, नाम, ID और UUID शामिल हैं। बाद के टूल में लौटाई गई कुंजी को
organizationके रूप में उपयोग करें। -
search_my_sonarqube_projects - SonarQube प्रोजेक्ट खोजें। प्रतिक्रिया पृष्ठांकित होती है।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल CloudpageIndex- वैकल्पिक 1-आधारित पृष्ठ इंडेक्स (डिफ़ॉल्ट: 1) - IntegerpageSize- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 500) - Integerq- प्रोजेक्ट को नाम (आंशिक मिलान) या कुंजी (सटीक मिलान) के आधार पर फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - String
-
list_branches - किसी प्रोजेक्ट की विश्लेषित शाखाओं की सूची बनाएँ।
- SonarQube Cloud: दीर्घकालिक (
LONG) और अल्पकालिक (SHORT) शाखाएँ,typeऔरmergeBranchफ़ील्ड के साथ लौटाता है। वैकल्पिकbranchTypesफ़िल्टर:ALL(डिफ़ॉल्ट),LONG, याSHORT। - SonarQube Server: सभी विश्लेषित शाखाएँ लौटाता है (नाम, क्वालिटी गेट, विश्लेषण की तारीख)। कोई
type,mergeBranch, याbranchTypesफ़िल्टर नहीं। - लौटाए गए शाखा नामों को अन्य टूल में
branchपैरामीटर के रूप में उपयोग करें। पुल रिक्वेस्ट विश्लेषण के लिए, इसके बजायlist_pull_requestsका उपयोग करें। projectKey- प्रोजेक्ट कुंजी (उदा. my_project) - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो अनदेखा किया जाता है)branchTypes- (केवल SonarQube Cloud) वैकल्पिक फ़िल्टर:ALL(डिफ़ॉल्ट),LONG, याSHORT- Enum {"ALL", "LONG", "SHORT"}
- SonarQube Cloud: दीर्घकालिक (
-
list_pull_requests - किसी प्रोजेक्ट के सभी पुल रिक्वेस्ट की सूची बनाएँ। PR-डेकोरेटेड विश्लेषण (कवरेज, समस्याएँ, क्वालिटी गेट) के लिए पुल रिक्वेस्ट खोजने हेतु इस टूल का उपयोग करें। यह पुल रिक्वेस्ट कुंजी/ID लौटाता है, जिसका उपयोग अन्य टूल के साथ किया जा सकता है। पुल रिक्वेस्ट के बिना शाखा-आधारित विश्लेषण के लिए, इसके बजाय
list_branchesका उपयोग करें।projectKey- प्रोजेक्ट कुंजी (उदा. my_project) - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो अनदेखा किया जाता है)
क्वालिटी गेट
-
get_project_quality_gate_status - SonarQube प्रोजेक्ट का क्वालिटी गेट स्टेटस प्राप्त करें।
analysisId- वैकल्पिक विश्लेषण ID - Stringbranch- शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringprojectId- वैकल्पिक प्रोजेक्ट ID - StringprojectKey- वैकल्पिक प्रोजेक्ट कुंजी - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - String
-
list_quality_gates - मेरे SonarQube के सभी क्वालिटी गेट की सूची बनाएँ।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल Cloud
नियम
- show_rule - SonarQube नियम के बारे में विस्तृत जानकारी दिखाता है।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल Cloudkey- नियम कुंजी - आवश्यक String
डुप्लिकेशन
-
search_duplicated_files - SonarQube प्रोजेक्ट में कोड डुप्लिकेशन वाली फ़ाइलें खोजें। डिफ़ॉल्ट रूप से, सभी पृष्ठों में मौजूद सभी डुप्लिकेट फ़ाइलें (अधिकतम 10,000 फ़ाइलें) अपने-आप प्राप्त करता है। केवल डुप्लिकेशन वाली फ़ाइलें लौटाता है।
projectKey- प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो अनदेखा किया जाता है)branch- शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - StringpageSize- मैन्युअल पृष्ठांकन के लिए प्रति पृष्ठ परिणामों की वैकल्पिक संख्या (अधिकतम: 500)। निर्दिष्ट न होने पर, सभी डुप्लिकेट फ़ाइलें अपने-आप प्राप्त करता है - IntegerpageIndex- मैन्युअल पृष्ठांकन के लिए वैकल्पिक पृष्ठ संख्या (1 से शुरू होती है)। निर्दिष्ट न होने पर, सभी डुप्लिकेट फ़ाइलें अपने-आप प्राप्त करता है - Integer
-
get_duplications - किसी फ़ाइल के डुप्लिकेशन प्राप्त करें। फ़ाइल के प्रोजेक्ट पर Browse अनुमति आवश्यक है।
key- फ़ाइल कुंजी - आवश्यक Stringbranch- शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - String
स्रोत
-
get_raw_source - SonarQube से स्रोत कोड को कच्चे टेक्स्ट के रूप में प्राप्त करें। फ़ाइल पर 'See Source Code' अनुमति आवश्यक है।
key- फ़ाइल कुंजी - आवश्यक Stringbranch- शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - StringpullRequest- वैकल्पिक पुल रिक्वेस्ट कुंजी/ID। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - String
-
get_scm_info - SonarQube स्रोत फ़ाइलों की SCM जानकारी प्राप्त करें। फ़ाइल के प्रोजेक्ट पर See Source Code अनुमति आवश्यक है।
key- फ़ाइल कुंजी - आवश्यक Stringcommits_by_line- यदि मान false है, तो पंक्तियों को SCM कमिट के अनुसार समूहित करें; अन्यथा, प्रत्येक पंक्ति के लिए कमिट दिखाएँ - Stringfrom- लौटाई जाने वाली पहली पंक्ति। 1 से शुरू होती है - Numberto- लौटाई जाने वाली अंतिम पंक्ति (समावेशी) - Number
सिस्टम
ध्यान दें: सिस्टम टूल केवल SonarQube Server से कनेक्ट होने पर उपलब्ध होते हैं।
-
get_system_health - SonarQube Server इंस्टेंस की स्वास्थ्य स्थिति प्राप्त करें। GREEN (पूरी तरह चालू), YELLOW (उपयोग योग्य, लेकिन ध्यान देने की आवश्यकता है), या RED (चालू नहीं) लौटाता है।
-
get_system_info - SonarQube Server सिस्टम कॉन्फ़िगरेशन के बारे में विस्तृत जानकारी प्राप्त करें, जिसमें JVM स्थिति, डेटाबेस, खोज इंडेक्स और सेटिंग शामिल हैं। 'Administer' अनुमतियाँ आवश्यक हैं।
-
get_system_logs - SonarQube Server सिस्टम लॉग को सादे टेक्स्ट फ़ॉर्मैट में प्राप्त करें। सिस्टम प्रशासन की अनुमति आवश्यक है।
name- प्राप्त किए जाने वाले लॉग का वैकल्पिक नाम। संभावित मान: access, app, ce, deprecation, es, web। डिफ़ॉल्ट: app - String
-
ping_system - SonarQube Server सिस्टम के चालू होने की जाँच के लिए उसे पिंग करें। सादे टेक्स्ट के रूप में 'pong' लौटाता है।
-
get_system_status - SonarQube Server की स्थिति संबंधी जानकारी प्राप्त करें। status (STARTING, UP, DOWN, RESTARTING, DB_MIGRATION_NEEDED, DB_MIGRATION_RUNNING), version और id लौटाता है।
Webhook
-
create_webhook - SonarQube संगठन या प्रोजेक्ट के लिए नया webhook बनाएँ। निर्दिष्ट प्रोजेक्ट पर 'Administer' अनुमति या वैश्विक 'Administer' अनुमति आवश्यक है।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल Cloudname- Webhook का नाम - आवश्यक Stringurl- Webhook URL - आवश्यक StringprojectKey- प्रोजेक्ट-विशिष्ट webhook के लिए वैकल्पिक प्रोजेक्ट कुंजी - Stringsecret- webhook पेलोड को सुरक्षित करने के लिए वैकल्पिक webhook secret - String
-
list_webhooks - SonarQube संगठन या प्रोजेक्ट के सभी webhook की सूची बनाएँ। निर्दिष्ट प्रोजेक्ट पर 'Administer' अनुमति या वैश्विक 'Administer' अनुमति आवश्यक है।
organization- SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल CloudprojectKey- प्रोजेक्ट-विशिष्ट webhook की सूची बनाने के लिए वैकल्पिक प्रोजेक्ट कुंजी - String
संदर्भ संवर्धन
आर्किटेक्चर टूल
-
search_by_signature_patterns - regex पैटर्न का उपयोग करके, घोषणा सिग्नेचर के आधार पर कोड एलिमेंट (क्लास, मेथड, इंटरफ़ेस, ...) खोजें।
include_code_regex_list- सिग्नेचर से मिलान करने के लिए regex पैटर्न की सूची - आवश्यक String[]exclude_code_regex_list- परिणामों से बाहर रखने के लिए regex पैटर्न की सूची - String[]include_glob- फ़ाइल फ़िल्टर glob पैटर्न (उदा.,*.java) - Stringexclude_glob- फ़ाइल बहिष्करण glob पैटर्न - Stringfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम से अलग की गई सूची - Stringlimit- लौटाए जाने वाले परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 10) - Integerregex_lists_operator- एक से अधिक पैटर्न को संयोजित करने का तरीका:OR(डिफ़ॉल्ट) याAND- String
-
search_by_body_patterns - regex पैटर्न का उपयोग करके, कार्यान्वयन बॉडी के आधार पर कोड एलिमेंट खोजें। यह पता लगाने के लिए उपयोगी है कि API या पैटर्न वास्तव में कहाँ उपयोग किए जाते हैं।
include_code_regex_list- कोड बॉडी में मिलान करने के लिए regex पैटर्न की सूची - आवश्यक String[]exclude_code_regex_list- परिणामों से बाहर रखने के लिए regex पैटर्न की सूची - String[]include_glob- फ़ाइल फ़िल्टर glob पैटर्न - Stringexclude_glob- फ़ाइल बहिष्करण glob पैटर्न - Stringfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम से अलग की गई सूची - Stringlimit- लौटाए जाने वाले परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 10) - Integerregex_lists_operator- एक से अधिक पैटर्न को संयोजित करने का तरीका:OR(डिफ़ॉल्ट) याAND- String
-
get_upstream_call_flow - पता लगाएँ कि कौन-से फ़ंक्शन किसी दिए गए फ़ंक्शन को कॉल करते हैं। सभी कॉलर और एंट्री पॉइंट खोजने तथा सिग्नेचर बदलने पर क्या टूटेगा, यह समझने के लिए उपयोगी है।
fqn- फ़ंक्शन का पूरी तरह क्वालिफ़ाइड नाम - आवश्यक Stringdepth- कॉल चेन की गहराई (0=केवल फ़ंक्शन, 1=सीधे कॉलर, आदि) - Integerfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम से अलग की गई सूची - String
-
get_downstream_call_flow - पता लगाएँ कि कोई दिया गया फ़ंक्शन किन फ़ंक्शन को कॉल करता है। प्रभाव विश्लेषण और निष्पादन प्रवाह को समझने के लिए उपयोगी है।
fqn- फ़ंक्शन का पूरी तरह क्वालिफ़ाइड नाम - आवश्यक Stringdepth- कॉल चेन की गहराई (0=केवल फ़ंक्शन, 1=सीधे कॉल किए गए फ़ंक्शन, आदि) - Integerfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम से अलग की गई सूची - String
-
get_source_code - किसी कोड एलिमेंट का पूरी तरह क्वालिफ़ाइड नाम देकर उसका पूरा स्रोत कोड (सिग्नेचर और बॉडी) प्राप्त करें।
fqn- एलिमेंट का पूरी तरह क्वालिफ़ाइड नाम - आवश्यक Stringfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम से अलग की गई सूची - String
-
get_type_hierarchy - क्लास-जैसी संरचना (क्लास, इंटरफ़ेस, enum, रिकॉर्ड, अपवाद, struct) के लिए पूरी इनहेरिटेंस पदानुक्रम प्राप्त करें। इनहेरिटेंस ट्री समझने और रीफ़ैक्टरिंग के लिए आवश्यक।
fqn- क्लास-जैसी संरचना का पूरी तरह क्वालिफ़ाइड नाम - आवश्यक Stringfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम से अलग की गई सूची - String
-
get_references - किसी क्लास या मॉड्यूल के सीधे इनबाउंड और आउटबाउंड कोड संदर्भ प्राप्त करें। केवल सीधे (गैर-ट्रांज़िटिव) संदर्भ लौटाता है।
fqn- क्लास या मॉड्यूल का पूरी तरह क्वालिफ़ाइड नाम - आवश्यक Stringfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम से अलग की गई सूची - String
-
get_current_architecture - पाथ प्रीफ़िक्स और गहराई के आधार पर फ़िल्टर किया गया पदानुक्रमित आर्किटेक्चर ग्राफ़ प्राप्त करें। मॉड्यूल संरचना और उच्च-स्तरीय निर्भरताएँ देखने के लिए उपयोगी है।
depth- पदानुक्रम की गहराई (0=केवल रूट, 1=रूट + चिल्ड्रेन, आदि) - आवश्यक Integerpath_prefix- नोड फ़िल्टर करने के लिए वैकल्पिक पाथ प्रीफ़िक्स (उदा.,com.example.service) - Stringecosystem- फ़िल्टर करने के लिए वैकल्पिक इकोसिस्टम (java,cs,py,js,ts) - String
-
get_intended_architecture - उपयोगकर्ता द्वारा परिभाषित वास्तुशिल्पीय बाधाएँ प्राप्त करें, जो निर्दिष्ट करती हैं कि किन मॉड्यूलों को अन्य मॉड्यूलों पर निर्भर रहने की अनुमति है।
दिशानिर्देश टूल
- get_guidelines - SonarQube प्रोजेक्ट की समस्याओं, कैटलॉग श्रेणियों या दोनों के संयोजन के आधार पर कोडिंग दिशानिर्देश प्राप्त करें।
mode- दिशानिर्देश प्राप्ति मोड:project_based,category_based, याcombined- आवश्यक Stringcategories- श्रेणी नामों की सूची (category_basedऔरcombinedमोड के लिए आवश्यक) - String[]languages- SonarQube रिपॉज़िटरी कुंजी प्रारूप में लक्षित भाषाओं की सूची (categoriesदिए जाने पर आवश्यक) - String[]file_paths- दिशानिर्देशों को फ़िल्टर करने के लिए फ़ाइल पथों की वैकल्पिक सूची - String[]
तृतीय-पक्ष निर्भरता टूल
- check_dependency - किसी तृतीय-पक्ष निर्भरता को जोड़ने या अपडेट करने से पहले, सुरक्षा कमज़ोरियों, सप्लाई-चेन मैलवेयर और लाइसेंस अनुपालन के लिए उसकी जाँच करें।
purl- संस्करण सहित पैकेज URL (purl), purl-spec के अनुसार। प्रारूप:pkg:<type>/<namespace>/<name>@<version>(उदाहरण के लिएpkg:npm/lodash@4.17.21,pkg:maven/org.apache.logging.log4j/log4j-core@2.14.1,pkg:pypi/django@3.2.0) - आवश्यक String
संदर्भ संवर्धन पर्यावरण चर
| Variable | Description | Required | Default |
|---|---|---|---|
SONARQUBE_URL | SonarQube Cloud URL | Yes | https://sonarcloud.io |
SONARQUBE_TOKEN | प्रमाणीकरण टोकन | Yes | None |
SONARQUBE_ORG | Cloud संगठन; स्टार्टअप कॉन्फ़िगरेशन या विशिष्ट पहचान से प्रॉक्सी को दिया जाता है | No | None |
SONARQUBE_PROJECT_KEY | SonarQube Cloud पर प्रोजेक्ट कुंजी | Yes | None |
SONAR_SQ_BRANCH | स्पष्ट SonarQube शाखा ओवरराइड * | No | None |
SONARQUBE_DEBUG_ENABLED | डीबग लॉगिंग सक्रिय करें (समस्या निवारण के लिए) | No | False |
SONAR_LOG_LEVEL | लॉगिंग की विस्तृतता (TRACE, DEBUG, INFO, WARNING, ERROR) | No | INFO |
- जब git का उपयोग न किया जा रहा हो, या git शाखा का नाम SonarQube में शाखा के नाम से मेल न खाता हो, तब इसे प्रदान करें।
प्रोजेक्ट-विशिष्ट कॉन्फ़िगरेशन (अनुशंसित)
पहले, अपने प्रोजेक्ट के लिए मान्य Personal Access Token (PAT) के साथ SONARQUBE_TOKEN पर्यावरण चर एक्सपोर्ट करें।
# macOS/Linux (Bash/Zsh)
export SONARQUBE_TOKEN="{<YourUserToken>}"
इसके बाद, Context Augmentation सर्वर को आपकी स्रोत फ़ाइलों तक सीधी पहुँच देने के लिए प्रोजेक्ट वर्कस्पेस माउंट करें:
{
"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"
}
}
}
}
महत्वपूर्ण: प्रोजेक्ट-स्कोप्ड कॉन्फ़िगरेशन में, env ब्लॉक में SONARQUBE_TOKEN न रखें। इसे पर्यावरण चर (export SONARQUBE_TOKEN=...) के रूप में एक्सपोर्ट करें। Docker इसे -e SONARQUBE_TOKEN के माध्यम से कंटेनर में फ़ॉरवर्ड करेगा।
एजेंटिक तत्परता
ध्यान दें: Agentic Readiness टूल केवल SonarQube Cloud पर उपलब्ध हैं और इनके लिए आपके संगठन में यह सुविधा सक्षम होना आवश्यक है।
stdio मोड में स्टार्टअप के समय फ़ीचर फ़्लैग की जाँच की जाती है। HTTP/HTTPS पर, टूल सक्षम करने के लिए सर्वर के SONARQUBE_TOOLSETS में agentic-readiness जोड़ें।
-
start_agentic_readiness_assessment - किसी प्रोजेक्ट के लिए एजेंटिक तत्परता आकलन शुरू करें। यह स्थिति
PENDINGऔर एकassessmentIdके साथ तुरंत लौटता है। परिणामों की जाँच के लिएget_agentic_readiness_assessmentका उपयोग करें।projectKey- प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो अनदेखा किया जाता है)branch- आकलन के लिए शाखा। प्रोजेक्ट की डिफ़ॉल्ट शाखा का उपयोग करने के लिए इसे छोड़ दें - String
-
get_agentic_readiness_assessment - आकलन का परिणाम प्राप्त करें। स्थिति
COMPLETED,FAILED, याINTERRUPTEDहोने तक उसीassessmentIdके साथ फिर से कॉल करें। पूरा होने पर, यह समग्र स्तर और अनुशंसित कार्रवाइयों तथा साक्ष्यों सहित प्रत्येक स्तंभ का विवरण लौटाता है।assessmentId-start_agentic_readiness_assessmentद्वारा लौटाई गई आकलन ID - आवश्यक String
-
list_agentic_readiness_assessments - किसी प्रोजेक्ट के सभी आकलनों की सूची, नवीनतम पहले, दिखाएँ। स्तंभ-स्तर के पूरे परिणामों के लिए
get_agentic_readiness_assessmentका उपयोग करें।projectKey- उन आकलनों की सूची के लिए प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो अनदेखा किया जाता है)branch- शाखा नाम के अनुसार आकलन फ़िल्टर करें। सभी शाखाओं के आकलन सूचीबद्ध करने के लिए इसे छोड़ दें - StringpageIndex- 1 से शुरू होने वाला पृष्ठ सूचकांक (डिफ़ॉल्ट: 1) - NumberpageSize- प्रति पृष्ठ आइटमों की संख्या, अधिकतम 100 (डिफ़ॉल्ट: 50) - Number
वास्तुकला
ध्यान दें: stdio या HTTP/HTTPS मोड में SONARQUBE_TOOLSETS=architecture के साथ इन टूलों को सक्षम करें। SonarQube Cloud के लिए Team या Enterprise प्लान आवश्यक है। SonarQube Server के लिए संस्करण 2026.6 या बाद का और Developer संस्करण या उससे उच्चतर आवश्यक है; पुराने संस्करणों या Community Build पर ये टूल उपलब्ध नहीं हैं। वास्तुकला वर्कफ़्लो और पुनर्प्राप्ति देखें।
-
architecture_get - मौजूदा निर्भरताएँ, अभिप्रेत वास्तुकला, प्रोजेक्ट निर्देश या निष्कर्ष (विचलन, खामियाँ और कोड गंध) पढ़ें।
target-current,intended,directivesयाfindings; उपलब्धता MCP और Server बिल्ड पर निर्भर करती है - आवश्यक EnumprojectKey- प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो अनदेखा किया जाता है)organization- कोई कॉन्फ़िगर की गई कुंजी न होने पर SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल Cloudcomponent- सटीक मौजूदा नोड कुंजी या अभिप्रेत समूह पथ; छोड़े जाने पर शीर्ष स्तर - Stringdepth- केवल मौजूदा/अभिप्रेत: शुरुआती स्तर से नीचे के स्तर; मौजूदा के लिए डिफ़ॉल्ट 1, अभिप्रेत के लिए सभी - Numberlanguage- केवल मौजूदा/अभिप्रेत/निष्कर्ष:java,cs,js,tsयाpy- EnumdirectiveId- UUID के अनुसार पूरा निर्देश, विवरण सहित; पेजिंग के बजाय इसका उपयोग करें - Stringcategory/type- केवल निष्कर्ष: विज्ञापित प्रकार के अनुसार विचलन, खामियाँ या कोड गंध फ़िल्टर करें - EnumpageIndex- केवल निर्देश/निष्कर्ष: 1 से शुरू होने वाला पृष्ठ सूचकांक (डिफ़ॉल्ट: 1) - NumberpageSize- निर्देश: सारांश, डिफ़ॉल्ट/अधिकतम 50। निष्कर्ष: डिफ़ॉल्ट 50, अधिकतम 1000; 0 का अर्थ केवल गिनती - Number
-
architecture_set - पूरी अभिप्रेत वास्तुकला बदलें या प्रोजेक्ट निर्देश बनाएँ, अपडेट करें और हटाएँ। लेखन सक्षम होने पर समर्थित Cloud और Server बिल्ड पर उपलब्ध।
target-intendedयाdirectives- आवश्यक EnumprojectKey- प्रोजेक्ट कुंजी - आवश्यक String (यदिSONARQUBE_PROJECT_KEYपरिभाषित है, तो अनदेखा किया जाता है)organization- कोई कॉन्फ़िगर की गई कुंजी न होने पर SonarQube Cloud संगठन कुंजी - वैकल्पिक String, केवल Cloudmodel- JSON स्ट्रिंग: पूरा अभिप्रेत एक्सपोर्ट याmodelsऐरे (छोड़ी गई सामग्री हटा दी जाती है), याcreate,updateऔरdeleteऐरे वाले निर्देश परिवर्तन - आवश्यक StringdryRun- पूर्वावलोकन के लिएtrue, लागू करने के लिएfalse- आवश्यक Booleanrevision- केवल अभिप्रेत:architecture_getसे संशोधन; डिफ़ॉल्ट रूप से पूरे एक्सपोर्ट का संशोधन। क्लियर लागू करते समय आवश्यक - String
उदाहरण प्रॉम्प्ट
SonarQube MCP Server सेट अप करने के बाद, सामान्य वास्तविक परिस्थितियों के लिए यहाँ कुछ उदाहरण प्रॉम्प्ट दिए गए हैं:
विफल क्वालिटी गेट को ठीक करना
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?
रिलीज़-पूर्व और मर्ज-पूर्व जाँचें
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?
कोड गुणवत्ता में सुधार
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?
समस्याओं को समझना और ठीक करना
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?
सुरक्षा और निर्भरता प्रबंधन
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.
कोड समीक्षा में सहायता
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.
प्रोजेक्ट स्वास्थ्य की निगरानी
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?
टीम सहयोग
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?
बिल्ड
sonarsource/sonarqube-mcp कंटेनर इमेज को प्राथमिकता दें।
Docker के बिना सर्वर को स्टैंडअलोन JAR के रूप में चलाने के लिए, SonarSource बाइनरी रिपॉज़िटरी से पहले से निर्मित रिलीज़ डाउनलोड करें। हर रिलीज़ किया गया संस्करण वहाँ sonarqube-mcp-server-<version>.jar के रूप में प्रकाशित होता है (उदाहरण के लिए, sonarqube-mcp-server-1.19.0.2785.jar)।
JAR से चलाएँ
बाइनरी रिपॉज़िटरी से इच्छित संस्करण का JAR डाउनलोड करें, फिर अपने MCP क्लाइंट को Java 21 या बाद के संस्करण के साथ चलाने के लिए कॉन्फ़िगर करें:
- SonarQube Cloud से कनेक्ट करने के लिए:
{
"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 से कनेक्ट करने के लिए:
{
"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>"
}
}
}
सोर्स से बिल्ड करें
SonarQube MCP Server को बिल्ड करने के लिए Java Development Kit (JDK) संस्करण 21 या बाद का आवश्यक है।
प्रोजेक्ट को साफ़ करने और एप्लिकेशन बिल्ड करने के लिए निम्न Gradle कमांड चलाएँ:
./gradlew clean build -x test
JAR फ़ाइल build/libs/ में बनाई जाएगी।
निर्भरताएँ जोड़ने या अपडेट करने के बाद, लॉक फ़ाइलें फिर से बनाएँ:
./gradlew :dependencies --write-locks
./gradlew :its:dependencies --write-locks
ऊपर दिए गए JAR से चलाएँ कॉन्फ़िगरेशन का उपयोग करें और <path_to_sonarqube_mcp_server_jar> को build/libs/ में मौजूद JAR पर सेट करें।
समस्या निवारण
डिफ़ॉल्ट रूप से, एप्लिकेशन लॉग STORAGE_PATH/logs/mcp.log फ़ाइल में लिखे जाते हैं। फ़ाइल लॉगिंग पूरी तरह बंद करने के लिए, SONARQUBE_LOG_TO_FILE_DISABLED=true सेट करें।
सामान्य समस्याएँ
"SonarQube server version is not supported"
MCP सर्वर स्टार्टअप के दौरान कनेक्ट किए गए SonarQube Server संस्करण की जाँच करता है। यदि इंस्टेंस 2025.1 (SQS) या 25.1 (SQCB) से पुराना है, तो स्टार्टअप इस संदेश के साथ विफल हो जाता है:
SonarQube server version is not supported, minimal version is SQS 2025.1 or SQCB 25.1
समाधान: SonarQube Server को समर्थित रिलीज़ में अपग्रेड करें। यह जाँच केवल SonarQube Server से कनेक्ट करते समय लागू होती है (SONARQUBE_URL बिना SONARQUBE_ORG के), SonarQube Cloud से कनेक्ट करते समय नहीं।
"Feature is not working" या "Missing tools/functionality"
हो सकता है कि आप पुरानी Docker इमेज चला रहे हों। Docker इमेज को स्थानीय रूप से कैश करता है, इसलिए आपको अपडेट अपने-आप नहीं मिलेंगे।
समाधान: नवीनतम संस्करण पर अपडेट करें:
docker pull sonarsource/sonarqube-mcp
नवीनतम इमेज पुल करने के बाद, अपडेट किया गया संस्करण उपयोग करने के लिए अपने MCP क्लाइंट को रीस्टार्ट करें।
वैकल्पिक रूप से, नवीनतम संस्करण की जाँच और उसे पुल करने के लिए अपने docker run कमांड में --pull=always फ़्लैग जोड़ें:
docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_ORG sonarsource/sonarqube-mcp
"I want to pin to a specific version"
sonarsource/sonarqube-mcp पर उपलब्ध टैग देखें और इच्छित संस्करण का संदर्भ दें:
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 क्लाइंट कॉन्फ़िगरेशन में, sonarsource/sonarqube-mcp के बजाय sonarsource/sonarqube-mcp:<version> का उपयोग करें और --pull=always हटाएँ, ताकि Docker चुपचाप इमेज अपग्रेड न करे।
डेटा और टेलीमेट्री
यह सर्वर अनाम उपयोग डेटा एकत्र करता है और उत्पाद को बेहतर बनाने में मदद के लिए इसे SonarSource को भेजता है। कोई स्रोत कोड या IP पता एकत्र नहीं किया जाता, और SonarSource यह डेटा किसी अन्य के साथ साझा नहीं करता। टेलीमेट्री संग्रह को निम्नलिखित सिस्टम प्रॉपर्टी या पर्यावरण चर से अक्षम किया जा सकता है: TELEMETRY_DISABLED=true। एकत्र किए जाने वाले डेटा का नमूना देखने के लिए यहाँ क्लिक करें।
लाइसेंस
कॉपीराइट 2025 SonarSource।
SONAR Source-Available License v1.0 के अंतर्गत लाइसेंस प्राप्त।
इस दस्तावेज़ के अनुपालन में SonarQube MCP Server का उपयोग एक गैर-प्रतिस्पर्धी उद्देश्य है, इसलिए SSAL के अंतर्गत इसकी अनुमति है।
MCP के माध्यम से SonarQube का आपका उपयोग SonarQube Cloud Terms of Service या SonarQube Server Terms and Conditions द्वारा नियंत्रित होता है। इसमें Results Data का उपयोग केवल आपके आंतरिक सॉफ़्टवेयर विकास उद्देश्यों के लिए करना भी शामिल है।