SonarQube MCP Server
आधिकारिकSonarQube सर्वर या क्लाउड के साथ सहज एकीकरण प्रदान करता है, और एजेंट संदर्भ में सीधे कोड स्निपेट का विश्लेषण सक्षम करता है
दस्तावेज़
SonarQube MCP सर्वर
SonarQube MCP सर्वर एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर है जो कोड गुणवत्ता और सुरक्षा के लिए SonarQube सर्वर या क्लाउड के साथ सहज एकीकरण सक्षम करता है। यह एजेंट संदर्भ में सीधे कोड स्निपेट के विश्लेषण का भी समर्थन करता है।
त्वरित सेटअप
सुरक्षा सर्वोत्तम अभ्यास
🔒 महत्वपूर्ण: आपका SonarQube टोकन एक संवेदनशील क्रेडेंशियल है। इन सुरक्षा प्रथाओं का पालन करें:
CLI कमांड का उपयोग करते समय:
- कमांड-लाइन तर्कों में टोकन हार्डकोड करने से बचें – वे शेल इतिहास में सहेजे जाते हैं
- एनवायरनमेंट वेरिएबल का उपयोग करें – कमांड चलाने से पहले एनवायरनमेंट वेरिएबल में टोकन सेट करें
कॉन्फ़िगरेशन फ़ाइलों का उपयोग करते समय:
- टोकन को कभी भी वर्शन कंट्रोल में कमिट न करें
- जब संभव हो कॉन्फ़िग फ़ाइलों में एनवायरनमेंट वेरिएबल प्रतिस्थापन का उपयोग करें
🚀 अपना कॉन्फ़िगरेशन जनरेट करें
आरंभ करने का सबसे तेज़ तरीका SonarQube MCP सर्वर कॉन्फ़िगरेशन जनरेटर है – एक इंटरैक्टिव टूल जो आपके पसंदीदा AI एजेंट क्लाइंट के लिए उपयोग के लिए तैयार कॉन्फ़िगरेशन तैयार करता है।
मैन्युअल सेटअप
यदि आप स्वयं चीज़ों को कॉन्फ़िगर करना पसंद करते हैं, तो सबसे सरल विधि sonarsource/sonarqube-mcp पर हमारी कंटेनर इमेज का उपयोग करना है। स्वचालित अपडेट के लिए sonarsource/sonarqube-mcp का उपयोग करें (--pull=always के साथ), या पुनरुत्पादनीय परिनियोजन के लिए एक वर्शन टैग (जैसे, sonarsource/sonarqube-mcp:1.19.0.2785) पर पिन करें। यदि आप इसे स्थानीय रूप से बनाना चाहते हैं तो नीचे पढ़ें।
नोट: जबकि नीचे दिए गए उदाहरण
dockerका उपयोग करते हैं, कोई भी OCI-संगत कंटेनर रनटाइम काम करता है (जैसे, Podman, nerdctl)। बसdockerको अपने पसंदीदा टूल से बदलें।
Antigravity
SonarQube MCP सर्वर Antigravity MCP स्टोर में उपलब्ध है। इन निर्देशों का पालन करें:
- एजेंट साइड पैनल खोलें
- शीर्ष दाईं ओर तीन बिंदुओं (...) पर क्लिक करें और MCP सर्वर चुनें
SonarQubeखोजें और इंस्टॉल करें चुनें- आवश्यक SonarQube उपयोगकर्ता टोकन प्रदान करें। यदि आप SonarQube क्लाउड से कनेक्ट कर रहे हैं तो आप अपनी संगठन कुंजी या SonarQube सर्वर से कनेक्ट करने पर SonarQube URL भी प्रदान कर सकते हैं।
SonarQube क्लाउड US के लिए, URL को https://sonarqube.us पर सेट करें।
वैकल्पिक रूप से, आप mcp_config.json के माध्यम से सर्वर को मैन्युअल रूप से कॉन्फ़िगर कर सकते हैं:
- SonarQube क्लाउड से कनेक्ट करने के लिए:
एजेंट साइड पैनल में, तीन बिंदुओं (...) -> MCP स्टोर -> MCP सर्वर प्रबंधित करें -> रॉ कॉन्फ़िग देखें पर क्लिक करें, और निम्नलिखित जोड़ें:
{
"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 क्लाउड US के लिए, env अनुभाग में मैन्युअल रूप से "SONARQUBE_URL": "https://sonarqube.us" और args सरणी में "-e", "SONARQUBE_URL" जोड़ें।
- SonarQube सर्वर से कनेक्ट करने के लिए:
{
"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 क्लाउड से कनेक्ट करने के लिए:
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 क्लाउड US के लिए, कमांड में --env SONARQUBE_URL=https://sonarqube.us जोड़ें।
- SonarQube सर्वर से कनेक्ट करने के लिए:
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 क्लाउड से कनेक्ट करने के लिए:
[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 क्लाउड US के लिए, env अनुभाग में "SONARQUBE_URL" = "https://sonarqube.us" और args सरणी में "-e", "SONARQUBE_URL" जोड़ें।
- SonarQube सर्वर से कनेक्ट करने के लिए:
[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 क्लाउड से कनेक्ट करने के लिए:
SonarQube क्लाउड US के लिए, इंस्टॉलेशन के बाद अपने MCP कॉन्फ़िगरेशन में env अनुभाग में मैन्युअल रूप से "SONARQUBE_URL": "https://sonarqube.us" जोड़ें।
- SonarQube सर्वर से कनेक्ट करने के लिए:
Gemini CLI
नोट: Gemini CLI एक्सटेंशन sonarqube-agent-plugins रिपॉजिटरी में स्थानांतरित हो गया है। कृपया इसे अब वहीं से इंस्टॉल करें।
आप निम्नलिखित कमांड का उपयोग करके हमारा MCP सर्वर एक्सटेंशन इंस्टॉल कर सकते हैं:
gemini extensions install https://github.com/SonarSource/sonarqube-agent-plugins
Gemini शुरू करने से पहले आपको आवश्यक एनवायरनमेंट वेरिएबल सेट करने होंगे:
आवश्यक एनवायरनमेंट वेरिएबल:
-
SonarQube क्लाउड के लिए:
SONARQUBE_TOKEN- आपका SonarQube क्लाउड टोकनSONARQUBE_ORG- आपकी संगठन कुंजीSONARQUBE_URL- (वैकल्पिक) SonarQube क्लाउड US के लिएhttps://sonarqube.usपर सेट करें
-
SonarQube सर्वर के लिए:
SONARQUBE_TOKEN- आपका SonarQube सर्वर USER टोकनSONARQUBE_URL- आपका SonarQube सर्वर URL
एक बार इंस्टॉल हो जाने पर, एक्सटेंशन <home>/.gemini/extensions/sonarqube/gemini-extension.json के अंतर्गत इंस्टॉल हो जाएगा।
GitHub Copilot CLI
Copilot CLI शुरू करने के बाद, SonarQube MCP सर्वर जोड़ने के लिए निम्नलिखित कमांड चलाएँ:
/mcp add
आपको MCP सर्वर के बारे में विभिन्न जानकारी प्रदान करनी होगी, आप फ़ील्ड के बीच नेविगेट करने के लिए टैब का उपयोग कर सकते हैं।
- SonarQube क्लाउड से कनेक्ट करने के लिए:
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 क्लाउड US के लिए, तर्कों में -e, SONARQUBE_URL और एनवायरनमेंट वेरिएबल में SONARQUBE_URL=https://sonarqube.us जोड़ें।
- SonarQube सर्वर से कनेक्ट करने के लिए:
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 कोडिंग एजेंट
GitHub Copilot कोडिंग एजेंट आपके CI/CD में सीधे SonarQube MCP सर्वर का लाभ उठा सकता है।
अपने Copilot एनवायरनमेंट में सीक्रेट जोड़ने के लिए, Copilot दस्तावेज़ीकरण का पालन करें। केवल COPILOT_MCP_ से उपसर्गित नामों वाले सीक्रेट आपके MCP कॉन्फ़िगरेशन के लिए उपलब्ध होंगे।
अपने GitHub रिपॉजिटरी में, Settings -> Copilot -> Coding agent के अंतर्गत नेविगेट करें, और MCP कॉन्फ़िगरेशन अनुभाग में निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
- SonarQube क्लाउड से कनेक्ट करने के लिए:
{
"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 क्लाउड US के लिए, args सरणी में "-e", "SONARQUBE_URL" और env अनुभाग में "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL" जोड़ें, फिर सीक्रेट COPILOT_MCP_SONARQUBE_URL=https://sonarqube.us सेट करें।
- SonarQube सर्वर से कनेक्ट करने के लिए:
{
"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 क्लाउड से कनेक्ट करने के लिए:
{
"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 क्लाउड US के लिए, args सरणी में "-e", "SONARQUBE_URL" और env अनुभाग में "SONARQUBE_URL": "https://sonarqube.us" जोड़ें।
- SonarQube सर्वर से कनेक्ट करने के लिए:
{
"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 क्लाउड US के लिए, इंस्टॉलेशन के बाद अपने MCP कॉन्फ़िगरेशन में env अनुभाग में मैन्युअल रूप से "SONARQUBE_URL": "https://sonarqube.us" जोड़ें।
Windsurf
SonarQube MCP सर्वर Windsurf प्लगइन के रूप में उपलब्ध है। इन निर्देशों का पालन करें:
- Windsurf Settings > Cascade > MCP Servers खोलें और Open MCP Marketplace चुनें
- Cascade MCP Marketplace पर
sonarqubeखोजें - SonarQube MCP Server चुनें और Install चुनें
- आवश्यक SonarQube उपयोगकर्ता टोकन जोड़ें। फिर यदि आप SonarQube क्लाउड से कनेक्ट करना चाहते हैं तो संगठन कुंजी जोड़ें, या यदि आप SonarQube सर्वर या कम्युनिटी बिल्ड से कनेक्ट करना चाहते हैं तो SonarQube URL जोड़ें।
SonarQube क्लाउड US के लिए, URL को https://sonarqube.us पर सेट करें।
Zed
Zed में Extensions दृश्य पर नेविगेट करें और SonarQube MCP Server खोजें। एक्सटेंशन इंस्टॉल करते समय, आपको आवश्यक एनवायरनमेंट वेरिएबल प्रदान करने के लिए कहा जाएगा:
- SonarQube क्लाउड का उपयोग करते समय:
{
"sonarqube_token": "YOUR_SONARQUBE_TOKEN",
"sonarqube_org": "SONARQUBE_ORGANIZATION_KEY",
"docker_path": "DOCKER_PATH"
}
SonarQube क्लाउड US के लिए, कॉन्फ़िगरेशन में "sonarqube_url": "https://sonarqube.us" जोड़ें।
- SonarQube सर्वर का उपयोग करते समय:
{
"sonarqube_token": "YOUR_SONARQUBE_USER_TOKEN",
"sonarqube_url": "YOUR_SONARQUBE_SERVER_URL",
"docker_path": "DOCKER_PATH"
}
docker_path डॉकर निष्पादन योग्य का पथ है। उदाहरण:
Linux/macOS: /usr/bin/docker या /usr/local/bin/docker
Windows: C:\Program Files\Docker\Docker\resources\bin\docker.exe
💡 सुझाव: हम अनुशंसा करते हैं कि नवीनतम सुविधाएँ और सुधार सुनिश्चित करने के लिए नियमित रूप से या समस्याओं की रिपोर्ट करने से पहले नवीनतम इमेज खींचें।
मैन्युअल इंस्टॉलेशन
आप MCP सर्वर कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित स्निपेट कॉपी करके SonarQube MCP सर्वर को मैन्युअल रूप से इंस्टॉल कर सकते हैं:
- SonarQube क्लाउड से कनेक्ट करने के लिए:
{
"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 सर्वर से कनेक्ट करने के लिए:
{
"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 सर्वर आपके विकास वर्कफ़्लो को और बेहतर बनाने के लिए SonarQube for IDE के साथ एकीकृत हो सकता है, जो सीधे आपके IDE के भीतर बेहतर कोड विश्लेषण और अंतर्दृष्टि प्रदान करता है।
कॉन्फ़िगरेशन
SonarQube for IDE का उपयोग करते समय, SONARQUBE_IDE_PORT एनवायरनमेंट वेरिएबल को सही पोर्ट नंबर के साथ सेट किया जाना चाहिए। VS Code के लिए SonarQube में एक त्वरित इंस्टॉल बटन शामिल है, जो स्वचालित रूप से सही पोर्ट कॉन्फ़िगरेशन सेट करता है।
उदाहरण के लिए, SonarQube क्लाउड के साथ:
{
"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 सर्वर चलाते समय, कंटेनर लोकलहोस्ट पर चल रहे SonarQube for IDE एम्बेडेड सर्वर तक नहीं पहुँच सकता है। कंटेनर को SonarQube for IDE सर्वर से कनेक्ट करने की अनुमति देने के लिए, अपने कंटेनर रन कमांड में
--network=hostविकल्प जोड़ें।
कॉन्फ़िगरेशन
आपके एनवायरनमेंट के आधार पर, आपको विशिष्ट एनवायरनमेंट वेरिएबल प्रदान करने चाहिए।
आधार
MCP सर्वर चलाते समय आपको निम्नलिखित वेरिएबल जोड़ना चाहिए:
| एनवायरनमेंट वेरिएबल | विवरण |
|---|---|
STORAGE_PATH | एक लिखने योग्य निर्देशिका का अनिवार्य निरपेक्ष पथ जहाँ SonarQube MCP सर्वर अपनी फ़ाइलें संग्रहीत करेगा (जैसे, निर्माण, अद्यतन और स्थायित्व के लिए), कंटेनर इमेज का उपयोग करने पर यह स्वचालित रूप से प्रदान किया जाता है |
SONARQUBE_PROJECT_KEY | वैकल्पिक डिफ़ॉल्ट प्रोजेक्ट कुंजी। सेट होने पर, प्रोजेक्ट कुंजी की आवश्यकता वाले सभी उपकरण स्वचालित रूप से इस मान का उपयोग करेंगे — projectKey पैरामीटर उनके स्कीमा से पूरी तरह हटा दिया जाता है। एकल प्रोजेक्ट पर काम करते समय उपयोगी। |
SONARQUBE_IDE_PORT | 64120 और 64130 के बीच वैकल्पिक पोर्ट नंबर जिसका उपयोग SonarQube MCP सर्वर को SonarQube for IDE से जोड़ने के लिए किया जाता है। |
SONARQUBE_DEBUG_ENABLED | true पर सेट होने पर, डीबग लॉगिंग सक्षम करता है। डीबग लॉग लॉग फ़ाइल और STDERR दोनों में लिखे जाते हैं। कनेक्टिविटी या कॉन्फ़िगरेशन समस्याओं के निवारण के लिए उपयोगी। डिफ़ॉल्ट: false। |
SONARQUBE_LOG_TO_FILE_DISABLED | true पर सेट होने पर, डिस्क पर लॉग लिखना पूरी तरह से अक्षम कर देता है। STORAGE_PATH/logs/ के अंतर्गत कोई लॉग फ़ाइलें नहीं बनाई जाएंगी। कंटेनरीकृत या अल्पकालिक एनवायरनमेंट में उपयोगी जहाँ फ़ाइल लॉगिंग अवांछनीय है। डिफ़ॉल्ट: false। |
कार्यक्षेत्र माउंट (संदर्भ विस्तार कम करना)
डिफ़ॉल्ट रूप से, विश्लेषण उपकरण 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"
]
}
जब माउंट सक्रिय हो:
run_advanced_code_analysisउपलब्ध हो जाता है यदि आपका संगठन इसके लिए पात्र हैanalyze_code_snippet:filePathआवश्यक है औरfileContentका उपयोग नहीं किया जाता — सर्वर फ़ाइल को उसी तरह हल करता है
चयनात्मक उपकरण सक्षमता
डिफ़ॉल्ट रूप से, संदर्भ ओवरहेड को कम करने के लिए केवल महत्वपूर्ण उपकरणसमूह सक्षम होते हैं। आप आवश्यकतानुसार अतिरिक्त उपकरणसमूह सक्षम कर सकते हैं।
| पर्यावरण चर | विवरण |
|---|---|
SONARQUBE_TOOLSETS | सक्षम करने के लिए उपकरणसमूहों की अल्पविराम-पृथक सूची। सेट होने पर, केवल ये उपकरणसमूह उपलब्ध होंगे। यदि सेट नहीं है, तो डिफ़ॉल्ट महत्वपूर्ण उपकरणसमूह सक्षम होते हैं (analysis, issues, projects, quality-gates, rules, duplications, measures, security-hotspots, dependency-risks, coverage, cag). नोट: projects उपकरणसमूह हमेशा सक्षम रहता है क्योंकि यह अन्य संचालनों के लिए परियोजना कुंजियाँ खोजने हेतु आवश्यक है। संदर्भ संवर्धन उपकरण केवल stdio मोड में उपलब्ध हैं और संगठन पात्रता की आवश्यकता होती है। स्ट्रीमेबल HTTP मोड में, क्लाइंट प्रति-अनुरोध इसे और सीमित करने के लिए SONARQUBE_TOOLSETS HTTP हेडर भेज सकते हैं, लेकिन सर्वर जिन उपकरणसमूहों के साथ लॉन्च किया गया था, उससे परे उपकरणसमूह सक्षम नहीं कर सकते (नीचे स्ट्रीमेबल HTTP परिवहन देखें)। |
SONARQUBE_READ_ONLY | जब true पर सेट किया जाता है, तो केवल-पढ़ने का मोड सक्षम होता है जो सभी लेखन संचालनों (उदाहरण के लिए मुद्दे की स्थिति बदलना) को अक्षम कर देता है। यदि दोनों सेट हैं तो यह फ़िल्टर SONARQUBE_TOOLSETS के साथ संचयी है। डिफ़ॉल्ट: false। स्ट्रीमेबल HTTP मोड में, क्लाइंट व्यक्तिगत अनुरोधों को केवल-पढ़ने तक सीमित करने के लिए SONARQUBE_READ_ONLY HTTP हेडर भेज सकते हैं, लेकिन सर्वर-स्तरीय केवल-पढ़ने के प्रतिबंध को नहीं हटा सकते (नीचे स्ट्रीमेबल HTTP परिवहन देखें)। |
उपलब्ध उपकरणसमूह
| उपकरणसमूह | कुंजी | विवरण |
|---|---|---|
| विश्लेषण | analysis | कोड विश्लेषण उपकरण (स्थानीय विश्लेषण और उन्नत दूरस्थ विश्लेषण) |
| मुद्दे | issues | SonarQube मुद्दों को खोजें और प्रबंधित करें |
| सुरक्षा हॉटस्पॉट | security-hotspots | सुरक्षा हॉटस्पॉट खोजें और समीक्षा करें |
| परियोजनाएँ | projects | SonarQube परियोजनाओं को ब्राउज़ करें और खोजें |
| गुणवत्ता द्वार | quality-gates | गुणवत्ता द्वार और उनकी स्थिति तक पहुँचें |
| नियम | rules | SonarQube नियमों को ब्राउज़ करें और खोजें |
| स्रोत | sources | स्रोत कोड और SCM जानकारी तक पहुँचें |
| दोहराव | duplications | परियोजनाओं में कोड दोहराव खोजें |
| माप | measures | मीट्रिक्स और माप प्राप्त करें (माप और मीट्रिक्स दोनों उपकरण शामिल हैं) |
| भाषाएँ | languages | समर्थित प्रोग्रामिंग भाषाओं की सूची बनाएं |
| पोर्टफोलियो | portfolios | पोर्टफोलियो और उद्यम प्रबंधित करें (क्लाउड और सर्वर) |
| सिस्टम | system | सिस्टम प्रशासन उपकरण (केवल सर्वर) |
| वेबहुक्स | webhooks | वेबहुक्स प्रबंधित करें |
| निर्भरता जोखिम | dependency-risks | निर्भरता जोखिम और सुरक्षा मुद्दों का विश्लेषण करें (SCA) |
| कवरेज | coverage | परीक्षण कवरेज विश्लेषण और सुधार उपकरण |
| संदर्भ संवर्धन | cag | संदर्भ संवर्धन उपकरण (केवल stdio मोड, संगठन पात्रता आवश्यक) |
| एजेंटिक तत्परता | agentic-readiness | एजेंटिक तत्परता मूल्यांकन उपकरण (SonarQube क्लाउड, संगठन पात्रता आवश्यक) |
उदाहरण
विश्लेषण, मुद्दे और गुणवत्ता द्वार उपकरणसमूह सक्षम करें (SonarQube क्लाउड के साथ 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 क्लाउड के साथ 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 क्लाउड
पूर्ण कार्यक्षमता सक्षम करने के लिए, सर्वर शुरू करने से पहले निम्नलिखित पर्यावरण चर सेट किए जाने चाहिए:
| पर्यावरण चर | विवरण | आवश्यक |
|---|---|---|
SONARQUBE_TOKEN | आपका SonarQube क्लाउड टोकन | हाँ |
SONARQUBE_ORG | आपकी SonarQube क्लाउड संगठन कुंजी | हाँ |
SONARQUBE_URL | कस्टम SonarQube क्लाउड URL (डिफ़ॉल्ट https://sonarcloud.io). SonarQube क्लाउड US के लिए इसका उपयोग करें: https://sonarqube.us | नहीं |
उदाहरण:
- SonarQube क्लाउड: केवल
SONARQUBE_TOKENऔरSONARQUBE_ORGकी आवश्यकता है - SonarQube क्लाउड US:
SONARQUBE_TOKEN,SONARQUBE_ORG, औरSONARQUBE_URL=https://sonarqube.usसेट करें
SonarQube सर्वर
| पर्यावरण चर | विवरण | आवश्यक |
|---|---|---|
SONARQUBE_TOKEN | आपका SonarQube सर्वर उपयोगकर्ता टोकन | हाँ |
SONARQUBE_URL | आपका SonarQube सर्वर URL | हाँ |
⚠️ SonarQube सर्वर से कनेक्शन के लिए उपयोगकर्ता प्रकार के टोकन की आवश्यकता होती है और यदि परियोजना टोकन या वैश्विक टोकन का उपयोग किया जाता है तो यह ठीक से काम नहीं करेगा।
💡 कॉन्फ़िगरेशन टिप (stdio मोड):
SONARQUBE_ORGकी उपस्थिति यह निर्धारित करती है कि आप SonarQube क्लाउड या सर्वर से कनेक्ट कर रहे हैं। यदिSONARQUBE_ORGसेट है, तो SonarQube क्लाउड का उपयोग किया जाता है; अन्यथा, SonarQube सर्वर का उपयोग किया जाता है।
परिवहन मोड
MCP विनिर्देश दो परिवहन तंत्र परिभाषित करता है: Stdio और स्ट्रीमेबल HTTP। SonarQube MCP सर्वर दोनों का समर्थन करता है:
| MCP परिवहन | सर्वर मोड | विशिष्ट उपयोग |
|---|---|---|
| Stdio | डिफ़ॉल्ट (कोई SONARQUBE_TRANSPORT नहीं) | स्थानीय MCP क्लाइंट जो सर्वर को उप-प्रक्रिया के रूप में लॉन्च करते हैं (कर्सर, क्लॉड कोड, VS कोड, आदि) |
| स्ट्रीमेबल HTTP | SONARQUBE_TRANSPORT=http या https | दूरस्थ या बहु-उपयोगकर्ता परिनियोजन; क्लाइंट HTTP(S) पर /mcp से कनेक्ट होते हैं (जैसे स्व-होस्टेड सर्वर URL के साथ Windsurf) |
नोट: स्ट्रीमेबल HTTP वर्तमान MCP नेटवर्क परिवहन है। पुराने MCP संस्करणों से पुराना केवल-SSE HTTP परिवहन पदावनत है और समर्थित नहीं है।
1. Stdio (डिफ़ॉल्ट - स्थानीय विकास के लिए अनुशंसित)
स्थानीय विकास और एकल-उपयोगकर्ता सेटअप के लिए अनुशंसित मोड, अधिकांश MCP क्लाइंट द्वारा उपयोग किया जाता है।
उदाहरण - SonarQube क्लाउड के साथ 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 (स्ट्रीमेबल HTTP)
अनएन्क्रिप्टेड स्ट्रीमेबल HTTP परिवहन। बहु-उपयोगकर्ता परिनियोजन के लिए इसके बजाय HTTPS का उपयोग करें।
⚠️ अनुशंसित नहीं: स्थानीय विकास के लिए Stdio या बहु-उपयोगकर्ता उत्पादन परिनियोजन के लिए HTTPS (स्ट्रीमेबल HTTP) का उपयोग करें।
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|---|---|
SONARQUBE_TRANSPORT | स्ट्रीमेबल HTTP परिवहन सक्षम करने के लिए http पर सेट करें | सेट नहीं (stdio) |
SONARQUBE_HTTP_PORT | पोर्ट संख्या (1024-65535) | 8080 |
SONARQUBE_HTTP_HOST | बाइंड करने के लिए होस्ट (सुरक्षा के लिए डिफ़ॉल्ट लोकलहोस्ट) | 127.0.0.1 |
SONARQUBE_HTTP_ALLOWED_ORIGINS | CORS के लिए अनुमत अल्पविराम-पृथक ब्राउज़र ऑरिजिन (जैसे https://my-app.example.com) | सेट नहीं |
SONARQUBE_MCP_IN_CONTAINER | कंटेनर के अंदर चलने पर true पर सेट करें। आधिकारिक Docker छवि इसे स्वचालित रूप से सेट करती है; अन्य OCI रनटाइम (Podman, Kubernetes, Nomad, आदि) का उपयोग करते समय इसे स्वयं सेट करें। | false |
नोट: स्ट्रीमेबल HTTP मोड (HTTP या HTTPS) में, सर्वर स्टेटलेस होता है — प्रत्येक क्लाइंट अनुरोध में एक Authorization: Bearer <token> हेडर शामिल होना चाहिए जिसमें उपयोगकर्ता का अपना SonarQube टोकन हो। SonarQube Cloud के लिए, संगठन का समाधान इस प्रकार किया जाता है: |
- यदि सर्वर स्टार्टअप पर
SONARQUBE_ORGसेट है, तो सभी अनुरोध उसी संगठन को रूट किए जाते हैं। क्लाइंट कोSONARQUBE_ORGहेडर नहीं भेजना चाहिए — ऐसा करने पर त्रुटि होगी। - यदि सर्वर स्टार्टअप पर
SONARQUBE_ORGसेट नहीं है, तो प्रत्येक क्लाइंट को प्रत्येक अनुरोध पर एकSONARQUBE_ORGहेडर अवश्य प्रदान करना होगा। क्लाइंटSONARQUBE_TOOLSETSऔर/याSONARQUBE_READ_ONLYहेडर प्रदान करके प्रति-अनुरोध दृश्यमान टूल को सीमित भी कर सकते हैं; ये सर्वर-स्तरीय कॉन्फ़िगरेशन के ऊपर अतिरिक्त फ़िल्टरिंग लागू करते हैं — ये केवल दायरे को कम कर सकते हैं, कभी विस्तारित नहीं कर सकते। अनुरोधों के बीच कोई सत्र स्थिति बनाए नहीं रखी जाती है।
पदावनत:
SONARQUBE_TOKENअनुरोध हेडर अभी भी पश्चगामी संगतता के लिए स्वीकार किया जाता है लेकिन भविष्य के संस्करण में हटा दिया जाएगा।Authorization: Bearer <token>पर माइग्रेट करें।
3. HTTPS (TLS पर स्ट्रीमेबल HTTP) (बहु-उपयोगकर्ता उत्पादन परिनियोजन के लिए अनुशंसित)
TLS एन्क्रिप्शन के साथ सुरक्षित स्ट्रीमेबल HTTP ट्रांसपोर्ट। SSL प्रमाणपत्रों की आवश्यकता है।
✅ उत्पादन के लिए अनुशंसित: स्ट्रीमेबल HTTP पर बहु-उपयोगकर्ताओं के लिए MCP सर्वर परिनियोजित करते समय HTTPS का उपयोग करें। सुरक्षा के लिए सर्वर डिफ़ॉल्ट रूप से
127.0.0.1(लोकलहोस्ट) से बाइंड होता है।
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|---|---|
SONARQUBE_TRANSPORT | TLS पर स्ट्रीमेबल HTTP ट्रांसपोर्ट सक्षम करने के लिए https पर सेट करें | सेट नहीं (stdio) |
SONARQUBE_HTTP_PORT | पोर्ट संख्या (आमतौर पर HTTPS के लिए 8443) | 8080 |
SONARQUBE_HTTP_HOST | बाइंड करने के लिए होस्ट (सुरक्षा के लिए डिफ़ॉल्ट लोकलहोस्ट) | 127.0.0.1 |
SONARQUBE_HTTP_ALLOWED_ORIGINS | CORS के लिए अनुमत ब्राउज़र ऑरिजिंस, अल्पविराम से अलग (जैसे https://my-app.example.com) | सेट नहीं |
SONARQUBE_MCP_IN_CONTAINER | कंटेनर के अंदर चलने पर true पर सेट करें। आधिकारिक Docker इमेज इसे स्वचालित रूप से सेट करती है; अन्य OCI रनटाइम (Podman, Kubernetes, Nomad, आदि) का उपयोग करते समय इसे स्वयं सेट करें। | false |
SSL प्रमाणपत्र कॉन्फ़िगरेशन (वैकल्पिक):
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|---|---|---|
SONARQUBE_HTTPS_KEYSTORE_PATH | कीस्टोर फ़ाइल का पथ (.p12 या .jks) | /etc/ssl/mcp/keystore.p12 |
SONARQUBE_HTTPS_KEYSTORE_PASSWORD | कीस्टोर पासवर्ड | sonarlint |
SONARQUBE_HTTPS_KEYSTORE_TYPE | कीस्टोर प्रकार (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 अभी भी डिफ़ॉल्ट रूप से लोकलहोस्ट ऑरिजिंस की अनुमति देता है।
आपकी मशीन पर स्थानीय रूप से चलने वाले सर्वर के लिए (केवल लोकलहोस्ट से पहुँच योग्य):
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 \
-e SONARQUBE_TOKEN="<init-token>" \
-e SONARQUBE_ORG="<your-org>" \
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 \
-e SONARQUBE_TOKEN="<init-token>" \
-e SONARQUBE_ORG="<your-org>" \
sonarsource/sonarqube-mcp
क्लाइंट कॉन्फ़िगरेशन (SonarQube Cloud):
{
"mcpServers": {
"sonarqube-https": {
"url": "https://your-server:8443/mcp",
"headers": {
"Authorization": "Bearer <your-token>",
"SONARQUBE_ORG": "<your-org>",
"SONARQUBE_TOOLSETS": "issues,quality-gates",
"SONARQUBE_READ_ONLY": "true"
}
}
}
}
क्लाइंट कॉन्फ़िगरेशन (SonarQube सर्वर):
{
"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 स्ट्रीमेबल HTTP उचित SSL प्रमाणपत्रों के साथ बहु-उपयोगकर्ता उत्पादन परिनियोजन के लिए अभिप्रेत है।
सेवा एंडपॉइंट
स्ट्रीमेबल HTTP मोड (http या https) में चलने पर, सर्वर /mcp पर MCP एंडपॉइंट के अतिरिक्त कुछ अनऑथेंटिकेटेड सेवा एंडपॉइंट उजागर करता है। ये सेवा-से-सेवा उपयोग (निगरानी, ऑर्केस्ट्रेशन, क्लाइंट संगतता जाँच) के लिए अभिप्रेत हैं और इन्हें Authorization हेडर की आवश्यकता नहीं है।
| एंडपॉइंट | विधि | विवरण | उदाहरण प्रतिक्रिया |
|---|---|---|---|
/health | GET | लाइवनेस प्रोब। सर्वर द्वारा अनुरोध स्वीकार करना शुरू करने पर खाली बॉडी के साथ 200 OK लौटाता है। | (खाली बॉडी) |
/info | GET | MCP सर्वर संस्करण को JSON के रूप में लौटाता है। परिनियोजित सर्वर संस्करण सत्यापित करने के लिए उपयोगी। | {"version":"1.16.0"} |
ये एंडपॉइंट Stdio ट्रांसपोर्ट के साथ चलने पर उपलब्ध नहीं हैं।
कस्टम प्रमाणपत्र
यदि आपका SonarQube सर्वर स्व-हस्ताक्षरित प्रमाणपत्र या निजी प्रमाणपत्र प्राधिकरण (CA) के प्रमाणपत्र का उपयोग करता है, तो आप कंटेनर में कस्टम प्रमाणपत्र जोड़ सकते हैं जो स्वचालित रूप से स्थापित हो जाएँगे।
कॉन्फ़िगरेशन
वॉल्यूम माउंट का उपयोग करना
कंटेनर चलाते समय अपने प्रमाणपत्रों वाली एक निर्देशिका माउंट करें:
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>"
}
}
}
प्रॉक्सी
SonarQube MCP सर्वर मानक Java प्रॉक्सी सिस्टम गुणों के माध्यम से HTTP और SOCKS5 प्रॉक्सी का समर्थन करता है।
कॉन्फ़िगरेशन
HTTP/HTTPS प्रॉक्सी
आप Java सिस्टम गुणों का उपयोग करके प्रॉक्सी सेटिंग्स कॉन्फ़िगर कर सकते हैं। इन्हें पर्यावरण चर के रूप में सेट किया जा सकता है या JVM तर्कों के रूप में पास किया जा सकता है।
सामान्य प्रॉक्सी गुण:
| गुण | विवरण | उदाहरण |
|---|---|---|
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 प्रॉक्सी प्रमाणीकरण:
| गुण | विवरण | उदाहरण |
|---|---|---|
http.proxyUser | HTTP प्रॉक्सी उपयोगकर्ता नाम | myuser |
http.proxyPassword | HTTP प्रॉक्सी पासवर्ड | mypassword |
https.proxyUser | HTTPS प्रॉक्सी उपयोगकर्ता नाम | myuser |
https.proxyPassword | HTTPS प्रॉक्सी पासवर्ड | mypassword |
SOCKS5 प्रॉक्सी
SOCKS5 प्रॉक्सी समर्थित हैं।
| गुण | विवरण | डिफ़ॉल्ट | उदाहरण |
|---|---|---|---|
socksProxyHost | SOCKS5 प्रॉक्सी होस्टनाम | — | localhost |
socksProxyPort | SOCKS5 प्रॉक्सी पोर्ट | 1080 | 1080 |
java.net.socks.username | SOCKS5 उपयोगकर्ता नाम (यदि प्रमाणीकरण आवश्यक हो) | — | myuser |
java.net.socks.password | SOCKS5 पासवर्ड (यदि प्रमाणीकरण आवश्यक हो) | — | mypassword |
टूल
विश्लेषण
-
analyze_code_snippet - कोड गुणवत्ता और सुरक्षा मुद्दों की पहचान करने के लिए SonarQube विश्लेषकों के साथ फ़ाइल सामग्री का विश्लेषण करें। सटीकता के लिए हमेशा पूर्ण फ़ाइल सामग्री का विश्लेषण करता है। वैकल्पिक रूप से परिणामों को किसी विशिष्ट कोड स्निपेट में फ़िल्टर करें।
उपयोग:
- माउंटेड वर्कस्पेस के साथ (अनुशंसित):
filePath(प्रोजेक्ट-रिलेटिव) पास करें — सर्वर सीधे फ़ाइल पढ़ता है, फ़ाइल सामग्री को एजेंट संदर्भ विंडो से बाहर रखता है - वर्कस्पेस माउंट के बिना: पूर्ण फ़ाइल विश्लेषण के लिए पूर्ण
fileContentपास करें (सभी मुद्दों की रिपोर्ट करता है) - परिणामों को फ़िल्टर करने के लिए वैकल्पिक
codeSnippetजोड़ें - केवल स्निपेट के भीतर के मुद्दे रिपोर्ट किए जाएँगे (स्निपेट स्थान स्वतः-पता लगाया गया)
पैरामीटर:
projectKey- SonarQube प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)filePath- विश्लेषण करने के लिए फ़ाइल का प्रोजेक्ट-रिलेटिव पथ (जैसे,src/main/java/MyClass.java)। उपयोग तब किया जाता है जब वर्कस्पेस/app/mcp-workspaceपर माउंटेड हो - स्ट्रिंगfileContent- स्ट्रिंग के रूप में पूर्ण फ़ाइल सामग्री। आवश्यक जब वर्कस्पेस माउंटेड न हो - स्ट्रिंगcodeSnippet- मुद्दों को फ़िल्टर करने के लिए कोड स्निपेट (fileContent में सामग्री से मेल खाना चाहिए) - स्ट्रिंगlanguage- कोड की भाषा (जैसे, 'java', 'python', 'js', 'ts', 'tsx', 'jsx') - स्ट्रिंगscope- फ़ाइल का दायरा: MAIN या TEST (डिफ़ॉल्ट: MAIN) - स्ट्रिंग
समर्थित भाषाएँ: Java, Kotlin, Python, Ruby, Go, JavaScript (
js,jsx), TypeScript (ts,tsx), JSP, PHP, XML, HTML, CSS, CloudFormation, Kubernetes, Terraform, Azure Resource Manager, Ansible, Docker, सीक्रेट डिटेक्शन - माउंटेड वर्कस्पेस के साथ (अनुशंसित):
जब IDE के लिए SonarQube के साथ एकीकरण सक्षम हो:
-
analyze_file_list - IDE के लिए SonarQube का उपयोग करके वर्तमान कार्यशील निर्देशिका में फ़ाइलों का विश्लेषण करें। यह टूल फ़ाइलों की सूची पर कोड गुणवत्ता विश्लेषण करने के लिए चल रहे IDE इंस्टेंस के लिए SonarQube से जुड़ता है।
file_absolute_paths- विश्लेषण करने के लिए निरपेक्ष फ़ाइल पथों की सूची - आवश्यक स्ट्रिंग[]
-
toggle_automatic_analysis - IDE स्वचालित विश्लेषण के लिए SonarQube सक्षम या अक्षम करें। सक्षम होने पर, IDE के लिए SonarQube कार्यशील निर्देशिका में फ़ाइलों के संशोधित होने पर स्वचालित रूप से उनका विश्लेषण करेगा। अक्षम होने पर, स्वचालित विश्लेषण बंद हो जाता है।
enabled- स्वचालित विश्लेषण सक्षम या अक्षम करें - आवश्यक बूलियन
जब आपके SonarQube Cloud संगठन के लिए उन्नत विश्लेषण सक्षम हो:
वर्कस्पेस का
/app/mcp-workspaceपर माउंटेड होना आवश्यक है
- run_advanced_code_analysis - एकल फ़ाइल के लिए SonarQube Cloud पर उन्नत कोड विश्लेषण चलाएँ। संगठन MCP कॉन्फ़िगरेशन से अनुमानित किया जाता है।
projectKey- प्रोजेक्ट की कुंजी - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)branchName- नवीनतम विश्लेषण संदर्भ प्राप्त करने के लिए उपयोग की जाने वाली शाखा का नाम - आवश्यक स्ट्रिंगfilePath- विश्लेषण करने के लिए फ़ाइल का प्रोजेक्ट-रिलेटिव पथ (जैसे,src/main/java/MyClass.java)। - आवश्यक स्ट्रिंगfileScope- परिभाषित करता है कि फ़ाइल किस दायरे से उत्पन्न होती है: 'MAIN' या 'TEST' (डिफ़ॉल्ट: MAIN) - स्ट्रिंग
कवरेज
-
search_files_by_coverage - किसी प्रोजेक्ट में कवरेज के अनुसार क्रमबद्ध फ़ाइलें खोजें (आरोही क्रम - सबसे खराब कवरेज पहले)। यह उपकरण उन फ़ाइलों की पहचान करने में मदद करता है जिनमें परीक्षण कवरेज सुधार की आवश्यकता है।
projectKey- खोजने के लिए प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)branch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंगmaxCoverage- अधिकतम कवरेज सीमा (0-100)। केवल इस मान से कम या बराबर कवरेज वाली फ़ाइलें लौटाएँ - संख्याpageIndex- पृष्ठ सूचकांक (1-आधारित, डिफ़ॉल्ट: 1) - संख्याpageSize- पृष्ठ आकार (डिफ़ॉल्ट: 100, अधिकतम: 500) - संख्या
-
get_file_coverage_details - किसी विशिष्ट फ़ाइल के लिए पंक्ति-दर-पंक्ति कवरेज जानकारी प्राप्त करें, जिसमें यह भी शामिल है कि कौन सी पंक्तियाँ अनकवर्ड हैं और किनकी शाखाएँ आंशिक रूप से कवर हैं। यह उपकरण यह पहचानने में मदद करता है कि परीक्षण कवरेज कहाँ जोड़ना है। search_files_by_coverage के माध्यम से कम कवरेज वाली फ़ाइलों की पहचान करने के बाद उपयोग करें।
key- फ़ाइल कुंजी (जैसे my_project:src/foo/Bar.java) - आवश्यक स्ट्रिंगbranch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंगfrom- विश्लेषण करने के लिए पहली पंक्ति (1-आधारित, डिफ़ॉल्ट: 1) - संख्याto- विश्लेषण करने के लिए अंतिम पंक्ति (सम्मिलित)। यदि निर्दिष्ट नहीं है, तो सभी पंक्तियाँ लौटाई जाती हैं - संख्या
निर्भरता जोखिम
नोट: निर्भरता जोखिम केवल तभी उपलब्ध हैं जब SonarQube Server 2025.4 Enterprise या उच्चतर से कनेक्ट किया जा रहा हो और SonarQube Advanced Security सक्षम हो।
- search_dependency_risks - किसी SonarQube प्रोजेक्ट के सॉफ़्टवेयर संरचना विश्लेषण मुद्दों (निर्भरता जोखिम) की खोज करें, जो विश्लेषित प्रोजेक्ट, एप्लिकेशन या पोर्टफोलियो में दिखाई देने वाले रिलीज़ के साथ युग्मित हों।
projectKey- प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)branch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंगpageIndex- वैकल्पिक पृष्ठ सूचकांक (1-आधारित, डिफ़ॉल्ट: 1) - पूर्णांकpageSize- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - पूर्णांक
उद्यम
नोट: उद्यम केवल तभी उपलब्ध हैं जब SonarQube Cloud से कनेक्ट किया जा रहा हो।
- list_enterprises - SonarQube Cloud में उपलब्ध उन उद्यमों की सूची बनाएँ जिन तक आपकी पहुँच है। इस उपकरण का उपयोग उन उद्यम आईडी को खोजने के लिए करें जिनका उपयोग अन्य उपकरणों के साथ किया जा सकता है।
enterpriseKey- परिणामों को फ़िल्टर करने के लिए वैकल्पिक उद्यम कुंजी - स्ट्रिंग
मुद्दे
-
change_sonar_issue_status - किसी SonarQube मुद्दे की स्थिति को "स्वीकार करें", "गलत सकारात्मक" या "पुनः खोलें" में बदलें।
key- मुद्दा कुंजी - आवश्यक स्ट्रिंगstatus- मुद्दे की नई स्थिति - आवश्यक एनम {"स्वीकार करें", "गलत सकारात्मक", "पुनः खोलें"}
-
search_sonar_issues_in_projects - मेरे संगठन की परियोजनाओं में SonarQube मुद्दों की खोज करें।
projects- Sonar परियोजनाओं की वैकल्पिक सूची - स्ट्रिंग[]branch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंगseverities- फ़िल्टर करने के लिए गंभीरता स्तरों की वैकल्पिक सूची। संभावित मान: INFO, LOW, MEDIUM, HIGH, BLOCKER - स्ट्रिंग[]impactSoftwareQualities- फ़िल्टर करने के लिए सॉफ़्टवेयर गुणवत्ताओं की वैकल्पिक सूची। संभावित मान: MAINTAINABILITY, RELIABILITY, SECURITY - स्ट्रिंग[]issueStatuses- फ़िल्टर करने के लिए मुद्दे की स्थितियों की वैकल्पिक सूची। संभावित मान: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED, IN_SANDBOX - स्ट्रिंग[]issueKey- किसी विशिष्ट मुद्दे को प्राप्त करने के लिए वैकल्पिक मुद्दा कुंजी - स्ट्रिंगp- वैकल्पिक पृष्ठ संख्या (डिफ़ॉल्ट: 1) - पूर्णांकps- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - पूर्णांक
सुरक्षा हॉटस्पॉट
-
search_security_hotspots - किसी SonarQube प्रोजेक्ट में सुरक्षा हॉटस्पॉट खोजें।
projectKey- प्रोजेक्ट या एप्लिकेशन कुंजी - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)hotspotKeys- पुनर्प्राप्त करने के लिए विशिष्ट सुरक्षा हॉटस्पॉट कुंजियों की अल्पविराम-पृथक सूची - स्ट्रिंग[]branch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंगfiles- फ़िल्टर करने के लिए फ़ाइल पथों की वैकल्पिक सूची - स्ट्रिंग[]status- वैकल्पिक स्थिति फ़िल्टर: TO_REVIEW, REVIEWED - स्ट्रिंगresolution- वैकल्पिक समाधान फ़िल्टर: FIXED, SAFE, ACKNOWLEDGED - स्ट्रिंगsinceLeakPeriod- लीक अवधि (नया कोड) के बाद से बनाए गए हॉटस्पॉट फ़िल्टर करें - बूलियनonlyMine- केवल मुझे असाइन किए गए हॉटस्पॉट दिखाएँ - बूलियनp- वैकल्पिक पृष्ठ संख्या (डिफ़ॉल्ट: 1) - पूर्णांकps- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - पूर्णांक
-
show_security_hotspot - किसी विशिष्ट सुरक्षा हॉटस्पॉट के बारे में विस्तृत जानकारी प्राप्त करें, जिसमें नियम विवरण, कोड संदर्भ, प्रवाह और टिप्पणियाँ शामिल हैं।
hotspotKey- सुरक्षा हॉटस्पॉट कुंजी - आवश्यक स्ट्रिंग
-
change_security_hotspot_status - किसी सुरक्षा हॉटस्पॉट की स्थिति बदलकर उसकी समीक्षा करें। REVIEWED के रूप में चिह्नित करते समय, आपको एक समाधान (FIXED, SAFE, या ACKNOWLEDGED) निर्दिष्ट करना होगा।
hotspotKey- सुरक्षा हॉटस्पॉट कुंजी - आवश्यक स्ट्रिंगstatus- नई स्थिति - आवश्यक एनम {"TO_REVIEW", "REVIEWED"}resolution- स्थिति REVIEWED होने पर समाधान - एनम {"FIXED", "SAFE", "ACKNOWLEDGED"}comment- वैकल्पिक समीक्षा टिप्पणी - स्ट्रिंग
भाषाएँ
- list_languages - इस SonarQube इंस्टेंस में समर्थित सभी प्रोग्रामिंग भाषाओं की सूची बनाएँ।
q- भाषा कुंजियों/नामों से मिलान करने के लिए वैकल्पिक पैटर्न - स्ट्रिंग
माप
- get_component_measures - किसी घटक (प्रोजेक्ट, निर्देशिका, फ़ाइल) के लिए SonarQube माप प्राप्त करें।
projectKey- प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग जबSONARQUBE_PROJECT_KEYकॉन्फ़िगर नहीं हैbranch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगmetricKeys- पुनर्प्राप्त करने के लिए वैकल्पिक मीट्रिक कुंजियाँ (जैसे ncloc, complexity, violations, coverage) - स्ट्रिंग[]pullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंग
मीट्रिक्स
- search_metrics - SonarQube मीट्रिक्स खोजें।
p- वैकल्पिक पृष्ठ संख्या (डिफ़ॉल्ट: 1) - पूर्णांकps- वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - पूर्णांक
पोर्टफोलियो
-
list_portfolios - फ़िल्टरिंग और पृष्ठांकन विकल्पों के साथ SonarQube में उपलब्ध उद्यम पोर्टफोलियो की सूची बनाएँ।
SonarQube Server के लिए:
q- नाम या कुंजी द्वारा पोर्टफोलियो फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - स्ट्रिंगfavorite- यदि सत्य है, तो केवल पसंदीदा पोर्टफोलियो लौटाता है - बूलियनpageIndex- वैकल्पिक 1-आधारित पृष्ठ संख्या (डिफ़ॉल्ट: 1) - पूर्णांकpageSize- वैकल्पिक पृष्ठ आकार, अधिकतम 500 (डिफ़ॉल्ट: 100) - पूर्णांक
SonarQube Cloud के लिए:
enterpriseId- उद्यम uuid। केवल तभी छोड़ा जा सकता है जब 'पसंदीदा' पैरामीटर सत्य मान के साथ प्रदान किया गया हो - स्ट्रिंगq- नाम द्वारा पोर्टफोलियो फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - स्ट्रिंगfavorite- यदि 'enterpriseId' पैरामीटर छोड़ा गया है तो सत्य होना आवश्यक है। यदि सत्य है, तो केवल लॉग-इन उपयोगकर्ता द्वारा पसंदीदा किए गए पोर्टफोलियो लौटाता है। जब 'ड्राफ्ट' सत्य हो तो सत्य नहीं हो सकता - बूलियनdraft- यदि सत्य है, तो केवल लॉग-इन उपयोगकर्ता द्वारा बनाए गए ड्राफ्ट लौटाता है। जब 'पसंदीदा' सत्य हो तो सत्य नहीं हो सकता - बूलियनpageIndex- प्राप्त करने के लिए पृष्ठ का वैकल्पिक सूचकांक (डिफ़ॉल्ट: 1) - पूर्णांकpageSize- प्राप्त करने के लिए पृष्ठ का वैकल्पिक आकार (डिफ़ॉल्ट: 50) - पूर्णांक
परियोजनाएँ
-
search_my_sonarqube_projects - SonarQube परियोजनाएँ खोजें। प्रतिक्रिया पृष्ठांकित है।
page- वैकल्पिक पृष्ठ संख्या - स्ट्रिंग
-
list_branches - किसी प्रोजेक्ट के लिए दीर्घकालिक शाखाओं की सूची बनाएँ (जैसे main, develop, master)। SonarQube Cloud पर केवल
LONGशाखाएँ और SonarQube Server परBRANCHप्रविष्टियाँ लौटाता है — नाम अन्य उपकरणों परbranchपैरामीटर के लिए सुरक्षित हैं। पुल अनुरोधों के लिए, इसके बजायlist_pull_requestsका उपयोग करें।projectKey- प्रोजेक्ट कुंजी (जैसे my_project) - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)
-
list_pull_requests - किसी प्रोजेक्ट के लिए सभी पुल अनुरोधों की सूची बनाएँ। उनके कवरेज, मुद्दों या गुणवत्ता का विश्लेषण करने से पहले उपलब्ध पुल अनुरोधों को खोजने के लिए इस उपकरण का उपयोग करें। पुल अनुरोध कुंजी/आईडी लौटाता है जिसका उपयोग अन्य उपकरणों (जैसे, search_files_by_coverage, get_file_coverage_details) के साथ किया जा सकता है। दीर्घकालिक शाखाओं के लिए, इसके बजाय
list_branchesका उपयोग करें।projectKey- प्रोजेक्ट कुंजी (जैसे my_project) - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)
गुणवत्ता द्वार
-
get_project_quality_gate_status - SonarQube प्रोजेक्ट के लिए गुणवत्ता द्वार स्थिति प्राप्त करें।
analysisId- वैकल्पिक विश्लेषण आईडी - स्ट्रिंगbranch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगprojectId- वैकल्पिक प्रोजेक्ट आईडी - स्ट्रिंगprojectKey- वैकल्पिक प्रोजेक्ट कुंजी - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंग
-
list_quality_gates - मेरे SonarQube में सभी गुणवत्ता द्वारों की सूची बनाएँ।
नियम
- show_rule - किसी SonarQube नियम के बारे में विस्तृत जानकारी दिखाता है।
key- नियम कुंजी - आवश्यक स्ट्रिंग
डुप्लिकेशन
-
search_duplicated_files - किसी SonarQube प्रोजेक्ट में कोड डुप्लिकेशन वाली फ़ाइलें खोजें। डिफ़ॉल्ट रूप से, सभी पृष्ठों (अधिकतम 10,000 फ़ाइलें) पर सभी डुप्लिकेट फ़ाइलें स्वचालित रूप से प्राप्त करता है। केवल डुप्लिकेशन वाली फ़ाइलें लौटाता है।
projectKey- प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (जबSONARQUBE_PROJECT_KEYपरिभाषित हो तो अनदेखा किया जाता है)branch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंगpageSize- मैन्युअल पृष्ठांकन के लिए प्रति पृष्ठ परिणामों की वैकल्पिक संख्या (अधिकतम: 500)। यदि निर्दिष्ट नहीं है, तो सभी डुप्लिकेट फ़ाइलें स्वतः प्राप्त करता है - पूर्णांकpageIndex- मैन्युअल पृष्ठांकन के लिए वैकल्पिक पृष्ठ संख्या (1 से शुरू)। यदि निर्दिष्ट नहीं है, तो सभी डुप्लिकेट फ़ाइलें स्वतः प्राप्त करता है - पूर्णांक
-
get_duplications - किसी फ़ाइल के लिए डुप्लिकेशन प्राप्त करें। फ़ाइल के प्रोजेक्ट पर ब्राउज़ अनुमति आवश्यक है।
key- फ़ाइल कुंजी - आवश्यक स्ट्रिंगbranch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंग
स्रोत
-
get_raw_source - SonarQube से स्रोत कोड कच्चे पाठ के रूप में प्राप्त करें। फ़ाइल पर 'स्रोत कोड देखें' अनुमति आवश्यक है।
key- फ़ाइल कुंजी - आवश्यक स्ट्रिंगbranch- वैकल्पिक दीर्घकालिक शाखा नाम (जैसे main, develop)। मान्य नाम खोजने के लिएlist_branchesका उपयोग करें - स्ट्रिंगpullRequest- वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिएlist_pull_requestsका उपयोग करें - स्ट्रिंग
-
get_scm_info - SonarQube स्रोत फ़ाइलों की SCM जानकारी प्राप्त करें। फ़ाइल के प्रोजेक्ट पर स्रोत कोड देखें अनुमति आवश्यक है।
key- फ़ाइल कुंजी - आवश्यक स्ट्रिंगcommits_by_line- यदि मान false है तो पंक्तियों को SCM कमिट द्वारा समूहित करें, अन्यथा प्रत्येक पंक्ति के लिए कमिट प्रदर्शित करें - स्ट्रिंगfrom- लौटाने की पहली पंक्ति। 1 से शुरू होती है - संख्याto- लौटाने की अंतिम पंक्ति (सम्मिलित) - संख्या
सिस्टम
नोट: सिस्टम उपकरण केवल SonarQube सर्वर से कनेक्ट होने पर उपलब्ध हैं।
-
get_system_health - SonarQube सर्वर इंस्टेंस की स्वास्थ्य स्थिति प्राप्त करें। GREEN (पूरी तरह चालू), YELLOW (उपयोगी लेकिन ध्यान देने की आवश्यकता), या RED (चालू नहीं) लौटाता है।
-
get_system_info - JVM स्थिति, डेटाबेस, खोज अनुक्रमणिका और सेटिंग्स सहित SonarQube सर्वर सिस्टम कॉन्फ़िगरेशन के बारे में विस्तृत जानकारी प्राप्त करें। 'व्यवस्थापन' अनुमतियों की आवश्यकता है।
-
get_system_logs - SonarQube सर्वर सिस्टम लॉग सादे-पाठ प्रारूप में प्राप्त करें। सिस्टम व्यवस्थापन अनुमति की आवश्यकता है।
name- प्राप्त करने के लिए लॉग का वैकल्पिक नाम। संभावित मान: access, app, ce, deprecation, es, web। डिफ़ॉल्ट: app - स्ट्रिंग
-
ping_system - SonarQube सर्वर सिस्टम को पिंग करें यह जाँचने के लिए कि यह जीवित है या नहीं। सादे पाठ के रूप में 'pong' लौटाता है।
-
get_system_status - SonarQube सर्वर के बारे में स्थिति जानकारी प्राप्त करें। स्थिति (STARTING, UP, DOWN, RESTARTING, DB_MIGRATION_NEEDED, DB_MIGRATION_RUNNING), संस्करण और आईडी लौटाता है।
वेबहुक
-
create_webhook - SonarQube संगठन या प्रोजेक्ट के लिए एक नया वेबहुक बनाएँ। निर्दिष्ट प्रोजेक्ट पर 'व्यवस्थापन' अनुमति, या वैश्विक 'व्यवस्थापन' अनुमति की आवश्यकता है।
name- वेबहुक नाम - आवश्यक स्ट्रिंगurl- वेबहुक URL - आवश्यक स्ट्रिंगprojectKey- प्रोजेक्ट-विशिष्ट वेबहुक के लिए वैकल्पिक प्रोजेक्ट कुंजी - स्ट्रिंगsecret- वेबहुक पेलोड को सुरक्षित करने के लिए वैकल्पिक वेबहुक रहस्य - स्ट्रिंग
-
list_webhooks - SonarQube संगठन या प्रोजेक्ट के लिए सभी वेबहुक सूचीबद्ध करें। निर्दिष्ट प्रोजेक्ट पर 'व्यवस्थापन' अनुमति, या वैश्विक 'व्यवस्थापन' अनुमति की आवश्यकता है।
projectKey- प्रोजेक्ट-विशिष्ट वेबहुक सूचीबद्ध करने के लिए वैकल्पिक प्रोजेक्ट कुंजी - स्ट्रिंग
संदर्भ संवर्धन
आर्किटेक्चर उपकरण
-
search_by_signature_patterns - रेगेक्स पैटर्न का उपयोग करके उनके घोषणा हस्ताक्षरों द्वारा कोड तत्व (वर्ग, विधियाँ, इंटरफ़ेस, ...) खोजें।
include_code_regex_list- हस्ताक्षरों से मिलान करने के लिए रेगेक्स पैटर्न की सूची - आवश्यक स्ट्रिंग[]exclude_code_regex_list- परिणामों से बाहर करने के लिए रेगेक्स पैटर्न की सूची - स्ट्रिंग[]include_glob- फ़ाइल फ़िल्टर ग्लोब पैटर्न (जैसे,*.java) - स्ट्रिंगexclude_glob- फ़ाइल बहिष्करण ग्लोब पैटर्न - स्ट्रिंगfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - स्ट्रिंगlimit- लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 10) - पूर्णांकregex_lists_operator- एकाधिक पैटर्न को कैसे संयोजित करें:OR(डिफ़ॉल्ट) याAND- स्ट्रिंग
-
search_by_body_patterns - रेगेक्स पैटर्न का उपयोग करके उनके कार्यान्वयन निकाय द्वारा कोड तत्व खोजें। यह पता लगाने के लिए उपयोगी है कि API या पैटर्न वास्तव में कहाँ उपयोग किए जाते हैं।
include_code_regex_list- कोड निकायों में मिलान करने के लिए रेगेक्स पैटर्न की सूची - आवश्यक स्ट्रिंग[]exclude_code_regex_list- परिणामों से बाहर करने के लिए रेगेक्स पैटर्न की सूची - स्ट्रिंग[]include_glob- फ़ाइल फ़िल्टर ग्लोब पैटर्न - स्ट्रिंगexclude_glob- फ़ाइल बहिष्करण ग्लोब पैटर्न - स्ट्रिंगfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - स्ट्रिंगlimit- लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 10) - पूर्णांकregex_lists_operator- एकाधिक पैटर्न को कैसे संयोजित करें:OR(डिफ़ॉल्ट) याAND- स्ट्रिंग
-
get_upstream_call_flow - पता लगाएँ कि कौन से फ़ंक्शन किसी दिए गए फ़ंक्शन को कॉल करते हैं। सभी कॉलर्स और प्रवेश बिंदुओं को खोजने, और यह समझने के लिए उपयोगी है कि यदि कोई हस्ताक्षर बदलता है तो क्या टूटता है।
fqn- फ़ंक्शन का पूर्णतः योग्य नाम - आवश्यक स्ट्रिंगdepth- कॉल श्रृंखला गहराई (0=केवल फ़ंक्शन, 1=प्रत्यक्ष कॉलर्स, आदि) - पूर्णांकfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - स्ट्रिंग
-
get_downstream_call_flow - पता लगाएँ कि कोई दिया गया फ़ंक्शन किन फ़ंक्शनों को कॉल करता है। प्रभाव विश्लेषण और निष्पादन प्रवाह को समझने के लिए उपयोगी है।
fqn- फ़ंक्शन का पूर्णतः योग्य नाम - आवश्यक स्ट्रिंगdepth- कॉल श्रृंखला गहराई (0=केवल फ़ंक्शन, 1=प्रत्यक्ष कॉलीज़, आदि) - पूर्णांकfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - स्ट्रिंग
-
get_source_code - किसी कोड तत्व के लिए उसके पूर्णतः योग्य नाम से पूर्ण स्रोत कोड (हस्ताक्षर और निकाय) प्राप्त करें।
fqn- तत्व का पूर्णतः योग्य नाम - आवश्यक स्ट्रिंगfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - स्ट्रिंग
-
get_type_hierarchy - वर्ग-जैसी संरचना (वर्ग, इंटरफ़ेस, एनम, रिकॉर्ड, अपवाद, स्ट्रक्ट) के लिए पूर्ण वंशानुक्रम पदानुक्रम प्राप्त करें। वंशानुक्रम वृक्षों और रिफैक्टरिंग को समझने के लिए आवश्यक है।
fqn- वर्ग-जैसी संरचना का पूर्णतः योग्य नाम - आवश्यक स्ट्रिंगfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - स्ट्रिंग
-
get_references - किसी वर्ग या मॉड्यूल के लिए प्रत्यक्ष इनबाउंड और आउटबाउंड कोड संदर्भ प्राप्त करें। केवल प्रत्यक्ष (गैर-सकर्मक) संदर्भ लौटाता है।
fqn- वर्ग या मॉड्यूल का पूर्णतः योग्य नाम - आवश्यक स्ट्रिंगfields- प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - स्ट्रिंग
-
get_current_architecture - पथ उपसर्ग और गहराई द्वारा फ़िल्टर किया गया एक पदानुक्रमित आर्किटेक्चर ग्राफ प्राप्त करें। मॉड्यूल संरचना और उच्च-स्तरीय निर्भरताओं की खोज के लिए उपयोगी है।
depth- पदानुक्रम गहराई (0=केवल रूट, 1=रूट + चिल्ड्रन, आदि) - आवश्यक पूर्णांकpath_prefix- नोड्स को फ़िल्टर करने के लिए वैकल्पिक पथ उपसर्ग (जैसे,com.example.service) - स्ट्रिंगecosystem- फ़िल्टर करने के लिए वैकल्पिक इकोसिस्टम (java,cs,py,js,ts) - स्ट्रिंग
-
get_intended_architecture - उपयोगकर्ता-परिभाषित आर्किटेक्चरल बाधाएँ प्राप्त करें जो निर्दिष्ट करती हैं कि किन मॉड्यूल को दूसरों पर निर्भर रहने की अनुमति है।
दिशानिर्देश उपकरण
- get_guidelines - SonarQube प्रोजेक्ट मुद्दों, कैटलॉग श्रेणियों, या दोनों के संयोजन के आधार पर कोडिंग दिशानिर्देश प्राप्त करें।
mode- दिशानिर्देश पुनर्प्राप्ति मोड:project_based,category_based, याcombined- आवश्यक स्ट्रिंगcategories- श्रेणी नामों की सूची (category_basedऔरcombinedमोड के लिए आवश्यक) - स्ट्रिंग[]languages- SonarQube रिपॉजिटरी कुंजी प्रारूप में लक्ष्य भाषाओं की सूची (आवश्यक जबcategoriesप्रदान किया गया हो) - स्ट्रिंग[]file_paths- दिशानिर्देशों को फ़िल्टर करने के लिए फ़ाइल पथों की वैकल्पिक सूची - स्ट्रिंग[]
तृतीय-पक्ष निर्भरता उपकरण
- check_dependency - किसी तृतीय-पक्ष निर्भरता को जोड़ने या अद्यतन करने से पहले सुरक्षा कमजोरियों, आपूर्ति-श्रृंखला मैलवेयर और लाइसेंस अनुपालन के लिए जाँचें।
purl- संस्करण सहित पैकेज URL (purl), purl-spec के अनुसार। प्रारूप:pkg:<type>/<namespace>/<name>@<version>(जैसेpkg:npm/[email protected],pkg:maven/org.apache.logging.log4j/[email protected],pkg:pypi/[email protected]) - आवश्यक स्ट्रिंग
संदर्भ संवर्धन पर्यावरण चर
| चर | विवरण | आवश्यक | डिफ़ॉल्ट |
|---|---|---|---|
SONARQUBE_URL | SonarQube क्लाउड URL | हाँ | https://sonarcloud.io |
SONARQUBE_TOKEN | प्रमाणीकरण टोकन | हाँ | कोई नहीं |
SONARQUBE_ORG | SonarQube क्लाउड पर संगठन कुंजी | हाँ | कोई नहीं |
SONARQUBE_PROJECT_KEY | SonarQube क्लाउड पर प्रोजेक्ट कुंजी | हाँ | कोई नहीं |
SONAR_SQ_BRANCH | स्पष्ट SonarQube शाखा ओवरराइड * | नहीं | कोई नहीं |
SONARQUBE_DEBUG_ENABLED | डीबग लॉगिंग सक्रिय करें (समस्या निवारण के लिए) | नहीं | गलत |
SONAR_LOG_LEVEL | लॉगिंग वर्बोसिटी (TRACE, DEBUG, INFO, WARNING, ERROR) | नहीं | INFO |
- जब git का उपयोग नहीं किया जा रहा हो, या जब git शाखा का नाम SonarQube में शाखा नाम से मेल नहीं खाता हो, तब प्रदान किया जाना चाहिए।
प्रोजेक्ट-विशिष्ट कॉन्फ़िगरेशन (अनुशंसित)
सबसे पहले, अपने प्रोजेक्ट के लिए एक मान्य व्यक्तिगत एक्सेस टोकन (PAT) के साथ SONARQUBE_TOKEN पर्यावरण चर निर्यात करें।
# macOS/Linux (Bash/Zsh)
export SONARQUBE_TOKEN="{<YourUserToken>}"
फिर, संदर्भ संवर्धन सर्वर को आपकी स्रोत फ़ाइलों तक सीधी पहुँच देने के लिए प्रोजेक्ट कार्यक्षेत्र माउंट करें:
{
"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"
}
}
}
}
महत्वपूर्ण: प्रोजेक्ट-स्कोप्ड कॉन्फ़िग में, SONARQUBE_TOKEN को env ब्लॉक में न डालें। इसे एक पर्यावरण चर (export SONARQUBE_TOKEN=...) के रूप में निर्यात करें। डॉकर इसे -e SONARQUBE_TOKEN के माध्यम से कंटेनर में अग्रेषित करेगा।
एजेंटिक तत्परता
नोट: एजेंटिक तत्परता उपकरण केवल SonarQube क्लाउड पर उपलब्ध हैं और आपके संगठन के लिए सुविधा सक्षम होनी आवश्यक है।
-
start_agentic_readiness_assessment - किसी प्रोजेक्ट के लिए एजेंटिक तत्परता मूल्यांकन शुरू करें। स्थिति
PENDINGऔर एकassessmentIdके साथ तुरंत लौटता है। परिणामों के लिए मतदान करने हेतुget_agentic_readiness_assessmentका उपयोग करें।projectKey- प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (अनदेखा किया जाता है जबSONARQUBE_PROJECT_KEYपरिभाषित हो)branch- मूल्यांकन हेतु शाखा। प्रोजेक्ट की डिफ़ॉल्ट शाखा का उपयोग करने के लिए छोड़ें - स्ट्रिंग
-
get_agentic_readiness_assessment - किसी मूल्यांकन का परिणाम प्राप्त करें। उसी
assessmentIdके साथ पुनः कॉल करें जब तक स्थितिCOMPLETED,FAILED, याINTERRUPTEDन हो जाए। पूर्ण होने पर, समग्र स्तर और अनुशंसित कार्यों और साक्ष्य के साथ प्रति-स्तंभ विवरण लौटाता है।assessmentId-start_agentic_readiness_assessmentद्वारा लौटाया गया मूल्यांकन आईडी - आवश्यक स्ट्रिंग
-
list_agentic_readiness_assessments - किसी प्रोजेक्ट के लिए सभी मूल्यांकन सूचीबद्ध करें, सबसे नया पहले। पूर्ण स्तंभ-स्तरीय परिणामों के लिए
get_agentic_readiness_assessmentका उपयोग करें।projectKey- मूल्यांकन सूचीबद्ध करने के लिए प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (अनदेखा किया जाता है जबSONARQUBE_PROJECT_KEYपरिभाषित हो)branch- शाखा नाम से मूल्यांकन फ़िल्टर करें। सभी शाखाओं के लिए मूल्यांकन सूचीबद्ध करने हेतु छोड़ें - स्ट्रिंगpageIndex- 1-आधारित पृष्ठ सूचकांक (डिफ़ॉल्ट: 1) - संख्याpageSize- प्रति पृष्ठ मदों की संख्या, अधिकतम 100 (डिफ़ॉल्ट: 50) - संख्या
उदाहरण प्रॉम्प्ट
एक बार जब आप SonarQube MCP सर्वर सेट कर लेते हैं, तो सामान्य वास्तविक-विश्व परिदृश्यों के लिए यहाँ कुछ उदाहरण प्रॉम्प्ट दिए गए हैं:
एक विफल गुणवत्ता द्वार को ठीक करना
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 binaries repository से पूर्व-निर्मित रिलीज़ डाउनलोड करें। प्रत्येक रिलीज़ किया गया संस्करण वहाँ sonarqube-mcp-server-<version>.jar के रूप में प्रकाशित होता है (उदाहरण के लिए, sonarqube-mcp-server-1.19.0.2785.jar)।
JAR से चलाएँ
binaries repository से अपने इच्छित संस्करण का 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 सेट करें।
सामान्य समस्याएँ
"सुविधा काम नहीं कर रही है" या "उपकरण/कार्यक्षमता गायब है"
हो सकता है आप पुरानी 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
"मैं एक विशिष्ट संस्करण पर स्थिर रहना चाहता हूँ"
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 द्वारा शासित होता है, जिसमें परिणाम डेटा का उपयोग केवल आपके आंतरिक सॉफ़्टवेयर विकास उद्देश्यों के लिए शामिल है।