SonarQube

आधिकारिक

SonarQube सर्वर या क्लाउड के साथ सहज एकीकरण प्रदान करता है, और एजेंट संदर्भ में सीधे कोड स्निपेट का विश्लेषण सक्षम करता है

SonarQube MCP के साथ आप क्या कर सकते हैं?

  • कोड स्निपेट का विश्लेषण करें — अपने असिस्टेंट से analyze_code_snippet के माध्यम से किसी स्निपेट या फ़ाइल पर स्थानीय कोड विश्लेषण चलाने के लिए कहें, संदर्भ ब्लोट से बचने के लिए वैकल्पिक वर्कस्पेस माउंटिंग के साथ।
  • इश्यू खोजें और प्रबंधित करें — असिस्टेंट से SonarQube इश्यू खोजने, समीक्षा करने और अपडेट करने के लिए कहें, जिसमें रीड-ओनली मोड में न होने पर उनकी स्थिति बदलना भी शामिल है।
  • क्वालिटी गेट और मापदंड जांचें — अपने SonarQube प्रोजेक्ट्स में क्वालिटी गेट स्थिति, प्रोजेक्ट मेट्रिक्स, कवरेज और डिपेंडेंसी जोखिमों के बारे में पूछें।
  • सुरक्षा हॉटस्पॉट की समीक्षा करें — असिस्टेंट को आपके कोडबेस में फ़्लैग किए गए सुरक्षा हॉटस्पॉट खोजने और उनके माध्यम से चलने दें।
  • प्रोजेक्ट और नियम ब्राउज़ करें — असिस्टेंट का उपयोग करके प्रोजेक्ट एक्सप्लोर करें, समर्थित भाषाओं की सूची देखें, और सीधे SonarQube से कोडिंग नियम खोजें।

दस्तावेज़

SonarQube MCP सर्वर

Build Quality Gate Status

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 स्टोर में उपलब्ध है। इन निर्देशों का पालन करें:

  1. एजेंट साइड पैनल खोलें
  2. ऊपर दाईं ओर तीन बिंदुओं (...) पर क्लिक करें और MCP सर्वर चुनें
  3. SonarQube खोजें और इंस्टॉल चुनें
  4. आवश्यक 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 क्लाउड से कनेक्ट करने के लिए:

Install for SonarQube Cloud

SonarQube क्लाउड US के लिए, इंस्टॉलेशन के बाद अपने MCP कॉन्फ़िगरेशन में env अनुभाग में "SONARQUBE_URL": "https://sonarqube.us" मैन्युअल रूप से जोड़ें।

  • SonarQube सर्वर से कनेक्ट करने के लिए:

Install for SonarQube Server

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 सर्वर उपयोगकर्ता टोकन
    • 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 रिपॉजिटरी में, सेटिंग्स -> Copilot -> कोडिंग एजेंट के अंतर्गत नेविगेट करें, और 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 के भीतर इंस्टॉलेशन प्रक्रिया को सरल बनाने के लिए निम्नलिखित बटन का उपयोग कर सकते हैं।

Install for SonarQube Cloud

SonarQube क्लाउड US के लिए, इंस्टॉलेशन के बाद अपने MCP कॉन्फ़िगरेशन में env अनुभाग में "SONARQUBE_URL": "https://sonarqube.us" मैन्युअल रूप से जोड़ें।

Install for SonarQube Server

Windsurf

SonarQube MCP सर्वर Windsurf प्लगइन के रूप में उपलब्ध है। इन निर्देशों का पालन करें:

  1. Windsurf सेटिंग्स > कैस्केड > MCP सर्वर खोलें और MCP मार्केटप्लेस खोलें चुनें
  2. कैस्केड MCP मार्केटप्लेस पर sonarqube खोजें
  3. SonarQube MCP सर्वर चुनें और इंस्टॉल चुनें
  4. आवश्यक SonarQube उपयोगकर्ता टोकन जोड़ें। फिर संगठन कुंजी जोड़ें यदि आप SonarQube क्लाउड से कनेक्ट करना चाहते हैं, या SonarQube URL यदि आप SonarQube सर्वर या कम्युनिटी बिल्ड से कनेक्ट करना चाहते हैं।

SonarQube क्लाउड US के लिए, URL को https://sonarqube.us पर सेट करें।

Zed

Zed में एक्सटेंशन दृश्य पर नेविगेट करें और SonarQube MCP सर्वर खोजें। एक्सटेंशन इंस्टॉल करते समय, आपको आवश्यक पर्यावरण चर प्रदान करने के लिए संकेत दिया जाएगा:

  • 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>"
    }
  }
}

IDE के लिए SonarQube के साथ एकीकरण

SonarQube MCP सर्वर IDE के लिए SonarQube के साथ एकीकृत हो सकता है ताकि आपके विकास कार्यप्रवाह को और बेहतर बनाया जा सके, आपके IDE के भीतर सीधे बेहतर कोड विश्लेषण और अंतर्दृष्टि प्रदान की जा सके।

कॉन्फ़िगरेशन

IDE के लिए SonarQube का उपयोग करते समय, 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 सर्वर चलाते समय, कंटेनर localhost पर चल रहे IDE के लिए SonarQube एम्बेडेड सर्वर तक नहीं पहुंच सकता। कंटेनर को IDE के लिए SonarQube सर्वर से कनेक्ट करने की अनुमति देने के लिए, अपने कंटेनर रन कमांड में --network=host विकल्प जोड़ें।

कॉन्फ़िगरेशन

आपके वातावरण के आधार पर, आपको विशिष्ट पर्यावरण चर प्रदान करने चाहिए।

आधार

MCP सर्वर चलाते समय आपको निम्नलिखित चर जोड़ना चाहिए:

पर्यावरण चरविवरण
STORAGE_PATHअनिवार्य निरपेक्ष पथ एक लिखने योग्य निर्देशिका के लिए जहां SonarQube MCP सर्वर अपनी फ़ाइलें संग्रहीत करेगा (जैसे, निर्माण, अद्यतन और दृढ़ता के लिए), यह कंटेनर छवि का उपयोग करते समय स्वचालित रूप से प्रदान किया जाता है
SONARQUBE_PROJECT_KEYवैकल्पिक डिफ़ॉल्ट परियोजना कुंजी। सेट होने पर, सभी उपकरण जिन्हें परियोजना कुंजी की आवश्यकता होती है, स्वचालित रूप से इस मान का उपयोग करेंगे — projectKey पैरामीटर उनके स्कीमा से पूरी तरह हटा दिया जाता है। एकल परियोजना पर काम करते समय उपयोगी।
SONARQUBE_IDE_PORTवैकल्पिक पोर्ट नंबर 64120 और 64130 के बीच जो SonarQube MCP सर्वर को IDE के लिए SonarQube से कनेक्ट करने के लिए उपयोग किया जाता है।
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, ide, issues, projects, quality-gates, rules, duplications, measures, security-hotspots, dependency-risks, coverage, cag)। नोट: projects टूलसेट हमेशा सक्षम होता है क्योंकि अन्य ऑपरेशनों के लिए प्रोजेक्ट कुंजियाँ खोजने हेतु यह आवश्यक है। Vortex संदर्भ उपकरण (पुराना नाम: Context Augmentation/CAG) और Vortex विश्लेषण उपकरण (पुराना नाम: Advanced Analysis/A3S) केवल stdio मोड में उपलब्ध हैं और एक संयुक्त संगठन अधिकार साझा करते हैं — किसी भी एक का उपयोग करने के लिए संगठन को दोनों का हकदार होना चाहिए। SonarQube Server पर, stdio Vortex संदर्भ और run_advanced_code_analysis को सूचीबद्ध करता है जब CAG और A3S दोनों हब अधिकृत होते हैं। एकीकृत vortex टूलसेट कुंजी को प्राथमिकता दें। पुरानी cag और analysis कुंजियाँ अभी भी काम करती हैं; जब वे vortex के बिना उपयोग की जाती हैं तो स्टार्टअप चेतावनी और सर्वर निर्देशों में एक अप्रचलन नोट जारी किया जाता है। Streamable HTTP मोड में, क्लाइंट प्रति-अनुरोध इसे और सीमित करने के लिए SONARQUBE_TOOLSETS HTTP हेडर भेज सकते हैं, लेकिन सर्वर के साथ लॉन्च किए गए टूलसेट से परे टूलसेट सक्षम नहीं कर सकते (नीचे Streamable HTTP परिवहन देखें)।
SONARQUBE_READ_ONLYजब true पर सेट किया जाता है, तो केवल-पठन मोड सक्षम होता है जो सभी लेखन ऑपरेशनों को अक्षम कर देता है (उदाहरण के लिए समस्या स्थिति बदलना)। यह फ़िल्टर SONARQUBE_TOOLSETS के साथ संचयी है यदि दोनों सेट हैं। डिफ़ॉल्ट: false। Streamable HTTP मोड में, क्लाइंट व्यक्तिगत अनुरोधों को केवल-पठन तक सीमित करने के लिए SONARQUBE_READ_ONLY HTTP हेडर भेज सकते हैं, लेकिन सर्वर-स्तरीय केवल-पठन प्रतिबंध नहीं हटा सकते (नीचे Streamable HTTP परिवहन देखें)।
उपलब्ध टूलसेट
टूलसेटकुंजीविवरण
विश्लेषणanalysisकोड विश्लेषण उपकरण (analyze_code_snippet के माध्यम से स्थानीय विश्लेषण, analyze_file_list/Vortex विश्लेषण के पक्ष में अप्रचलित)
IDEideSonarQube for IDE ब्रिज उपकरण (फ़ाइल विश्लेषण, स्वचालित विश्लेषण टॉगल) — वर्तमान में analysis में भी शामिल
समस्याएँissuesSonarQube समस्याओं को खोजें और प्रबंधित करें
सुरक्षा हॉटस्पॉटsecurity-hotspotsसुरक्षा हॉटस्पॉट खोजें और समीक्षा करें
प्रोजेक्टprojectsSonarQube प्रोजेक्ट ब्राउज़ करें और खोजें
गुणवत्ता गेटquality-gatesगुणवत्ता गेट और उनकी स्थिति तक पहुँचें
नियमrulesSonarQube नियम ब्राउज़ करें और खोजें
स्रोतsourcesस्रोत कोड और SCM जानकारी तक पहुँचें
डुप्लिकेशनduplicationsप्रोजेक्टों में कोड डुप्लिकेशन खोजें
मापmeasuresमेट्रिक्स और माप प्राप्त करें (माप और मेट्रिक्स दोनों उपकरण शामिल हैं)
भाषाएँlanguagesसमर्थित प्रोग्रामिंग भाषाओं की सूची बनाएं
पोर्टफोलियोportfoliosपोर्टफोलियो और उद्यम प्रबंधित करें (Cloud और Server)
सिस्टमsystemसिस्टम प्रशासन उपकरण (केवल Server)
वेबहुकwebhooksवेबहुक प्रबंधित करें
निर्भरता जोखिमdependency-risksनिर्भरता जोखिम और सुरक्षा समस्याओं का विश्लेषण करें (SCA)
कवरेजcoverageपरीक्षण कवरेज विश्लेषण और सुधार उपकरण
Vortex संदर्भcagVortex संदर्भ उपकरण — केवल stdio। vortex के पक्ष में अप्रचलित (पुराना नाम: Context Augmentation/CAG)
Vortexvortexएकीकृत, अनुशंसित टूलसेट जो Vortex संदर्भ और Vortex विश्लेषण उपकरण दोनों को एक नाम के अंतर्गत प्रस्तुत करता है (केवल stdio; Cloud को संयुक्त संगठन अधिकार चाहिए; Server को दोनों हब अधिकृत चाहिए)
एजेंटिक तत्परताagentic-readinessएजेंटिक तत्परता मूल्यांकन उपकरण (SonarQube Cloud, संगठन अधिकार आवश्यक)

उदाहरण

विश्लेषण, समस्याएँ और गुणवत्ता गेट टूलसेट सक्षम करें (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

पूर्ण कार्यक्षमता सक्षम करने के लिए, सर्वर शुरू करने से पहले निम्नलिखित पर्यावरण चर सेट किए जाने चाहिए:

पर्यावरण चरविवरणआवश्यक
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_ORG, और SONARQUBE_URL=https://sonarqube.us सेट करें

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 मोड): SONARQUBE_ORG की उपस्थिति यह निर्धारित करती है कि आप SonarQube Cloud या Server से कनेक्ट हो रहे हैं या नहीं। यदि SONARQUBE_ORG सेट है, तो SonarQube Cloud का उपयोग किया जाता है; अन्यथा, SonarQube Server का उपयोग किया जाता है।

ट्रांसपोर्ट मोड

MCP विनिर्देश दो ट्रांसपोर्ट तंत्रों को परिभाषित करता है: Stdio और Streamable HTTP। SonarQube MCP सर्वर दोनों का समर्थन करता है:

MCP ट्रांसपोर्टसर्वर मोडसामान्य उपयोग
Stdioडिफ़ॉल्ट (कोई SONARQUBE_TRANSPORT नहीं)स्थानीय MCP क्लाइंट जो सर्वर को सबप्रोसेस के रूप में लॉन्च करते हैं (Cursor, Claude Code, VS Code, आदि)
Streamable HTTPSONARQUBE_TRANSPORT=http या httpsदूरस्थ या बहु-उपयोगकर्ता परिनियोजन; क्लाइंट HTTP(S) पर /mcp से कनेक्ट होते हैं (जैसे स्व-होस्टेड सर्वर URL के साथ Windsurf)

नोट: Streamable HTTP वर्तमान MCP नेटवर्क ट्रांसपोर्ट है। पुराने MCP संस्करणों से केवल SSE-आधारित 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_TRANSPORTStreamable HTTP ट्रांसपोर्ट सक्षम करने के लिए http पर सेट करेंसेट नहीं (stdio)
SONARQUBE_HTTP_PORTपोर्ट नंबर (1024-65535)8080
SONARQUBE_HTTP_HOSTबाइंड करने के लिए होस्ट (सुरक्षा के लिए डिफ़ॉल्ट रूप से localhost)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSCORS के लिए अनुमत ब्राउज़र ओरिजिन, अल्पविराम से अलग (जैसे https://my-app.example.com)सेट नहीं
SONARQUBE_MCP_IN_CONTAINERकंटेनर के अंदर चलने पर true पर सेट करें। आधिकारिक Docker इमेज इसे स्वचालित रूप से सेट करती है; अन्य OCI रनटाइम (Podman, Kubernetes, Nomad, आदि) का उपयोग करते समय इसे स्वयं सेट करें।false

नोट: Streamable HTTP मोड (HTTP या HTTPS) में, सर्वर स्टेटलेस है — प्रत्येक क्लाइंट अनुरोध में उपयोगकर्ता का अपना SonarQube टोकन ले जाने वाला Authorization: Bearer <token> हेडर शामिल होना चाहिए। SonarQube Cloud के लिए, संगठन निम्नानुसार हल किया जाता है:

  • यदि सर्वर स्टार्टअप पर SONARQUBE_ORG सेट है, तो सभी अनुरोध उस संगठन को रूट किए जाते हैं। क्लाइंट को SONARQUBE_ORG हेडर नहीं भेजना चाहिए — ऐसा करने पर त्रुटि होगी।
  • यदि सर्वर स्टार्टअप पर SONARQUBE_ORG सेट नहीं है, तो प्रत्येक क्लाइंट को प्रत्येक अनुरोध पर SONARQUBE_ORG हेडर अवश्य प्रदान करना चाहिए। क्लाइंट SONARQUBE_TOOLSETS और/या SONARQUBE_READ_ONLY हेडर प्रदान करके प्रति-अनुरोध दृश्यमान टूल को भी सीमित कर सकते हैं; ये सर्वर-स्तरीय कॉन्फ़िगरेशन के शीर्ष पर अतिरिक्त फ़िल्टरिंग लागू करते हैं — वे केवल दायरा कम कर सकते हैं, कभी विस्तार नहीं कर सकते। अनुरोधों के बीच कोई सत्र स्थिति बनाए नहीं रखी जाती है।

अप्रचलित: SONARQUBE_TOKEN अनुरोध हेडर अभी भी पिछड़े संगतता के लिए स्वीकार किया जाता है लेकिन भविष्य के संस्करण में हटा दिया जाएगा। Authorization: Bearer <token> पर माइग्रेट करें।

3. HTTPS (TLS पर Streamable HTTP) (बहु-उपयोगकर्ता उत्पादन परिनियोजन के लिए अनुशंसित)

TLS एन्क्रिप्शन के साथ सुरक्षित Streamable HTTP ट्रांसपोर्ट। SSL प्रमाणपत्रों की आवश्यकता होती है।

✅ उत्पादन के लिए अनुशंसित: Streamable HTTP पर कई उपयोगकर्ताओं के लिए MCP सर्वर परिनियोजित करते समय HTTPS का उपयोग करें। सर्वर सुरक्षा के लिए डिफ़ॉल्ट रूप से 127.0.0.1 (localhost) से बाइंड होता है।

पर्यावरण चरविवरणडिफ़ॉल्ट
SONARQUBE_TRANSPORTTLS पर Streamable HTTP ट्रांसपोर्ट सक्षम करने के लिए https पर सेट करेंसेट नहीं (stdio)
SONARQUBE_HTTP_PORTपोर्ट नंबर (आमतौर पर HTTPS के लिए 8443)8080
SONARQUBE_HTTP_HOSTबाइंड करने के लिए होस्ट (सुरक्षा के लिए डिफ़ॉल्ट रूप से localhost)127.0.0.1
SONARQUBE_HTTP_ALLOWED_ORIGINSCORS के लिए अनुमत ब्राउज़र ओरिजिन, अल्पविराम से अलग (जैसे 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 अभी भी डिफ़ॉल्ट रूप से localhost ओरिजिन की अनुमति देता है।

आपकी मशीन पर स्थानीय रूप से चलने वाले सर्वर के लिए (केवल 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 \
  -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 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 प्रमाणपत्रों के साथ बहु-उपयोगकर्ता उत्पादन परिनियोजन के लिए है।

सेवा एंडपॉइंट

Streamable HTTP मोड (http या https) में चलते समय, सर्वर /mcp पर MCP एंडपॉइंट के अलावा कुछ बिना प्रमाणीकरण वाले सेवा एंडपॉइंट उजागर करता है। ये सेवा-से-सेवा उपयोग (निगरानी, ऑर्केस्ट्रेशन, क्लाइंट संगतता जांच) के लिए हैं और इन्हें Authorization हेडर की आवश्यकता नहीं होती है।

एंडपॉइंटविधिविवरणउदाहरण प्रतिक्रिया
/healthGETलाइवनेस प्रोब। सर्वर अनुरोध स्वीकार करने के बाद खाली बॉडी के साथ 200 OK लौटाता है।(खाली बॉडी)
/infoGETMCP सर्वर संस्करण को JSON के रूप में लौटाता है। परिनियोजित सर्वर संस्करण सत्यापित करने के लिए उपयोगी।{"version":"1.16.0"}

ये एंडपॉइंट Stdio ट्रांसपोर्ट के साथ चलने पर उपलब्ध नहीं हैं।

कस्टम प्रमाणपत्र

यदि आपका SonarQube Server स्व-हस्ताक्षरित प्रमाणपत्र या निजी प्रमाणपत्र प्राधिकरण (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>"
    }
  }
}

नोट: कंटेनर के बजाय JAR से सर्वर चला रहे हैं? उपरोक्त वॉल्यूम माउंट कंटेनर के OS ट्रस्ट स्टोर में प्रमाणपत्र इंस्टॉल करता है, जिसे सर्वर भी पढ़ता है। यदि आप OS ट्रस्ट स्टोर का उपयोग नहीं कर सकते — विशेष रूप से Windows पर, जहां इससे परामर्श नहीं किया जाता है — तो JVM को CA प्रमाणपत्र रखने वाले Java ट्रस्टस्टोर पर इंगित करें: -Djavax.net.ssl.trustStore=/path/to/truststore.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=<passphrase>। इसे डिफ़ॉल्ट विश्वसनीय प्रमाणपत्रों के शीर्ष पर जोड़ा जाता है।

प्रॉक्सी

SonarQube MCP सर्वर मानक Java प्रॉक्सी सिस्टम गुणों के माध्यम से HTTP और SOCKS5 प्रॉक्सी का समर्थन करता है।

कॉन्फ़िगरेशन

HTTP/HTTPS प्रॉक्सी

आप Java सिस्टम गुणों का उपयोग करके प्रॉक्सी सेटिंग्स कॉन्फ़िगर कर सकते हैं। इन्हें पर्यावरण चर के रूप में या JVM तर्क के रूप में पारित किया जा सकता है।

सामान्य प्रॉक्सी गुण:

गुणविवरणउदाहरण
http.proxyHostHTTP प्रॉक्सी होस्टनामproxy.example.com
http.proxyPortHTTP प्रॉक्सी पोर्ट8080
https.proxyHostHTTPS प्रॉक्सी होस्टनामproxy.example.com
https.proxyPortHTTPS प्रॉक्सी पोर्ट8443
http.nonProxyHostsप्रॉक्सी को बायपास करने वाले होस्ट (पाइप-से अलग)localhost|127.0.0.1|*.internal.com

HTTP/HTTPS प्रॉक्सी प्रमाणीकरण:

गुणविवरणउदाहरण
http.proxyUserHTTP प्रॉक्सी उपयोगकर्ता नामmyuser
http.proxyPasswordHTTP प्रॉक्सी पासवर्डmypassword
https.proxyUserHTTPS प्रॉक्सी उपयोगकर्ता नामmyuser
https.proxyPasswordHTTPS प्रॉक्सी पासवर्डmypassword

SOCKS5 प्रॉक्सी

SOCKS5 प्रॉक्सी समर्थित हैं।

PropertyDescriptionDefaultExample
socksProxyHostSOCKS5 प्रॉक्सी होस्टनाम—localhost
socksProxyPortSOCKS5 प्रॉक्सी पोर्ट10801080
java.net.socks.usernameSOCKS5 उपयोगकर्ता नाम (यदि प्रमाणीकरण आवश्यक है)—myuser
java.net.socks.passwordSOCKS5 पासवर्ड (यदि प्रमाणीकरण आवश्यक है)—mypassword

क्लाइंट प्रमाणपत्र (पारस्परिक TLS)

यदि आपका SonarQube सर्वर TLS हैंडशेक के दौरान क्लाइंट को प्रमाणपत्र प्रस्तुत करने की आवश्यकता रखता है (पारस्परिक TLS), तो आप एक PKCS12 कीस्टोर प्रदान कर सकते हैं, इसे कंटेनर में माउंट करके और इसका स्थान JAVA_OPTS के माध्यम से पास करके।

कॉन्फ़िगरेशन

PKCS12 कीस्टोर का उपयोग करना

अपनी .p12 या .pfx फ़ाइल को कंटेनर में माउंट करें और कीस्टोर गुणों के साथ JAVA_OPTS पर्यावरण चर सेट करें:

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       # -rw-r--r-- (644) या व्यापक देखें
chmod 644 /path/to/client.p12    # कंटेनर उपयोगकर्ता को पढ़ने की अनुमति दें

यदि कीस्टोर में कोई पासफ़्रेज़ नहीं है तो -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 कीस्टोर का उपयोग करना

जब सर्वर JAR से चल रहा हो, तो -jar से पहले 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>

यदि कीस्टोर में कोई पासफ़्रेज़ नहीं है तो -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 विश्लेषकों के साथ फ़ाइल सामग्री का विश्लेषण करें। सटीकता के लिए हमेशा पूर्ण फ़ाइल सामग्री का विश्लेषण करता है। वैकल्पिक रूप से परिणामों को एक विशिष्ट कोड स्निपेट तक फ़िल्टर करें।

    अप्रचलित: analyze_code_snippet भविष्य के रिलीज़ में हटा दिया जाएगा। IDE के लिए SonarQube कनेक्ट करें ताकि analyze_file_list का उपयोग किया जा सके, या अपने संगठन के लिए Vortex विश्लेषण सक्षम करें ताकि run_advanced_code_analysis का उपयोग किया जा सके (नीचे देखें)।

    उपयोग:

    • वर्कस्पेस माउंटेड के साथ (अनुशंसित): 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, Secrets detection

जब IDE के लिए SonarQube के साथ एकीकरण सक्षम हो: (ये दो उपकरण analysis और ide दोनों टूलसेट के अंतर्गत टैग किए गए हैं)

  • analyze_file_list - IDE के लिए SonarQube का उपयोग करके वर्तमान कार्यशील निर्देशिका में फ़ाइलों का विश्लेषण करें। यह उपकरण फ़ाइलों की सूची पर कोड गुणवत्ता विश्लेषण करने के लिए चल रहे IDE के लिए SonarQube इंस्टेंस से जुड़ता है।

    • file_absolute_paths - विश्लेषण करने के लिए पूर्ण फ़ाइल पथों की सूची - आवश्यक String[]
  • toggle_automatic_analysis - IDE के लिए SonarQube स्वचालित विश्लेषण सक्षम या अक्षम करें। सक्षम होने पर, IDE के लिए SonarQube कार्यशील निर्देशिका में फ़ाइलों को संशोधित करते ही स्वचालित रूप से विश्लेषण करेगा। अक्षम होने पर, स्वचालित विश्लेषण बंद हो जाता है।

    • enabled - स्वचालित विश्लेषण सक्षम या अक्षम करें - आवश्यक बूलियन

SonarQube सर्वर पर, stdio Vortex संदर्भ उपकरणों और run_advanced_code_analysis को सूचीबद्ध करता है जब CAG और A3S दोनों हब अधिकृत होते हैं।

जब Vortex विश्लेषण सक्षम हो:

वर्कस्पेस को /app/mcp-workspace पर माउंटेड होना आवश्यक है

  • run_advanced_code_analysis - एकल फ़ाइल पर Vortex विश्लेषण चलाएँ। संगठन MCP कॉन्फ़िगरेशन से अनुमानित है (SonarQube सर्वर nil UUID प्लेसहोल्डर का उपयोग करता है)।
    • projectKey - प्रोजेक्ट की कुंजी - आवश्यक स्ट्रिंग (जब SONARQUBE_PROJECT_KEY परिभाषित हो तो अनदेखा किया जाता है)
    • branch - नवीनतम विश्लेषण संदर्भ प्राप्त करने के लिए उपयोग की जाने वाली शाखा का नाम - आवश्यक स्ट्रिंग
    • filePath - विश्लेषण करने के लिए फ़ाइल का प्रोजेक्ट-सापेक्ष पथ (जैसे, src/main/java/MyClass.java)। - आवश्यक स्ट्रिंग
    • fileScope - परिभाषित करता है कि फ़ाइल किस दायरे से उत्पन्न होती है: 'MAIN' या 'TEST' (डिफ़ॉल्ट: MAIN) - स्ट्रिंग

कवरेज

  • search_files_by_coverage - कवरेज द्वारा क्रमबद्ध प्रोजेक्ट में फ़ाइलों की खोज करें (आरोही - सबसे खराब कवरेज पहले)। यह उपकरण उन फ़ाइलों की पहचान करने में मदद करता है जिन्हें परीक्षण कवरेज सुधार की आवश्यकता है।

    • projectKey - खोजने के लिए प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (जब SONARQUBE_PROJECT_KEY परिभाषित हो तो अनदेखा किया जाता है)
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए 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 - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - स्ट्रिंग
    • pullRequest - वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - स्ट्रिंग
    • from - विश्लेषण करने के लिए पहली पंक्ति (1-आधारित, डिफ़ॉल्ट: 1) - संख्या
    • to - विश्लेषण करने के लिए अंतिम पंक्ति (समावेशी)। यदि निर्दिष्ट नहीं है, तो सभी पंक्तियाँ लौटाई जाती हैं - संख्या

निर्भरता जोखिम

नोट: निर्भरता जोखिम केवल SonarQube सर्वर 2025.4 Enterprise या उच्चतर से SonarQube Advanced Security सक्षम के साथ कनेक्ट होने पर उपलब्ध हैं।

  • search_dependency_risks - SonarQube प्रोजेक्ट के सॉफ़्टवेयर संरचना विश्लेषण मुद्दों (निर्भरता जोखिम) की खोज करें, विश्लेषित प्रोजेक्ट, एप्लिकेशन या पोर्टफोलियो में दिखाई देने वाले रिलीज़ के साथ युग्मित।
    • projectKey - प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (जब SONARQUBE_PROJECT_KEY परिभाषित हो तो अनदेखा किया जाता है)
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए 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 मुद्दे की स्थिति को "accept", "falsepositive" या "reopen" में बदलें।

    • key - मुद्दा कुंजी - आवश्यक स्ट्रिंग
    • status - नए मुद्दे की स्थिति - आवश्यक Enum {"accept", "falsepositive", "reopen"}
    • comment - स्थिति परिवर्तन की व्याख्या करने वाली वैकल्पिक टिप्पणी - स्ट्रिंग
  • search_sonar_issues_in_projects - मेरे संगठन के प्रोजेक्ट्स में SonarQube मुद्दों की खोज करें।

    • projectKeys - वैकल्पिक SonarQube प्रोजेक्ट कुंजियों की सूची - String[]
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - स्ट्रिंग
    • pullRequest - वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - स्ट्रिंग
    • severities - फ़िल्टर करने के लिए वैकल्पिक गंभीरता की सूची। संभावित मान: 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 में ठीक एक प्रविष्टि की आवश्यकता है - बूलियन
    • issueKey - विशिष्ट मुद्दा प्राप्त करने के लिए वैकल्पिक मुद्दा कुंजी - स्ट्रिंग
    • pageIndex - वैकल्पिक 1-आधारित पृष्ठ सूचकांक (डिफ़ॉल्ट: 1) - पूर्णांक
    • pageSize - वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - पूर्णांक

सुरक्षा हॉटस्पॉट

  • search_security_hotspots - SonarQube प्रोजेक्ट में सुरक्षा हॉटस्पॉट खोजें।

    • projectKey - प्रोजेक्ट या एप्लिकेशन कुंजी - आवश्यक स्ट्रिंग (जब SONARQUBE_PROJECT_KEY परिभाषित हो तो अनदेखा किया जाता है)
    • hotspotKeys - प्राप्त करने के लिए विशिष्ट सुरक्षा हॉटस्पॉट कुंजियों की अल्पविराम-पृथक सूची - String[]
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - स्ट्रिंग
    • pullRequest - वैकल्पिक पुल अनुरोध कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - स्ट्रिंग
    • files - फ़िल्टर करने के लिए वैकल्पिक फ़ाइल पथों की सूची - String[]
    • status - वैकल्पिक स्थिति फ़िल्टर: TO_REVIEW, REVIEWED - स्ट्रिंग
    • resolution - वैकल्पिक समाधान फ़िल्टर: FIXED, SAFE, ACKNOWLEDGED - स्ट्रिंग
    • sinceLeakPeriod - लीक अवधि (नई कोड) के बाद से बनाए गए हॉटस्पॉट फ़िल्टर करें - बूलियन
    • onlyMine - केवल मुझे सौंपे गए हॉटस्पॉट दिखाएँ - बूलियन
    • pageIndex - वैकल्पिक 1-आधारित पृष्ठ सूचकांक (डिफ़ॉल्ट: 1) - पूर्णांक
    • pageSize - वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - पूर्णांक
  • show_security_hotspot - किसी विशिष्ट सुरक्षा हॉटस्पॉट के बारे में विस्तृत जानकारी प्राप्त करें, जिसमें नियम विवरण, कोड संदर्भ, प्रवाह और टिप्पणियाँ शामिल हैं।

    • hotspotKey - सुरक्षा हॉटस्पॉट कुंजी - आवश्यक स्ट्रिंग
  • change_security_hotspot_status - किसी Security Hotspot की स्थिति बदलकर उसकी समीक्षा करें। REVIEWED के रूप में चिह्नित करते समय, आपको एक resolution (FIXED, SAFE, या ACKNOWLEDGED) निर्दिष्ट करना होगा।

    • hotspotKey - Security Hotspot कुंजी - आवश्यक String
    • status - नई स्थिति - आवश्यक Enum {"TO_REVIEW", "REVIEWED"}
    • resolution - स्थिति REVIEWED होने पर resolution - Enum {"FIXED", "SAFE", "ACKNOWLEDGED"}
    • comment - वैकल्पिक समीक्षा टिप्पणी - String

Languages

  • list_languages - इस SonarQube इंस्टेंस में समर्थित सभी प्रोग्रामिंग भाषाओं की सूची बनाएं।
    • q - भाषा कुंजियों/नामों से मिलान करने के लिए वैकल्पिक पैटर्न - String

Measures

  • get_component_measures - किसी घटक (प्रोजेक्ट, निर्देशिका, फ़ाइल) के लिए SonarQube measures प्राप्त करें।
    • projectKey - प्रोजेक्ट कुंजी - आवश्यक String जब SONARQUBE_PROJECT_KEY कॉन्फ़िगर न हो
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - String
    • metricKeys - प्राप्त करने के लिए वैकल्पिक मीट्रिक कुंजियाँ (जैसे ncloc, complexity, violations, coverage) - String[]
    • pullRequest - वैकल्पिक पुल रिक्वेस्ट कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - String

Metrics

  • search_metrics - SonarQube मीट्रिक्स खोजें।
    • pageIndex - वैकल्पिक 1-आधारित पृष्ठ सूचकांक (डिफ़ॉल्ट: 1) - Integer
    • pageSize - वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 100) - Integer

Portfolios

  • list_portfolios - फ़िल्टरिंग और पेजिनेशन विकल्पों के साथ SonarQube में उपलब्ध एंटरप्राइज़ पोर्टफोलियो की सूची बनाएं।

    SonarQube Server के लिए:

    • q - पोर्टफोलियो को नाम या कुंजी से फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - String
    • favorite - यदि सत्य है, तो केवल पसंदीदा पोर्टफोलियो लौटाता है - Boolean
    • pageIndex - वैकल्पिक 1-आधारित पृष्ठ संख्या (डिफ़ॉल्ट: 1) - Integer
    • pageSize - वैकल्पिक पृष्ठ आकार, अधिकतम 500 (डिफ़ॉल्ट: 100) - Integer

    SonarQube Cloud के लिए:

    • enterpriseId - एंटरप्राइज़ uuid। केवल तभी छोड़ा जा सकता है जब 'favorite' पैरामीटर मान true के साथ प्रदान किया गया हो - String
    • q - पोर्टफोलियो को नाम से फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - String
    • favorite - यदि 'enterpriseId' पैरामीटर छोड़ा गया है तो true होना आवश्यक है। यदि true है, तो केवल लॉग-इन उपयोगकर्ता द्वारा पसंदीदा किए गए पोर्टफोलियो लौटाता है। जब 'draft' true हो तो true नहीं हो सकता - Boolean
    • draft - यदि true है, तो केवल लॉग-इन उपयोगकर्ता द्वारा बनाए गए ड्राफ्ट लौटाता है। जब 'favorite' true हो तो true नहीं हो सकता - Boolean
    • pageIndex - लाने के लिए पृष्ठ का वैकल्पिक सूचकांक (डिफ़ॉल्ट: 1) - Integer
    • pageSize - लाने के लिए पृष्ठ का वैकल्पिक आकार (डिफ़ॉल्ट: 50) - Integer

Projects

  • search_my_sonarqube_projects - SonarQube प्रोजेक्ट खोजें। प्रतिक्रिया पृष्ठांकित है।

    • pageIndex - वैकल्पिक 1-आधारित पृष्ठ सूचकांक (डिफ़ॉल्ट: 1) - Integer
    • pageSize - वैकल्पिक पृष्ठ आकार। 0 से अधिक और 500 से कम या बराबर होना चाहिए (डिफ़ॉल्ट: 500) - Integer
    • q - प्रोजेक्ट को नाम (आंशिक मिलान) या कुंजी (सटीक मिलान) से फ़िल्टर करने के लिए वैकल्पिक खोज क्वेरी - String
  • list_branches - किसी प्रोजेक्ट के लिए विश्लेषित शाखाओं की सूची बनाएं।

    • SonarQube Cloud: type और mergeBranch फ़ील्ड के साथ दीर्घकालिक (LONG) और अल्पकालिक (SHORT) शाखाएँ लौटाता है। वैकल्पिक 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"}
  • list_pull_requests - किसी प्रोजेक्ट के लिए सभी पुल रिक्वेस्ट की सूची बनाएं। PR-सजाए गए विश्लेषण (कवरेज, मुद्दे, क्वालिटी गेट) के लिए पुल रिक्वेस्ट खोजने हेतु इस टूल का उपयोग करें। पुल रिक्वेस्ट कुंजी/आईडी लौटाता है जिसका उपयोग अन्य टूल के साथ किया जा सकता है। पुल रिक्वेस्ट के बिना शाखा-आधारित विश्लेषण के लिए, इसके बजाय list_branches का उपयोग करें।

    • projectKey - प्रोजेक्ट कुंजी (जैसे my_project) - आवश्यक String (जब SONARQUBE_PROJECT_KEY परिभाषित हो तो अनदेखा किया जाता है)

Quality Gates

  • get_project_quality_gate_status - SonarQube प्रोजेक्ट के लिए क्वालिटी गेट स्थिति प्राप्त करें।

    • analysisId - वैकल्पिक विश्लेषण आईडी - String
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - String
    • projectId - वैकल्पिक प्रोजेक्ट आईडी - String
    • projectKey - वैकल्पिक प्रोजेक्ट कुंजी - String
    • pullRequest - वैकल्पिक पुल रिक्वेस्ट कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - String
  • list_quality_gates - मेरे SonarQube में सभी क्वालिटी गेट की सूची बनाएं।

Rules

  • show_rule - SonarQube नियम के बारे में विस्तृत जानकारी दिखाता है।
    • key - नियम कुंजी - आवश्यक String

Duplications

  • search_duplicated_files - SonarQube प्रोजेक्ट में कोड डुप्लिकेशन वाली फ़ाइलें खोजें। डिफ़ॉल्ट रूप से, सभी पृष्ठों में सभी डुप्लिकेट फ़ाइलें स्वचालित रूप से लाता है (अधिकतम 10,000 फ़ाइलें)। केवल डुप्लिकेशन वाली फ़ाइलें लौटाता है।

    • projectKey - प्रोजेक्ट कुंजी - आवश्यक String (जब SONARQUBE_PROJECT_KEY परिभाषित हो तो अनदेखा किया जाता है)
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - String
    • pullRequest - वैकल्पिक पुल रिक्वेस्ट कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - String
    • pageSize - मैन्युअल पेजिनेशन के लिए प्रति पृष्ठ वैकल्पिक परिणामों की संख्या (अधिकतम: 500)। यदि निर्दिष्ट नहीं है, तो सभी डुप्लिकेट फ़ाइलें स्वचालित रूप से लाता है - Integer
    • pageIndex - मैन्युअल पेजिनेशन के लिए वैकल्पिक पृष्ठ संख्या (1 से शुरू)। यदि निर्दिष्ट नहीं है, तो सभी डुप्लिकेट फ़ाइलें स्वचालित रूप से लाता है - Integer
  • get_duplications - किसी फ़ाइल के लिए डुप्लिकेशन प्राप्त करें। फ़ाइल के प्रोजेक्ट पर Browse अनुमति आवश्यक है।

    • key - फ़ाइल कुंजी - आवश्यक String
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - String
    • pullRequest - वैकल्पिक पुल रिक्वेस्ट कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - String

Sources

  • get_raw_source - SonarQube से स्रोत कोड कच्चे पाठ के रूप में प्राप्त करें। फ़ाइल पर 'See Source Code' अनुमति आवश्यक है।

    • key - फ़ाइल कुंजी - आवश्यक String
    • branch - शाखा-आधारित विश्लेषण के लिए वैकल्पिक शाखा नाम। मान्य नाम खोजने के लिए list_branches का उपयोग करें - String
    • pullRequest - वैकल्पिक पुल रिक्वेस्ट कुंजी/आईडी। मान्य कुंजियाँ खोजने के लिए list_pull_requests का उपयोग करें - String
  • get_scm_info - SonarQube स्रोत फ़ाइलों की SCM जानकारी प्राप्त करें। फ़ाइल के प्रोजेक्ट पर See Source Code अनुमति आवश्यक है।

    • key - फ़ाइल कुंजी - आवश्यक String
    • commits_by_line - यदि मान false है तो पंक्तियों को SCM कमिट द्वारा समूहित करें, अन्यथा प्रत्येक पंक्ति के लिए कमिट प्रदर्शित करें - String
    • from - लौटाने के लिए पहली पंक्ति। 1 से शुरू होती है - Number
    • to - लौटाने के लिए अंतिम पंक्ति (सम्मिलित) - Number

System

नोट: सिस्टम टूल केवल SonarQube Server से कनेक्ट होने पर उपलब्ध हैं।

  • get_system_health - SonarQube Server इंस्टेंस की स्वास्थ्य स्थिति प्राप्त करें। GREEN (पूरी तरह से परिचालन), YELLOW (उपयोग योग्य लेकिन ध्यान देने की आवश्यकता है), या RED (परिचालन नहीं) लौटाता है।

  • get_system_info - JVM स्थिति, डेटाबेस, खोज अनुक्रमणिका और सेटिंग्स सहित SonarQube Server सिस्टम कॉन्फ़िगरेशन के बारे में विस्तृत जानकारी प्राप्त करें। '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 के बारे में स्थिति जानकारी प्राप्त करें। स्थिति (STARTING, UP, DOWN, RESTARTING, DB_MIGRATION_NEEDED, DB_MIGRATION_RUNNING), संस्करण और आईडी लौटाता है।

Webhooks

  • create_webhook - SonarQube संगठन या प्रोजेक्ट के लिए एक नया वेबहुक बनाएं। निर्दिष्ट प्रोजेक्ट पर 'Administer' अनुमति, या वैश्विक 'Administer' अनुमति आवश्यक है।

    • name - वेबहुक नाम - आवश्यक String
    • url - वेबहुक URL - आवश्यक String
    • projectKey - प्रोजेक्ट-विशिष्ट वेबहुक के लिए वैकल्पिक प्रोजेक्ट कुंजी - String
    • secret - वेबहुक पेलोड को सुरक्षित करने के लिए वैकल्पिक वेबहुक गुप्त कुंजी - String
  • list_webhooks - SonarQube संगठन या प्रोजेक्ट के लिए सभी वेबहुक की सूची बनाएं। निर्दिष्ट प्रोजेक्ट पर 'Administer' अनुमति, या वैश्विक 'Administer' अनुमति आवश्यक है।

    • projectKey - प्रोजेक्ट-विशिष्ट वेबहुक सूचीबद्ध करने के लिए वैकल्पिक प्रोजेक्ट कुंजी - String

Context Augmentation

Architecture Tools
  • search_by_signature_patterns - रेगेक्स पैटर्न का उपयोग करके उनके घोषणा हस्ताक्षरों द्वारा कोड तत्व (क्लास, विधियाँ, इंटरफ़ेस, ...) खोजें।

    • include_code_regex_list - हस्ताक्षरों से मिलान करने के लिए रेगेक्स पैटर्न की सूची - आवश्यक String[]
    • exclude_code_regex_list - परिणामों से बाहर करने के लिए रेगेक्स पैटर्न की सूची - String[]
    • include_glob - फ़ाइल फ़िल्टर ग्लोब पैटर्न (जैसे, *.java) - String
    • exclude_glob - फ़ाइल बहिष्करण ग्लोब पैटर्न - String
    • fields - प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - String
    • limit - लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 10) - Integer
    • regex_lists_operator - कई पैटर्न कैसे संयोजित करें: OR (डिफ़ॉल्ट) या AND - String
  • search_by_body_patterns - रेगेक्स पैटर्न का उपयोग करके उनके कार्यान्वयन निकाय द्वारा कोड तत्व खोजें। यह पता लगाने के लिए उपयोगी है कि APIs या पैटर्न वास्तव में कहाँ उपयोग किए जाते हैं।

    • include_code_regex_list - कोड निकायों में मिलान करने के लिए रेगेक्स पैटर्न की सूची - आवश्यक String[]
    • exclude_code_regex_list - परिणामों से बाहर करने के लिए रेगेक्स पैटर्न की सूची - String[]
    • include_glob - फ़ाइल फ़िल्टर ग्लोब पैटर्न - String
    • exclude_glob - फ़ाइल बहिष्करण ग्लोब पैटर्न - String
    • fields - प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - String
    • limit - लौटाने के लिए परिणामों की अधिकतम संख्या (डिफ़ॉल्ट: 10) - Integer
    • regex_lists_operator - कई पैटर्न कैसे संयोजित करें: OR (डिफ़ॉल्ट) या AND - String
  • get_upstream_call_flow - पता लगाएं कि कौन से फ़ंक्शन किसी दिए गए फ़ंक्शन को कॉल करते हैं। सभी कॉलर और प्रवेश बिंदु खोजने के लिए उपयोगी, और यह समझने के लिए कि हस्ताक्षर बदलने पर क्या टूटता है।

    • fqn - फ़ंक्शन का पूर्ण योग्य नाम - आवश्यक String
    • depth - कॉल श्रृंखला गहराई (0=केवल फ़ंक्शन, 1=प्रत्यक्ष कॉलर, आदि) - Integer
    • fields - प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - String
  • get_downstream_call_flow - पता लगाएं कि कोई दिया गया फ़ंक्शन किन फ़ंक्शनों को कॉल करता है। प्रभाव विश्लेषण और निष्पादन प्रवाह को समझने के लिए उपयोगी।

    • fqn - फ़ंक्शन का पूर्ण योग्य नाम - आवश्यक String
    • depth - कॉल श्रृंखला गहराई (0=केवल फ़ंक्शन, 1=प्रत्यक्ष कैली, आदि) - Integer
    • fields - प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - String
  • get_source_code - किसी कोड तत्व के लिए उसके पूर्ण योग्य नाम से पूर्ण स्रोत कोड (हस्ताक्षर और निकाय) प्राप्त करें।

    • fqn - तत्व का पूर्ण योग्य नाम - आवश्यक String
    • fields - प्रतिक्रिया में शामिल करने के लिए फ़ील्ड की अल्पविराम-पृथक सूची - String
  • 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 मोड के लिए आवश्यक) - 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) - आवश्यक स्ट्रिंग
संदर्भ संवर्धन पर्यावरण चर
चरविवरणआवश्यकडिफ़ॉल्ट
SONARQUBE_URLSonarQube क्लाउड URLहाँhttps://sonarcloud.io
SONARQUBE_TOKENप्रमाणीकरण टोकनहाँकोई नहीं
SONARQUBE_ORGSonarQube क्लाउड पर संगठन कुंजीहाँकोई नहीं
SONARQUBE_PROJECT_KEYSonarQube क्लाउड पर प्रोजेक्ट कुंजीहाँकोई नहीं
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=...) के रूप में निर्यात करें। Docker इसे -e SONARQUBE_TOKEN के माध्यम से कंटेनर में अग्रेषित करेगा।

एजेंटिक तत्परता

नोट: एजेंटिक तत्परता उपकरण केवल SonarQube क्लाउड पर उपलब्ध हैं और इसके लिए आपके संगठन के लिए सुविधा सक्षम होनी चाहिए।

  • start_agentic_readiness_assessment - किसी प्रोजेक्ट के लिए एजेंटिक तत्परता मूल्यांकन शुरू करें। स्थिति PENDING और एक assessmentId के साथ तुरंत लौटता है। परिणामों के लिए पोल करने के लिए get_agentic_readiness_assessment का उपयोग करें।

    • projectKey - प्रोजेक्ट कुंजी - आवश्यक स्ट्रिंग (अनदेखा किया जाता है जब SONARQUBE_PROJECT_KEY परिभाषित हो)
    • branch - मूल्यांकन करने के लिए शाखा। प्रोजेक्ट की डिफ़ॉल्ट शाखा का उपयोग करने के लिए छोड़ें - स्ट्रिंग
  • get_agentic_readiness_assessment - मूल्यांकन का परिणाम प्राप्त करें। स्थिति COMPLETED, FAILED, या INTERRUPTED होने तक समान assessmentId के साथ पुनः कॉल करें। पूरा होने पर, समग्र स्तर और अनुशंसित कार्यों और साक्ष्य के साथ प्रति-स्तंभ विवरण लौटाता है।

    • assessmentId - start_agentic_readiness_assessment द्वारा लौटाया गया मूल्यांकन ID - आवश्यक स्ट्रिंग
  • 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 बाइनरी रिपॉजिटरी से पूर्व-निर्मित रिलीज़ डाउनलोड करें। प्रत्येक जारी संस्करण वहाँ sonarqube-mcp-server-<version>.jar के रूप में प्रकाशित होता है (उदाहरण के लिए, sonarqube-mcp-server-1.19.0.2785.jar)।

JAR से चलाएँ

बाइनरी रिपॉजिटरी से अपने इच्छित संस्करण के लिए JAR डाउनलोड करें, फिर अपने MCP क्लाइंट को Java 21 या बाद के संस्करण के साथ चलाने के लिए कॉन्फ़िगर करें:

  • SonarQube क्लाउड से कनेक्ट करने के लिए:
{
  "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 सर्वर से कनेक्ट करने के लिए:
{
  "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 सर्वर को बनाने के लिए Java डेवलपमेंट किट (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 सर्वर संस्करण समर्थित नहीं है"

MCP सर्वर स्टार्टअप के दौरान कनेक्टेड SonarQube सर्वर संस्करण की जाँच करता है। यदि इंस्टेंस 2025.1 (SQS) या 25.1 (SQCB) से पुराना है, तो स्टार्टअप विफल हो जाता है:

SonarQube server version is not supported, minimal version is SQS 2025.1 or SQCB 25.1

समाधान: SonarQube सर्वर को समर्थित रिलीज़ में अपग्रेड करें। यह जाँच केवल SonarQube सर्वर से कनेक्ट करते समय लागू होती है (SONARQUBE_URL बिना SONARQUBE_ORG), SonarQube क्लाउड पर नहीं।

"सुविधा काम नहीं कर रही है" या "उपकरण/कार्यक्षमता गायब है"

आप एक पुरानी 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 स्रोत-उपलब्ध लाइसेंस v1.0 के तहत लाइसेंस प्राप्त। इस दस्तावेज़ीकरण के अनुपालन में SonarQube MCP सर्वर का उपयोग एक गैर-प्रतिस्पर्धी उद्देश्य है और इसलिए SSAL के तहत अनुमत है।

MCP के माध्यम से SonarQube का आपका उपयोग SonarQube क्लाउड सेवा की शर्तें या SonarQube सर्वर नियम और शर्तें द्वारा शासित है, जिसमें परिणाम डेटा का उपयोग केवल आपके आंतरिक सॉफ़्टवेयर विकास उद्देश्यों के लिए शामिल है।