SonarQube MCP Server

ทางการ

ให้การผสานรวมกับ SonarQube Server หรือ Cloud อย่างราบรื่น และช่วยให้สามารถวิเคราะห์โค้ดชิ้นส่วนต่างๆ ได้โดยตรงภายในบริบทของเอเจนต์

เอกสาร

SonarQube MCP Server

Build Quality Gate Status

SonarQube MCP Server เป็นเซิร์ฟเวอร์ Model Context Protocol (MCP) ที่ช่วยให้สามารถผสานรวมกับ SonarQube Server หรือ Cloud ได้อย่างราบรื่น เพื่อคุณภาพและความปลอดภัยของโค้ด นอกจากนี้ยังรองรับการวิเคราะห์ส่วนย่อยของโค้ดโดยตรงภายในบริบทของเอเจนต์

การตั้งค่าอย่างรวดเร็ว

แนวปฏิบัติที่ดีที่สุดด้านความปลอดภัย

🔒 สำคัญ: โทเค็น SonarQube ของคุณเป็นข้อมูลประจำตัวที่ละเอียดอ่อน ปฏิบัติตามแนวทางความปลอดภัยเหล่านี้:

เมื่อใช้คำสั่ง CLI:

  • หลีกเลี่ยงการฝังโทเค็นแบบตายตัว ในอาร์กิวเมนต์บรรทัดคำสั่ง – เพราะจะถูกบันทึกในประวัติของเชลล์
  • ใช้ตัวแปรสภาพแวดล้อม – ตั้งค่าโทเค็นในตัวแปรสภาพแวดล้อมก่อนรันคำสั่ง

เมื่อใช้ไฟล์การกำหนดค่า:

  • อย่าคอมมิตโทเค็น ไปยังระบบควบคุมเวอร์ชัน
  • ใช้การแทนที่ด้วยตัวแปรสภาพแวดล้อม ในไฟล์กำหนดค่าเมื่อเป็นไปได้

🚀 สร้างการกำหนดค่าของคุณ

วิธีที่เร็วที่สุดในการเริ่มต้นคือ SonarQube MCP Server Configuration Generator – เครื่องมือแบบโต้ตอบที่สร้างการกำหนดค่าพร้อมใช้งานสำหรับไคลเอนต์เอเจนต์ AI ที่คุณต้องการ

การตั้งค่าด้วยตนเอง

หากคุณต้องการกำหนดค่าด้วยตนเอง วิธีที่ง่ายที่สุดคือใช้อิมเมจคอนเทนเนอร์ของเราที่ sonarsource/sonarqube-mcp ใช้ sonarsource/sonarqube-mcp สำหรับการอัปเดตอัตโนมัติ (ด้วย --pull=always) หรือระบุแท็กเวอร์ชัน (เช่น sonarsource/sonarqube-mcp:1.19.0.2785) สำหรับการปรับใช้ที่สามารถทำซ้ำได้ อ่านด้านล่างหากคุณต้องการสร้างในเครื่อง

หมายเหตุ: แม้ว่าตัวอย่างด้านล่างจะใช้ docker แต่รันไทม์คอนเทนเนอร์ใดๆ ที่เข้ากันได้กับ OCI ก็สามารถทำงานได้ (เช่น Podman, nerdctl) เพียงแทนที่ docker ด้วยเครื่องมือที่คุณต้องการ

Antigravity

SonarQube MCP Server มีให้บริการใน Antigravity MCP Store ทำตามคำแนะนำเหล่านี้:

  1. เปิด Agent Side Panel
  2. คลิกจุดสามจุด (...) ที่มุมขวาบนและเลือก MCP Servers
  3. ค้นหา SonarQube และเลือก Install
  4. ระบุโทเค็นผู้ใช้ SonarQube ที่จำเป็น คุณยังสามารถระบุคีย์องค์กรสำหรับ SonarQube Cloud หรือ URL ของ SonarQube หากเชื่อมต่อกับ SonarQube Server

สำหรับ SonarQube Cloud US ให้ตั้งค่า URL เป็น https://sonarqube.us

อีกทางหนึ่ง คุณสามารถกำหนดค่าเซิร์ฟเวอร์ด้วยตนเองผ่าน mcp_config.json:

  • เพื่อเชื่อมต่อกับ SonarQube Cloud:

ใน Agent Side Panel คลิกจุดสามจุด (...) -> MCP Store -> Manage MCP Servers -> View raw config และเพิ่มสิ่งต่อไปนี้:

{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_TOKEN>",
        "SONARQUBE_ORG": "<YOUR_ORG>"
      }
    }
  }
}

สำหรับ SonarQube Cloud US ให้เพิ่ม "SONARQUBE_URL": "https://sonarqube.us" ด้วยตนเองในส่วน env และ "-e", "SONARQUBE_URL" ในอาร์เรย์ args

  • เพื่อเชื่อมต่อกับ SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_URL", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_USER_TOKEN>",
        "SONARQUBE_URL": "<YOUR_SERVER_URL>"
      }
    }
  }
}
Claude Code
  • เพื่อเชื่อมต่อกับ SonarQube Cloud:
claude mcp add sonarqube \
  --env SONARQUBE_TOKEN=$SONAR_TOKEN \
  --env SONARQUBE_ORG=$SONAR_ORG \
  -- docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_ORG sonarsource/sonarqube-mcp

สำหรับ SonarQube Cloud US ให้เพิ่ม --env SONARQUBE_URL=https://sonarqube.us ในคำสั่ง

  • เพื่อเชื่อมต่อกับ SonarQube Server:
claude mcp add sonarqube \
  --env SONARQUBE_TOKEN=$SONAR_USER_TOKEN \
  --env SONARQUBE_URL=$SONAR_URL \
  -- docker run --init --pull=always -i --rm -e SONARQUBE_TOKEN -e SONARQUBE_URL sonarsource/sonarqube-mcp
Codex CLI

แก้ไขไฟล์การกำหนดค่าด้วยตนเองที่ ~/.codex/config.toml และเพิ่มการกำหนดค่าต่อไปนี้:

  • เพื่อเชื่อมต่อกับ SonarQube Cloud:
[mcp_servers.sonarqube]
command = "docker"
args = ["run", "--init", "--pull=always", "--rm", "-i", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"]
env = { "SONARQUBE_TOKEN" = "<YOUR_USER_TOKEN>", "SONARQUBE_ORG" = "<YOUR_ORG>" }

สำหรับ SonarQube Cloud US ให้เพิ่ม "SONARQUBE_URL" = "https://sonarqube.us" ในส่วน env และ "-e", "SONARQUBE_URL" ในอาร์เรย์ args

  • เพื่อเชื่อมต่อกับ SonarQube Server:
[mcp_servers.sonarqube]
command = "docker"
args = ["run", "--init", "--pull=always", "--rm", "-i", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_URL", "sonarsource/sonarqube-mcp"]
env = { "SONARQUBE_TOKEN" = "<YOUR_TOKEN>", "SONARQUBE_URL" = "<YOUR_SERVER_URL>" }
Cursor
  • เพื่อเชื่อมต่อกับ SonarQube Cloud:

Install for SonarQube Cloud

สำหรับ SonarQube Cloud US ให้เพิ่ม "SONARQUBE_URL": "https://sonarqube.us" ด้วยตนเองในส่วน env ในการกำหนดค่า MCP ของคุณหลังการติดตั้ง

  • เพื่อเชื่อมต่อกับ SonarQube Server:

Install for SonarQube Server

Gemini CLI

หมายเหตุ: ส่วนขยาย Gemini CLI ได้ย้ายไปยังที่เก็บ sonarqube-agent-plugins แล้ว โปรดติดตั้งจากที่นั่นต่อไป

คุณสามารถติดตั้งส่วนขยายเซิร์ฟเวอร์ MCP ของเราได้โดยใช้คำสั่งต่อไปนี้:

gemini extensions install https://github.com/SonarSource/sonarqube-agent-plugins

คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็นก่อนเริ่ม Gemini:

ตัวแปรสภาพแวดล้อมที่จำเป็น:

  • สำหรับ SonarQube Cloud:

    • SONARQUBE_TOKEN - โทเค็น SonarQube Cloud ของคุณ
    • SONARQUBE_ORG - คีย์องค์กรของคุณ
    • SONARQUBE_URL - (ไม่บังคับ) ตั้งค่าเป็น https://sonarqube.us สำหรับ SonarQube Cloud US
  • สำหรับ SonarQube Server:

    • SONARQUBE_TOKEN - โทเค็น USER ของ SonarQube Server ของคุณ
    • SONARQUBE_URL - URL ของ SonarQube Server ของคุณ

เมื่อติดตั้งแล้ว ส่วนขยายจะถูกติดตั้งภายใต้ <home>/.gemini/extensions/sonarqube/gemini-extension.json

GitHub Copilot CLI

หลังจากเริ่ม Copilot CLI ให้รันคำสั่งต่อไปนี้เพื่อเพิ่มเซิร์ฟเวอร์ SonarQube MCP:

/mcp add

คุณจะต้องให้ข้อมูลต่างๆ เกี่ยวกับเซิร์ฟเวอร์ MCP คุณสามารถใช้แท็บเพื่อนำทางระหว่างฟิลด์ต่างๆ

  • เพื่อเชื่อมต่อกับ SonarQube Cloud:
Server Name: sonarqube
Server Type: Local (Press 1)
Command: docker
Arguments: run, --init, --pull=always, --rm, -i, -e, SONARQUBE_TOKEN, -e, SONARQUBE_ORG, sonarsource/sonarqube-mcp
Environment Variables: SONARQUBE_TOKEN=<YOUR_TOKEN>,SONARQUBE_ORG=<YOUR_ORG>
Tools: *

สำหรับ SonarQube Cloud US ให้เพิ่ม -e, SONARQUBE_URL ใน Arguments และ SONARQUBE_URL=https://sonarqube.us ใน Environment Variables

  • เพื่อเชื่อมต่อกับ SonarQube Server:
Server Name: sonarqube
Server Type: Local (Press 1)
Command: docker
Arguments: run, --init, --pull=always, --rm, -i, -e, SONARQUBE_TOKEN, -e, SONARQUBE_URL, sonarsource/sonarqube-mcp
Environment Variables: SONARQUBE_TOKEN=<YOUR_USER_TOKEN>,SONARQUBE_URL=<YOUR_SERVER_URL>
Tools: *

ไฟล์การกำหนดค่าอยู่ที่ ~/.copilot/mcp-config.json

GitHub Copilot coding agent

GitHub Copilot coding agent สามารถใช้ประโยชน์จากเซิร์ฟเวอร์ SonarQube MCP ได้โดยตรงใน CI/CD ของคุณ

ในการเพิ่มความลับให้กับสภาพแวดล้อม Copilot ของคุณ ให้ทำตาม เอกสารประกอบ ของ Copilot เฉพาะความลับที่มีชื่อขึ้นต้นด้วย COPILOT_MCP_ เท่านั้นที่จะพร้อมใช้งานสำหรับการกำหนดค่า MCP ของคุณ

ในที่เก็บ GitHub ของคุณ ไปที่ Settings -> Copilot -> Coding agent และเพิ่มการกำหนดค่าต่อไปนี้ในส่วนการกำหนดค่า MCP:

  • เพื่อเชื่อมต่อกับ SonarQube Cloud:
{
  "mcpServers": {
    "sonarqube": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "--rm",
        "-i",
        "-e",
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_ORG",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "COPILOT_MCP_SONARQUBE_TOKEN",
        "SONARQUBE_ORG": "COPILOT_MCP_SONARQUBE_ORG"
      },
      "tools": ["*"]
    }
  }
}

สำหรับ SonarQube Cloud US ให้เพิ่ม "-e", "SONARQUBE_URL" ในอาร์เรย์ args และ "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL" ในส่วน env จากนั้นตั้งค่าความลับ COPILOT_MCP_SONARQUBE_URL=https://sonarqube.us

  • เพื่อเชื่อมต่อกับ SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "--rm",
        "-i",
        "-e",
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_URL",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "COPILOT_MCP_SONARQUBE_USER_TOKEN",
        "SONARQUBE_URL": "COPILOT_MCP_SONARQUBE_URL"
      },
      "tools": ["*"]
    }
  }
}
Kiro

สร้างไฟล์ .kiro/settings/mcp.json ในไดเรกทอรีพื้นที่ทำงานของคุณ (หรือแก้ไขหากมีอยู่แล้ว) เพิ่มการกำหนดค่าต่อไปนี้:

  • เพื่อเชื่อมต่อกับ SonarQube Cloud:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "-i",
        "--rm",
        "-e", 
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_ORG",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_TOKEN>",
        "SONARQUBE_ORG": "<YOUR_ORG>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

สำหรับ SonarQube Cloud US ให้เพิ่ม "-e", "SONARQUBE_URL" ในอาร์เรย์ args และ "SONARQUBE_URL": "https://sonarqube.us" ในส่วน env

  • เพื่อเชื่อมต่อกับ SonarQube Server:
{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": [
        "run",
        "--init",
        "--pull=always",
        "-i",
        "--rm",
        "-e", 
        "SONARQUBE_TOKEN",
        "-e",
        "SONARQUBE_URL",
        "sonarsource/sonarqube-mcp"
      ],
      "env": {
        "SONARQUBE_TOKEN": "<YOUR_USER_TOKEN>",
        "SONARQUBE_URL": "<YOUR_SERVER_URL>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
VS Code

คุณสามารถใช้ปุ่มต่อไปนี้เพื่อลดความซับซ้อนของกระบวนการติดตั้งภายใน VS Code

Install for SonarQube Cloud

สำหรับ SonarQube Cloud US ให้เพิ่ม "SONARQUBE_URL": "https://sonarqube.us" ด้วยตนเองในส่วน env ในการกำหนดค่า MCP ของคุณหลังการติดตั้ง

Install for SonarQube Server

Windsurf

SonarQube MCP Server มีให้บริการเป็นปลั๊กอินของ Windsurf ทำตามคำแนะนำเหล่านี้:

  1. เปิด Settings ของ Windsurf > Cascade > MCP Servers และเลือก Open MCP Marketplace
  2. ค้นหา sonarqube บน Cascade MCP Marketplace
  3. เลือก SonarQube MCP Server และเลือก Install
  4. เพิ่มโทเค็นผู้ใช้ SonarQube ที่จำเป็น จากนั้นเพิ่มคีย์องค์กรหากคุณต้องการเชื่อมต่อกับ SonarQube Cloud หรือ URL ของ SonarQube หากคุณต้องการเชื่อมต่อกับ SonarQube Server หรือ Community Build

สำหรับ SonarQube Cloud US ให้ตั้งค่า URL เป็น https://sonarqube.us

Zed

ไปที่มุมมอง Extensions ใน Zed และค้นหา SonarQube MCP Server เมื่อติดตั้งส่วนขยาย คุณจะได้รับแจ้งให้ระบุตัวแปรสภาพแวดล้อมที่จำเป็น:

  • เมื่อใช้ SonarQube Cloud:
{
  "sonarqube_token": "YOUR_SONARQUBE_TOKEN",
  "sonarqube_org": "SONARQUBE_ORGANIZATION_KEY",
  "docker_path": "DOCKER_PATH"
}

สำหรับ SonarQube Cloud US ให้เพิ่ม "sonarqube_url": "https://sonarqube.us" ในการกำหนดค่า

  • เมื่อใช้ SonarQube Server:
{
  "sonarqube_token": "YOUR_SONARQUBE_USER_TOKEN",
  "sonarqube_url": "YOUR_SONARQUBE_SERVER_URL",
  "docker_path": "DOCKER_PATH"
}

docker_path คือพาธไปยังไฟล์ปฏิบัติการ docker ตัวอย่าง:

Linux/macOS: /usr/bin/docker หรือ /usr/local/bin/docker

Windows: C:\Program Files\Docker\Docker\resources\bin\docker.exe

💡 เคล็ดลับ: เราแนะนำให้ดึงอิมเมจล่าสุดเป็นประจำหรือก่อนรายงานปัญหา เพื่อให้แน่ใจว่าคุณมีฟีเจอร์และการแก้ไขล่าสุด

การติดตั้งด้วยตนเอง

คุณสามารถติดตั้งเซิร์ฟเวอร์ SonarQube MCP ด้วยตนเองได้โดยคัดลอกส่วนย่อยต่อไปนี้ในไฟล์การกำหนดค่าเซิร์ฟเวอร์ MCP:

  • เพื่อเชื่อมต่อกับ SonarQube Cloud:
{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_ORG",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>"
    }
  }
}
  • เพื่อเชื่อมต่อกับ SonarQube Server:
{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_URL",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}

การผสานรวมกับ SonarQube for IDE

SonarQube MCP Server สามารถผสานรวมกับ SonarQube for IDE เพื่อปรับปรุงขั้นตอนการทำงานในการพัฒนาของคุณให้ดียิ่งขึ้น โดยให้การวิเคราะห์โค้ดและข้อมูลเชิงลึกที่ดีขึ้นโดยตรงภายใน IDE ของคุณ

การกำหนดค่า

เมื่อใช้ SonarQube for IDE ควรตั้งค่าตัวแปรสภาพแวดล้อม SONARQUBE_IDE_PORT ด้วยหมายเลขพอร์ตที่ถูกต้อง SonarQube for VS Code มีปุ่ม Quick Install ซึ่งจะตั้งค่าการกำหนดค่าพอร์ตที่ถูกต้องโดยอัตโนมัติ

ตัวอย่างเช่น กับ SonarQube Cloud:

{
  "sonarqube": {
    "command": "docker",
    "args": [
      "run",
      "--init",
      "--pull=always",
      "-i",
      "--rm",
      "-e",
      "SONARQUBE_TOKEN",
      "-e",
      "SONARQUBE_ORG",
      "-e",
      "SONARQUBE_IDE_PORT",
      "sonarsource/sonarqube-mcp"
    ],
    "env": {
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>",
      "SONARQUBE_IDE_PORT": "<64120-64130>"
    }
  }
}

เมื่อรันเซิร์ฟเวอร์ MCP ในคอนเทนเนอร์บน Linux คอนเทนเนอร์จะไม่สามารถเข้าถึงเซิร์ฟเวอร์ฝังตัวของ SonarQube for IDE ที่รันบน localhost ได้ เพื่อให้คอนเทนเนอร์เชื่อมต่อกับเซิร์ฟเวอร์ SonarQube for IDE ได้ ให้เพิ่มตัวเลือก --network=host ในคำสั่งรันคอนเทนเนอร์ของคุณ

การกำหนดค่า

คุณควรระบุตัวแปรสภาพแวดล้อมเฉพาะ ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมของคุณ

พื้นฐาน

คุณควรเพิ่มตัวแปรต่อไปนี้เมื่อรัน MCP Server:

ตัวแปรสภาพแวดล้อมคำอธิบาย
STORAGE_PATHพาธสัมบูรณ์ที่จำเป็นไปยังไดเรกทอรีที่เขียนได้ ซึ่ง SonarQube MCP Server จะใช้จัดเก็บไฟล์ (เช่น สำหรับการสร้าง อัปเดต และการคงอยู่) โดยจะถูกระบุโดยอัตโนมัติเมื่อใช้อิมเมจคอนเทนเนอร์
SONARQUBE_PROJECT_KEYคีย์โปรเจกต์เริ่มต้นที่ไม่บังคับ เมื่อตั้งค่าแล้ว เครื่องมือทั้งหมดที่ต้องการคีย์โปรเจกต์จะใช้ค่านี้โดยอัตโนมัติ — พารามิเตอร์ projectKey จะถูกลบออกจากสคีมาทั้งหมด มีประโยชน์เมื่อทำงานกับโปรเจกต์เดียว
SONARQUBE_IDE_PORTหมายเลขพอร์ตที่ไม่บังคับระหว่าง 64120 ถึง 64130 ที่ใช้เชื่อมต่อ SonarQube MCP Server กับ 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 จะถูกเปิดใช้งานเสมอเนื่องจากจำเป็นสำหรับการค้นหาคีย์โปรเจกต์สำหรับการดำเนินการอื่นๆ เครื่องมือ Context Augmentation จะพร้อมใช้งานเฉพาะในโหมด stdio และต้องมีสิทธิ์ขององค์กร ในโหมด Streamable HTTP ไคลเอนต์สามารถส่งส่วนหัว HTTP SONARQUBE_TOOLSETS เพื่อจำกัดขอบเขตเพิ่มเติมต่อคำขอ แต่ไม่สามารถเปิดใช้งานชุดเครื่องมือเกินกว่าที่เซิร์ฟเวอร์เริ่มต้นมา (ดู การขนส่ง Streamable HTTP ด้านล่าง)
SONARQUBE_READ_ONLYเมื่อตั้งค่าเป็น true จะเปิดใช้งานโหมดอ่านอย่างเดียวซึ่งปิดใช้งานการดำเนินการเขียนทั้งหมด (เช่น การเปลี่ยนสถานะของปัญหา) ตัวกรองนี้จะสะสมร่วมกับ SONARQUBE_TOOLSETS หากตั้งค่าทั้งคู่ ค่าเริ่มต้น: false ในโหมด Streamable HTTP ไคลเอนต์สามารถส่งส่วนหัว HTTP SONARQUBE_READ_ONLY เพื่อจำกัดคำขอแต่ละรายการเพิ่มเติมเป็นแบบอ่านอย่างเดียว แต่ไม่สามารถยกเลิกข้อจำกัดการอ่านอย่างเดียวระดับเซิร์ฟเวอร์ได้ (ดู การขนส่ง Streamable HTTP ด้านล่าง)
ชุดเครื่องมือที่พร้อมใช้งาน
ชุดเครื่องมือคีย์คำอธิบาย
การวิเคราะห์analysisเครื่องมือวิเคราะห์โค้ด (การวิเคราะห์ภายในและการวิเคราะห์ระยะไกลขั้นสูง)
ปัญหาissuesค้นหาและจัดการปัญหา SonarQube
ฮอตสปอตความปลอดภัยsecurity-hotspotsค้นหาและตรวจสอบฮอตสปอตความปลอดภัย
โปรเจกต์projectsเรียกดูและค้นหาโปรเจกต์ SonarQube
เกตคุณภาพquality-gatesเข้าถึงเกตคุณภาพและสถานะของเกต
กฎrulesเรียกดูและค้นหากฎ SonarQube
ซอร์สsourcesเข้าถึงซอร์สโค้ดและข้อมูล SCM
การทำซ้ำduplicationsค้นหาการทำซ้ำของโค้ดข้ามโปรเจกต์
มาตรวัดmeasuresดึงข้อมูลเมตริกและมาตรวัด (รวมทั้งเครื่องมือมาตรวัดและเมตริก)
ภาษาlanguagesแสดงรายการภาษาโปรแกรมที่รองรับ
พอร์ตโฟลิโอportfoliosจัดการพอร์ตโฟลิโอและองค์กร (Cloud และ Server)
ระบบsystemเครื่องมือการดูแลระบบ (Server เท่านั้น)
เว็บฮุกwebhooksจัดการเว็บฮุก
ความเสี่ยงด้านการพึ่งพาdependency-risksวิเคราะห์ความเสี่ยงด้านการพึ่งพาและปัญหาความปลอดภัย (SCA)
ความครอบคลุมcoverageเครื่องมือวิเคราะห์และปรับปรุงความครอบคลุมของการทดสอบ
การเสริมบริบทcagเครื่องมือการเสริมบริบท (โหมด stdio เท่านั้น ต้องมีสิทธิ์ขององค์กร)
ความพร้อมของเอเจนต์agentic-readinessเครื่องมือประเมินความพร้อมของเอเจนต์ (SonarQube Cloud ต้องมีสิทธิ์ขององค์กร)

ตัวอย่าง

เปิดใช้งานชุดเครื่องมือการวิเคราะห์ ปัญหา และเกตคุณภาพ (ใช้ Docker กับ SonarQube Cloud):

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

เปิดใช้งานโหมดอ่านอย่างเดียว (ใช้ Docker กับ SonarQube Cloud):

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_URLURL SonarQube Cloud แบบกำหนดเอง (ค่าเริ่มต้นคือ 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โทเค็น ประเภท USER ของ SonarQube Server ของคุณใช่
SONARQUBE_URLURL SonarQube Server ของคุณใช่

⚠️ การเชื่อมต่อกับ SonarQube Server ต้องใช้โทเค็นประเภท USER และจะทำงานไม่ถูกต้องหากใช้โทเค็นโปรเจกต์หรือโทเค็นส่วนกลาง

💡 เคล็ดลับการกำหนดค่า (โหมด stdio): การมีอยู่ของ SONARQUBE_ORG จะกำหนดว่าคุณกำลังเชื่อมต่อกับ SonarQube Cloud หรือ Server หากตั้งค่า SONARQUBE_ORG จะใช้ SonarQube Cloud มิฉะนั้นจะใช้ SonarQube Server

โหมดการขนส่ง

ข้อกำหนด MCP กำหนดกลไกการขนส่งสองแบบ: Stdio และ Streamable HTTP SonarQube MCP Server รองรับทั้งสองแบบ:

การขนส่ง MCPโหมดเซิร์ฟเวอร์การใช้งานทั่วไป
Stdioค่าเริ่มต้น (ไม่มี SONARQUBE_TRANSPORT)ไคลเอนต์ MCP ภายในที่เรียกใช้เซิร์ฟเวอร์เป็นกระบวนการย่อย (Cursor, Claude Code, VS Code ฯลฯ)
Streamable HTTPSONARQUBE_TRANSPORT=http หรือ httpsการปรับใช้ระยะไกลหรือแบบหลายผู้ใช้ ไคลเอนต์เชื่อมต่อกับ /mcp ผ่าน HTTP(S) (เช่น Windsurf กับ URL เซิร์ฟเวอร์ที่โฮสต์เอง)

หมายเหตุ: Streamable HTTP เป็นการขนส่งเครือข่าย MCP ปัจจุบัน การขนส่ง HTTP แบบ SSE-only รุ่นเก่าจาก MCP เวอร์ชันก่อนหน้าถูกยกเลิกและไม่รองรับ

1. Stdio (ค่าเริ่มต้น - แนะนำสำหรับการพัฒนาภายใน)

โหมดที่แนะนำสำหรับการพัฒนาภายในและการตั้งค่าผู้ใช้คนเดียว ซึ่งใช้โดยไคลเอนต์ MCP ส่วนใหญ่

ตัวอย่าง - Docker กับ SonarQube Cloud:

{
  "mcpServers": {
    "sonarqube": {
      "command": "docker",
      "args": ["run", "--init", "--pull=always", "-i", "--rm", "-e", "SONARQUBE_TOKEN", "-e", "SONARQUBE_ORG", "sonarsource/sonarqube-mcp"],
      "env": {
        "SONARQUBE_TOKEN": "<your-token>",
        "SONARQUBE_ORG": "<your-org>"
      }
    }
  }
}

2. HTTP (Streamable HTTP)

การขนส่ง Streamable HTTP แบบไม่เข้ารหัส ใช้ HTTPS แทนสำหรับการปรับใช้แบบหลายผู้ใช้

⚠️ ไม่แนะนำ: ใช้ Stdio สำหรับการพัฒนาภายใน หรือ HTTPS (Streamable HTTP) สำหรับการปรับใช้โปรดักชันแบบหลายผู้ใช้

ตัวแปรสภาพแวดล้อมคำอธิบายค่าเริ่มต้น
SONARQUBE_TRANSPORTตั้งค่าเป็น http เพื่อเปิดใช้งานการขนส่ง Streamable HTTPไม่ได้ตั้งค่า (stdio)
SONARQUBE_HTTP_PORTหมายเลขพอร์ต (1024-65535)8080
SONARQUBE_HTTP_HOSTโฮสต์ที่จะผูก (ค่าเริ่มต้นคือ localhost เพื่อความปลอดภัย)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
หมายเหตุ: ในโหมด Streamable 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 (Streamable HTTP ผ่าน TLS) (แนะนำสำหรับการปรับใช้ในระบบจริงแบบหลายผู้ใช้)

การขนส่ง Streamable HTTP ที่ปลอดภัยด้วยการเข้ารหัส TLS ต้องใช้ใบรับรอง SSL

แนะนำสำหรับระบบจริง: ใช้ HTTPS เมื่อปรับใช้เซิร์ฟเวอร์ MCP สำหรับผู้ใช้หลายรายผ่าน Streamable HTTP เซิร์ฟเวอร์จะผูกกับ 127.0.0.1 (localhost) ตามค่าเริ่มต้นเพื่อความปลอดภัย

ตัวแปรสภาพแวดล้อมคำอธิบายค่าเริ่มต้น
SONARQUBE_TRANSPORTตั้งค่าเป็น https เพื่อเปิดใช้งานการขนส่ง Streamable HTTP ผ่าน TLSไม่ได้ตั้งค่า (stdio)
SONARQUBE_HTTP_PORTหมายเลขพอร์ต (โดยทั่วไปคือ 8443 สำหรับ HTTPS)8080
SONARQUBE_HTTP_HOSTโฮสต์ที่จะผูก (ค่าเริ่มต้นเป็น localhost เพื่อความปลอดภัย)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

ตัวอย่าง - Docker กับ SonarQube Cloud:

หมายเหตุ: เมื่อทำงานในคอนเทนเนอร์ ให้ตั้งค่า 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 พร้อมเนื้อหาว่างเมื่อเซิร์ฟเวอร์พร้อมรับคำขอ(เนื้อหาว่าง)
/infoGETส่งคืนเวอร์ชันเซิร์ฟเวอร์ MCP เป็น 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>"
    }
  }
}

พร็อกซี

SonarQube MCP Server รองรับพร็อกซี HTTP และ SOCKS5 ผ่านคุณสมบัติระบบ Java มาตรฐาน

การกำหนดค่า

พร็อกซี HTTP/HTTPS

คุณสามารถกำหนดการตั้งค่าพร็อกซีโดยใช้คุณสมบัติระบบ Java ซึ่งสามารถตั้งค่าเป็นตัวแปรสภาพแวดล้อมหรือส่งผ่านเป็นอาร์กิวเมนต์ JVM

คุณสมบัติพร็อกซีทั่วไป:

คุณสมบัติคำอธิบายตัวอย่าง
http.proxyHostชื่อโฮสต์พร็อกซี HTTPproxy.example.com
http.proxyPortพอร์ตพร็อกซี HTTP8080
https.proxyHostชื่อโฮสต์พร็อกซี HTTPSproxy.example.com
https.proxyPortพอร์ตพร็อกซี HTTPS8443
http.nonProxyHostsโฮสต์ที่ข้ามพร็อกซี (คั่นด้วยไพพ์)localhost|127.0.0.1|*.internal.com

การรับรองความถูกต้องของพร็อกซี HTTP/HTTPS:

คุณสมบัติคำอธิบายตัวอย่าง
http.proxyUserชื่อผู้ใช้พร็อกซี HTTPmyuser
http.proxyPasswordรหัสผ่านพร็อกซี HTTPmypassword
https.proxyUserชื่อผู้ใช้พร็อกซี HTTPSmyuser
https.proxyPasswordรหัสผ่านพร็อกซี HTTPSmypassword

พร็อกซี SOCKS5

รองรับพร็อกซี SOCKS5

คุณสมบัติคำอธิบายค่าเริ่มต้นตัวอย่าง
socksProxyHostชื่อโฮสต์พร็อกซี SOCKS5localhost
socksProxyPortพอร์ตพร็อกซี SOCKS510801080
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, การตรวจจับความลับ

เมื่อเปิดใช้งานการผสานรวมกับ SonarQube for IDE:

  • analyze_file_list - วิเคราะห์ไฟล์ในไดเรกทอรีการทำงานปัจจุบันโดยใช้ SonarQube for IDE เครื่องมือนี้เชื่อมต่อกับอินสแตนซ์ SonarQube for IDE ที่กำลังทำงานเพื่อทำการวิเคราะห์คุณภาพโค้ดในรายการไฟล์

    • file_absolute_paths - รายการพาธไฟล์แบบสัมบูรณ์ที่จะวิเคราะห์ - สตริง[] ที่จำเป็น
  • toggle_automatic_analysis - เปิดหรือปิดการวิเคราะห์อัตโนมัติของ SonarQube for IDE เมื่อเปิดใช้งาน SonarQube for IDE จะวิเคราะห์ไฟล์โดยอัตโนมัติเมื่อมีการแก้ไขในไดเรกทอรีการทำงาน เมื่อปิดใช้งาน การวิเคราะห์อัตโนมัติจะถูกปิด

    • 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 - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง
    • maxCoverage - เกณฑ์ความครอบคลุมสูงสุด (0-100) ส่งคืนเฉพาะไฟล์ที่มีความครอบคลุม <= ค่านี้ - ตัวเลข
    • pageIndex - ดัชนีหน้า (เริ่มจาก 1, ค่าเริ่มต้น: 1) - ตัวเลข
    • pageSize - ขนาดหน้า (ค่าเริ่มต้น: 100, สูงสุด: 500) - ตัวเลข
  • get_file_coverage_details - รับข้อมูลความครอบคลุมทีละบรรทัดสำหรับไฟล์ที่ระบุ รวมถึงบรรทัดใดที่ยังไม่ครอบคลุมและบรรทัดใดที่มี branch ที่ครอบคลุมเพียงบางส่วน เครื่องมือนี้ช่วยระบุตำแหน่งที่แน่นอนในการเพิ่มความครอบคลุมของการทดสอบ ใช้หลังจากระบุไฟล์ที่มีความครอบคลุมต่ำผ่าน search_files_by_coverage

    • key - คีย์ไฟล์ (เช่น my_project:src/foo/Bar.java) - สตริงที่จำเป็น
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง
    • from - บรรทัดแรกที่ต้องการวิเคราะห์ (เริ่มจาก 1, ค่าเริ่มต้น: 1) - ตัวเลข
    • to - บรรทัดสุดท้ายที่ต้องการวิเคราะห์ (รวมบรรทัดนี้ด้วย) หากไม่ระบุ จะส่งคืนทุกบรรทัด - ตัวเลข

ความเสี่ยงด้าน Dependencies

หมายเหตุ: ความเสี่ยงด้าน Dependencies จะพร้อมใช้งานเมื่อเชื่อมต่อกับ SonarQube Server 2025.4 Enterprise ขึ้นไปที่เปิดใช้งาน SonarQube Advanced Security เท่านั้น

  • search_dependency_risks - ค้นหาปัญหาการวิเคราะห์องค์ประกอบซอฟต์แวร์ (ความเสี่ยงด้าน dependencies) ของโปรเจกต์ SonarQube พร้อมกับรีลีสที่ปรากฏในโปรเจกต์ แอปพลิเคชัน หรือพอร์ตโฟลิโอที่วิเคราะห์
    • projectKey - คีย์โปรเจกต์ - สตริงที่จำเป็น (จะถูกละเว้นเมื่อกำหนด SONARQUBE_PROJECT_KEY)
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง
    • pageIndex - ดัชนีหน้า (ไม่บังคับ) (เริ่มจาก 1, ค่าเริ่มต้น: 1) - จำนวนเต็ม
    • pageSize - ขนาดหน้า (ไม่บังคับ) ต้องมากกว่า 0 และน้อยกว่าหรือเท่ากับ 500 (ค่าเริ่มต้น: 100) - จำนวนเต็ม

องค์กร

หมายเหตุ: องค์กรจะพร้อมใช้งานเมื่อเชื่อมต่อกับ SonarQube Cloud เท่านั้น

  • list_enterprises - แสดงรายการองค์กรที่มีอยู่ใน SonarQube Cloud ที่คุณมีสิทธิ์เข้าถึง ใช้เครื่องมือนี้เพื่อค้นหา ID องค์กรที่สามารถใช้กับเครื่องมืออื่นๆ ได้
    • enterpriseKey - คีย์องค์กร (ไม่บังคับ) เพื่อกรองผลลัพธ์ - สตริง

Issues

  • change_sonar_issue_status - เปลี่ยนสถานะของ issue ใน SonarQube เป็น "accept", "falsepositive" หรือ "reopen" issue

    • key - คีย์ issue - สตริงที่จำเป็น
    • status - สถานะใหม่ของ issue - Enum ที่จำเป็น {"accept", "falsepositive", "reopen"}
  • search_sonar_issues_in_projects - ค้นหา issues ใน SonarQube ในโปรเจกต์ขององค์กรของฉัน

    • projects - รายการโปรเจกต์ Sonar (ไม่บังคับ) - String[]
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง
    • severities - รายการระดับความรุนแรง (ไม่บังคับ) เพื่อกรอง ค่าที่เป็นไปได้: INFO, LOW, MEDIUM, HIGH, BLOCKER - String[]
    • impactSoftwareQualities - รายการคุณภาพซอฟต์แวร์ (ไม่บังคับ) เพื่อกรอง ค่าที่เป็นไปได้: MAINTAINABILITY, RELIABILITY, SECURITY - String[]
    • issueStatuses - รายการสถานะ issue (ไม่บังคับ) เพื่อกรอง ค่าที่เป็นไปได้: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED, IN_SANDBOX - String[]
    • issueKey - คีย์ issue (ไม่บังคับ) เพื่อดึง issue เฉพาะ - สตริง
    • p - หมายเลขหน้า (ไม่บังคับ) (ค่าเริ่มต้น: 1) - จำนวนเต็ม
    • ps - ขนาดหน้า (ไม่บังคับ) ต้องมากกว่า 0 และน้อยกว่าหรือเท่ากับ 500 (ค่าเริ่มต้น: 100) - จำนวนเต็ม

Security Hotspots

  • search_security_hotspots - ค้นหา Security Hotspots ในโปรเจกต์ SonarQube

    • projectKey - คีย์โปรเจกต์หรือแอปพลิเคชัน - สตริงที่จำเป็น (จะถูกละเว้นเมื่อกำหนด SONARQUBE_PROJECT_KEY)
    • hotspotKeys - รายการคีย์ Security Hotspot เฉพาะที่ต้องการเรียกดู โดยคั่นด้วยเครื่องหมายจุลภาค - String[]
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง
    • files - รายการพาธไฟล์ (ไม่บังคับ) เพื่อกรอง - String[]
    • status - ตัวกรองสถานะ (ไม่บังคับ): TO_REVIEW, REVIEWED - สตริง
    • resolution - ตัวกรองการแก้ไข (ไม่บังคับ): FIXED, SAFE, ACKNOWLEDGED - สตริง
    • sinceLeakPeriod - กรอง hotspots ที่สร้างขึ้นตั้งแต่ช่วง leak period (new code) - Boolean
    • onlyMine - แสดงเฉพาะ hotspots ที่มอบหมายให้ฉัน - Boolean
    • p - หมายเลขหน้า (ไม่บังคับ) (ค่าเริ่มต้น: 1) - จำนวนเต็ม
    • ps - ขนาดหน้า (ไม่บังคับ) ต้องมากกว่า 0 และน้อยกว่าหรือเท่ากับ 500 (ค่าเริ่มต้น: 100) - จำนวนเต็ม
  • show_security_hotspot - รับข้อมูลโดยละเอียดเกี่ยวกับ Security Hotspot เฉพาะ รวมถึงรายละเอียดกฎ บริบทของโค้ด flows และความคิดเห็น

    • hotspotKey - คีย์ Security Hotspot - สตริงที่จำเป็น
  • change_security_hotspot_status - ตรวจสอบ Security Hotspot โดยการเปลี่ยนสถานะ เมื่อทำเครื่องหมายเป็น REVIEWED คุณต้องระบุการแก้ไข (FIXED, SAFE หรือ ACKNOWLEDGED)

    • hotspotKey - คีย์ Security Hotspot - สตริงที่จำเป็น
    • status - สถานะใหม่ - Enum ที่จำเป็น {"TO_REVIEW", "REVIEWED"}
    • resolution - การแก้ไขเมื่อสถานะเป็น REVIEWED - Enum {"FIXED", "SAFE", "ACKNOWLEDGED"}
    • comment - ความคิดเห็นในการตรวจสอบ (ไม่บังคับ) - สตริง

ภาษา

  • list_languages - แสดงรายการภาษาโปรแกรมทั้งหมดที่รองรับในอินสแตนซ์ SonarQube นี้
    • q - รูปแบบ (ไม่บังคับ) เพื่อจับคู่กับคีย์/ชื่อภาษา - สตริง

Measures

  • get_component_measures - รับค่า measures ของ SonarQube สำหรับคอมโพเนนต์ (โปรเจกต์, ไดเรกทอรี, ไฟล์)
    • projectKey - คีย์โปรเจกต์ - สตริงที่จำเป็นเมื่อไม่ได้กำหนดค่า SONARQUBE_PROJECT_KEY
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • metricKeys - คีย์ metric (ไม่บังคับ) ที่ต้องการเรียกดู (เช่น ncloc, complexity, violations, coverage) - String[]
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง

Metrics

  • search_metrics - ค้นหา metrics ของ SonarQube
    • p - หมายเลขหน้า (ไม่บังคับ) (ค่าเริ่มต้น: 1) - จำนวนเต็ม
    • ps - ขนาดหน้า (ไม่บังคับ) ต้องมากกว่า 0 และน้อยกว่าหรือเท่ากับ 500 (ค่าเริ่มต้น: 100) - จำนวนเต็ม

พอร์ตโฟลิโอ

  • list_portfolios - แสดงรายการพอร์ตโฟลิโอขององค์กรที่มีอยู่ใน SonarQube พร้อมตัวเลือกการกรองและการแบ่งหน้า

    สำหรับ SonarQube Server:

    • q - คำค้นหา (ไม่บังคับ) เพื่อกรองพอร์ตโฟลิโอตามชื่อหรือคีย์ - สตริง
    • favorite - หากเป็น true จะส่งคืนเฉพาะพอร์ตโฟลิโอที่ชื่นชอบ - Boolean
    • pageIndex - หมายเลขหน้าแบบเริ่มจาก 1 (ไม่บังคับ) (ค่าเริ่มต้น: 1) - จำนวนเต็ม
    • pageSize - ขนาดหน้า (ไม่บังคับ) สูงสุด 500 (ค่าเริ่มต้น: 100) - จำนวนเต็ม

    สำหรับ SonarQube Cloud:

    • enterpriseId - uuid ขององค์กร สามารถละเว้นได้เฉพาะเมื่อระบุพารามิเตอร์ 'favorite' เป็น true - สตริง
    • q - คำค้นหา (ไม่บังคับ) เพื่อกรองพอร์ตโฟลิโอตามชื่อ - สตริง
    • favorite - จำเป็นต้องเป็น true หากละเว้นพารามิเตอร์ 'enterpriseId' หากเป็น true จะส่งคืนเฉพาะพอร์ตโฟลิโอที่ผู้ใช้ที่ล็อกอินอยู่ชื่นชอบ ไม่สามารถเป็น true เมื่อ 'draft' เป็น true - Boolean
    • draft - หากเป็น true จะส่งคืนเฉพาะฉบับร่างที่สร้างโดยผู้ใช้ที่ล็อกอินอยู่ ไม่สามารถเป็น true เมื่อ 'favorite' เป็น true - Boolean
    • pageIndex - ดัชนีของหน้าที่ต้องการดึงข้อมูล (ไม่บังคับ) (ค่าเริ่มต้น: 1) - จำนวนเต็ม
    • pageSize - ขนาดของหน้าที่ต้องการดึงข้อมูล (ไม่บังคับ) (ค่าเริ่มต้น: 50) - จำนวนเต็ม

โปรเจกต์

  • search_my_sonarqube_projects - ค้นหาโปรเจกต์ SonarQube การตอบกลับจะถูกแบ่งหน้า

    • page - หมายเลขหน้า (ไม่บังคับ) - สตริง
  • list_branches - แสดงรายการ branch ที่มีอายุยาวนานสำหรับโปรเจกต์ (เช่น main, develop, master) ส่งคืนเฉพาะ branch LONG บน SonarQube Cloud และรายการ BRANCH บน SonarQube Server — ชื่อที่ปลอดภัยสำหรับพารามิเตอร์ branch บนเครื่องมืออื่นๆ สำหรับ pull requests ให้ใช้ list_pull_requests แทน

    • projectKey - คีย์โปรเจกต์ (เช่น my_project) - สตริงที่จำเป็น (จะถูกละเว้นเมื่อกำหนด SONARQUBE_PROJECT_KEY)
  • list_pull_requests - แสดงรายการ pull requests ทั้งหมดสำหรับโปรเจกต์ ใช้เครื่องมือนี้เพื่อค้นหา pull requests ที่มีอยู่ก่อนวิเคราะห์ความครอบคลุม issues หรือคุณภาพ ส่งคืนคีย์/ID ของ pull request ซึ่งสามารถใช้กับเครื่องมืออื่นๆ ได้ (เช่น search_files_by_coverage, get_file_coverage_details) สำหรับ branch ที่มีอายุยาวนาน ให้ใช้ list_branches แทน

    • projectKey - คีย์โปรเจกต์ (เช่น my_project) - สตริงที่จำเป็น (จะถูกละเว้นเมื่อกำหนด SONARQUBE_PROJECT_KEY)

Quality Gates

  • get_project_quality_gate_status - รับสถานะ Quality Gate สำหรับโปรเจกต์ SonarQube

    • analysisId - ID การวิเคราะห์ (ไม่บังคับ) - สตริง
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • projectId - ID โปรเจกต์ (ไม่บังคับ) - สตริง
    • projectKey - คีย์โปรเจกต์ (ไม่บังคับ) - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง
  • list_quality_gates - แสดงรายการ quality gates ทั้งหมดใน SonarQube ของฉัน

กฎ

  • show_rule - แสดงข้อมูลโดยละเอียดเกี่ยวกับกฎของ SonarQube
    • key - คีย์กฎ - สตริงที่จำเป็น

การทำซ้ำ

  • search_duplicated_files - ค้นหาไฟล์ที่มีการทำซ้ำของโค้ดในโปรเจกต์ SonarQube ตามค่าเริ่มต้น จะดึงข้อมูลไฟล์ที่ซ้ำกันทั้งหมดจากทุกหน้าโดยอัตโนมัติ (สูงสุด 10,000 ไฟล์) ส่งคืนเฉพาะไฟล์ที่มีการทำซ้ำ

    • projectKey - คีย์โปรเจกต์ - สตริงที่จำเป็น (จะถูกละเว้นเมื่อกำหนด SONARQUBE_PROJECT_KEY)
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง
    • pageSize - จำนวนผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้าแบบกำหนดเอง (ไม่บังคับ) (สูงสุด: 500) หากไม่ระบุ จะดึงข้อมูลไฟล์ที่ซ้ำกันทั้งหมดโดยอัตโนมัติ - จำนวนเต็ม
    • pageIndex - หมายเลขหน้าสำหรับการแบ่งหน้าแบบกำหนดเอง (ไม่บังคับ) (เริ่มที่ 1) หากไม่ระบุ จะดึงข้อมูลไฟล์ที่ซ้ำกันทั้งหมดโดยอัตโนมัติ - จำนวนเต็ม
  • get_duplications - รับข้อมูลการทำซ้ำสำหรับไฟล์ ต้องมีสิทธิ์ Browse บนโปรเจกต์ของไฟล์

    • key - คีย์ไฟล์ - สตริงที่จำเป็น
    • branch - ชื่อ branch ที่มีอายุยาวนาน (ไม่บังคับ) (เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - สตริง
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - สตริง

Sources

  • get_raw_source - รับซอร์สโค้ดเป็นข้อความดิบจาก SonarQube ต้องมีสิทธิ์ 'See Source Code' บนไฟล์

    • key - คีย์ไฟล์ - String ที่จำเป็น
    • branch - ชื่อ branch ระยะยาว (ไม่บังคับ เช่น main, develop) ใช้ list_branches เพื่อค้นหาชื่อที่ถูกต้อง - String
    • pullRequest - คีย์/ID ของ pull request (ไม่บังคับ) ใช้ list_pull_requests เพื่อค้นหาคีย์ที่ถูกต้อง - String
  • get_scm_info - รับข้อมูล SCM ของไฟล์ซอร์สใน SonarQube ต้องมีสิทธิ์ See Source Code บนโปรเจกต์ของไฟล์

    • key - คีย์ไฟล์ - String ที่จำเป็น
    • commits_by_line - จัดกลุ่มบรรทัดตาม SCM commit หากค่าเป็น false มิฉะนั้นแสดง commit สำหรับแต่ละบรรทัด - String
    • from - บรรทัดแรกที่ต้องการส่งคืน เริ่มที่ 1 - Number
    • to - บรรทัดสุดท้ายที่ต้องการส่งคืน (รวม) - Number

ระบบ

หมายเหตุ: เครื่องมือระบบจะพร้อมใช้งานเมื่อเชื่อมต่อกับ SonarQube Server เท่านั้น

  • get_system_health - รับสถานะความสมบูรณ์ของอินสแตนซ์ SonarQube Server ส่งคืน GREEN (ทำงานเต็มรูปแบบ), YELLOW (ใช้งานได้แต่ต้องใส่ใจ), หรือ RED (ไม่สามารถทำงานได้)

  • get_system_info - รับข้อมูลโดยละเอียดเกี่ยวกับการกำหนดค่าระบบ SonarQube Server รวมถึงสถานะ JVM, ฐานข้อมูล, ดัชนีการค้นหา และการตั้งค่า ต้องมีสิทธิ์ 'Administer'

  • get_system_logs - รับบันทึกระบบของ SonarQube Server ในรูปแบบข้อความธรรมดา ต้องมีสิทธิ์การดูแลระบบ

    • name - ชื่อของบันทึกที่ต้องการ (ไม่บังคับ) ค่าที่เป็นไปได้: access, app, ce, deprecation, es, web ค่าเริ่มต้น: app - String
  • ping_system - Ping ระบบ SonarQube Server เพื่อตรวจสอบว่ายังทำงานอยู่หรือไม่ ส่งคืน 'pong' เป็นข้อความธรรมดา

  • get_system_status - รับข้อมูลสถานะเกี่ยวกับ SonarQube Server ส่งคืนสถานะ (STARTING, UP, DOWN, RESTARTING, DB_MIGRATION_NEEDED, DB_MIGRATION_RUNNING), เวอร์ชัน และ id

Webhooks

  • create_webhook - สร้าง webhook ใหม่สำหรับองค์กรหรือโปรเจกต์ SonarQube ต้องมีสิทธิ์ 'Administer' บนโปรเจกต์ที่ระบุ หรือสิทธิ์ 'Administer' ส่วนกลาง

    • name - ชื่อ Webhook - String ที่จำเป็น
    • url - URL ของ Webhook - String ที่จำเป็น
    • projectKey - คีย์โปรเจกต์ (ไม่บังคับ) สำหรับ webhook เฉพาะโปรเจกต์ - String
    • secret - รหัสลับ webhook (ไม่บังคับ) สำหรับรักษาความปลอดภัย payload ของ webhook - String
  • list_webhooks - แสดงรายการ webhooks ทั้งหมดสำหรับองค์กรหรือโปรเจกต์ SonarQube ต้องมีสิทธิ์ 'Administer' บนโปรเจกต์ที่ระบุ หรือสิทธิ์ 'Administer' ส่วนกลาง

    • projectKey - คีย์โปรเจกต์ (ไม่บังคับ) เพื่อแสดงรายการ webhooks เฉพาะโปรเจกต์ - String

การเสริมบริบท

เครื่องมือสถาปัตยกรรม
  • search_by_signature_patterns - ค้นหาองค์ประกอบโค้ด (คลาส, เมธอด, อินเทอร์เฟซ, ...) โดยใช้รูปแบบ regex กับลายเซ็นการประกาศ

    • include_code_regex_list - รายการรูปแบบ regex เพื่อจับคู่กับลายเซ็น - String[] ที่จำเป็น
    • exclude_code_regex_list - รายการรูปแบบ regex เพื่อแยกออกจากผลลัพธ์ - String[]
    • include_glob - รูปแบบ glob สำหรับกรองไฟล์ (เช่น *.java) - String
    • exclude_glob - รูปแบบ glob สำหรับการยกเว้นไฟล์ - String
    • fields - รายการฟิลด์ที่คั่นด้วยคอมมาเพื่อรวมในการตอบกลับ - String
    • limit - จำนวนผลลัพธ์สูงสุดที่จะส่งคืน (ค่าเริ่มต้น: 10) - Integer
    • regex_lists_operator - วิธีรวมหลายรูปแบบ: OR (ค่าเริ่มต้น) หรือ AND - String
  • search_by_body_patterns - ค้นหาองค์ประกอบโค้ดโดยใช้รูปแบบ regex กับเนื้อหาการนำไปใช้ มีประโยชน์สำหรับการค้นหาว่า API หรือรูปแบบถูกใช้งานจริงที่ใด

    • include_code_regex_list - รายการรูปแบบ regex เพื่อจับคู่ในเนื้อหาโค้ด - String[] ที่จำเป็น
    • exclude_code_regex_list - รายการรูปแบบ regex เพื่อแยกออกจากผลลัพธ์ - String[]
    • include_glob - รูปแบบ glob สำหรับกรองไฟล์ - String
    • exclude_glob - รูปแบบ 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 - รับลำดับชั้นการสืบทอดทั้งหมดสำหรับโครงสร้างคล้ายคลาส (คลาส, อินเทอร์เฟซ, enum, record, exception, struct) จำเป็นสำหรับการทำความเข้าใจแผนผังการสืบทอดและการรีแฟกเตอร์

    • fqn - ชื่อแบบเต็มของโครงสร้างคล้ายคลาส - String ที่จำเป็น
    • fields - รายการฟิลด์ที่คั่นด้วยคอมมาเพื่อรวมในการตอบกลับ - String
  • get_references - รับการอ้างอิงโค้ดขาเข้าและขาออกโดยตรงสำหรับคลาสหรือโมดูล ส่งคืนเฉพาะการอ้างอิงโดยตรง (ไม่ใช่แบบส่งผ่าน)

    • fqn - ชื่อแบบเต็มของคลาสหรือโมดูล - String ที่จำเป็น
    • fields - รายการฟิลด์ที่คั่นด้วยคอมมาเพื่อรวมในการตอบกลับ - String
  • get_current_architecture - รับกราฟสถาปัตยกรรมแบบลำดับชั้นที่กรองโดยคำนำหน้าเส้นทางและความลึก มีประโยชน์สำหรับการสำรวจโครงสร้างโมดูลและการพึ่งพาระดับสูง

    • depth - ความลึกของลำดับชั้น (0=เฉพาะราก, 1=ราก + ลูก, ฯลฯ) - Integer ที่จำเป็น
    • path_prefix - คำนำหน้าเส้นทาง (ไม่บังคับ) เพื่อกรองโหนด (เช่น com.example.service) - String
    • ecosystem - ระบบนิเวศ (ไม่บังคับ) เพื่อกรอง (java, cs, py, js, ts) - String
  • get_intended_architecture - รับข้อจำกัดทางสถาปัตยกรรมที่ผู้ใช้กำหนด ซึ่งระบุว่าโมดูลใดได้รับอนุญาตให้พึ่งพาโมดูลอื่น

เครื่องมือแนวทางปฏิบัติ
  • get_guidelines - รับแนวทางการเขียนโค้ดตามปัญหาของโปรเจกต์ SonarQube, หมวดหมู่แค็ตตาล็อก, หรือทั้งสองอย่างรวมกัน
    • mode - โหมดการเรียกคืนแนวทาง: project_based, category_based, หรือ combined - String ที่จำเป็น
    • categories - รายชื่อหมวดหมู่ (จำเป็นสำหรับโหมด category_based และ combined) - String[]
    • languages - รายการภาษาเป้าหมายในรูปแบบคีย์ที่เก็บของ SonarQube (จำเป็นเมื่อระบุ categories) - String[]
    • file_paths - รายการเส้นทางไฟล์ (ไม่บังคับ) เพื่อกรองแนวทาง - String[]
เครื่องมือการพึ่งพาจากภายนอก
  • check_dependency - ตรวจสอบการพึ่งพาจากภายนอกสำหรับช่องโหว่ด้านความปลอดภัย, มัลแวร์ในห่วงโซ่อุปทาน, และการปฏิบัติตามใบอนุญาต ก่อนเพิ่มหรืออัปเดต
ตัวแปรสภาพแวดล้อมการเสริมบริบท
ตัวแปรคำอธิบายจำเป็นค่าเริ่มต้น
SONARQUBE_URLURL ของ SonarQube Cloudใช่https://sonarcloud.io
SONARQUBE_TOKENโทเค็นการตรวจสอบสิทธิ์ใช่ไม่มี
SONARQUBE_ORGคีย์องค์กรบน SonarQube Cloudใช่ไม่มี
SONARQUBE_PROJECT_KEYคีย์โปรเจกต์บน SonarQube Cloudใช่ไม่มี
SONAR_SQ_BRANCHการแทนที่ branch ของ SonarQube อย่างชัดเจน *ไม่ไม่มี
SONARQUBE_DEBUG_ENABLEDเปิดใช้งานการบันทึกดีบัก (สำหรับการแก้ไขปัญหา)ไม่False
SONAR_LOG_LEVELความละเอียดของการบันทึก (TRACE, DEBUG, INFO, WARNING, ERROR)ไม่INFO
  • ต้องระบุเมื่อไม่ได้ใช้ git หรือเมื่อชื่อ branch ใน git ไม่ตรงกับชื่อ branch ใน SonarQube
การกำหนดค่าเฉพาะโปรเจกต์ (แนะนำ)

ขั้นแรก ส่งออก SONARQUBE_TOKEN ตัวแปรสภาพแวดล้อม ด้วย Personal Access Token (PAT) ที่ถูกต้องสำหรับโปรเจกต์ของคุณ

# 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 Cloud เท่านั้น และต้องเปิดใช้งานฟีเจอร์นี้สำหรับองค์กรของคุณ

  • start_agentic_readiness_assessment - เริ่มการประเมินความพร้อมสำหรับเอเจนต์สำหรับโปรเจกต์ ส่งคืนทันทีด้วยสถานะ PENDING และ assessmentId ใช้ get_agentic_readiness_assessment เพื่อสำรวจผลลัพธ์

    • projectKey - คีย์โปรเจกต์ - String ที่จำเป็น (ถูกละเว้นเมื่อกำหนด SONARQUBE_PROJECT_KEY)
    • branch - Branch ที่จะประเมิน ละเว้นเพื่อใช้ branch เริ่มต้นของโปรเจกต์ - String
  • get_agentic_readiness_assessment - รับผลลัพธ์ของการประเมิน เรียกซ้ำด้วย assessmentId เดิมจนกว่าสถานะจะเป็น COMPLETED, FAILED, หรือ INTERRUPTED เมื่อเสร็จสิ้น จะส่งคืนระดับโดยรวมและการแจกแจงราย pillar พร้อมการดำเนินการที่แนะนำและหลักฐาน

    • assessmentId - ID การประเมินที่ส่งคืนโดย start_agentic_readiness_assessment - String ที่จำเป็น
  • list_agentic_readiness_assessments - แสดงรายการการประเมินทั้งหมดสำหรับโปรเจกต์ โดยเรียงจากใหม่สุดก่อน ใช้ get_agentic_readiness_assessment สำหรับผลลัพธ์ระดับ pillar แบบเต็ม

    • projectKey - คีย์โปรเจกต์ที่จะแสดงรายการการประเมิน - String ที่จำเป็น (ถูกละเว้นเมื่อกำหนด SONARQUBE_PROJECT_KEY)
    • branch - กรองการประเมินตามชื่อ branch ละเว้นเพื่อแสดงรายการการประเมินสำหรับทุก branch - String
    • pageIndex - ดัชนีหน้าแบบเริ่มที่ 1 (ค่าเริ่มต้น: 1) - Number
    • pageSize - จำนวนรายการต่อหน้า สูงสุด 100 (ค่าเริ่มต้น: 50) - Number

ตัวอย่างพร้อมต์

เมื่อคุณตั้งค่า SonarQube MCP Server แล้ว นี่คือตัวอย่างพร้อมต์สำหรับสถานการณ์จริงทั่วไป:

การแก้ไข Quality Gate ที่ล้มเหลว
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

หากต้องการรันเซิร์ฟเวอร์เป็น JAR แบบสแตนด์อโลนโดยไม่ใช้ Docker ให้ดาวน์โหลดรุ่นที่สร้างไว้ล่วงหน้าจาก ที่เก็บไบนารีของ SonarSource ทุกรุ่นที่เผยแพร่จะถูกอัปโหลดไว้ที่นั่นในชื่อ sonarqube-mcp-server-<version>.jar (ตัวอย่างเช่น sonarqube-mcp-server-1.19.0.2785.jar)

รันจาก JAR

ดาวน์โหลด JAR สำหรับรุ่นที่คุณต้องการจาก ที่เก็บไบนารี จากนั้นกำหนดค่าไคลเอนต์ MCP ของคุณให้รันด้วย Java 21 หรือใหม่กว่า:

  • เพื่อเชื่อมต่อกับ SonarQube Cloud:
{
  "sonarqube": {
    "command": "java",
    "args": [
      "-jar",
      "<path_to_sonarqube_mcp_server_jar>"
    ],
    "env": {
      "STORAGE_PATH": "<path_to_your_mcp_storage>",
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_ORG": "<org>"
    }
  }
}
  • เพื่อเชื่อมต่อกับ SonarQube Server:
{
  "sonarqube": {
    "command": "java",
    "args": [
      "-jar",
      "<path_to_sonarqube_mcp_server_jar>"
    ],
    "env": {
      "STORAGE_PATH": "<path_to_your_mcp_storage>",
      "SONARQUBE_TOKEN": "<token>",
      "SONARQUBE_URL": "<url>"
    }
  }
}
สร้างจากซอร์สโค้ด

SonarQube MCP Server ต้องการ Java Development Kit (JDK) เวอร์ชัน 21 หรือใหม่กว่าในการสร้าง

รันคำสั่ง Gradle ต่อไปนี้เพื่อทำความสะอาดโปรเจกต์และสร้างแอปพลิเคชัน:

./gradlew clean build -x test

ไฟล์ JAR จะถูกสร้างขึ้นใน build/libs/

หลังจากเพิ่มหรืออัปเดตการพึ่งพา ให้สร้างไฟล์ล็อกใหม่:

./gradlew :dependencies --write-locks
./gradlew :its:dependencies --write-locks

ใช้การกำหนดค่า รันจาก JAR ด้านบน โดยชี้ <path_to_sonarqube_mcp_server_jar> ไปยัง JAR ใน build/libs/

การแก้ไขปัญหา

บันทึกของแอปพลิเคชันจะถูกเขียนลงในไฟล์ STORAGE_PATH/logs/mcp.log ตามค่าเริ่มต้น หากต้องการปิดการบันทึกไฟล์ทั้งหมด ให้ตั้งค่า SONARQUBE_LOG_TO_FILE_DISABLED=true

ปัญหาที่พบบ่อย

"ฟีเจอร์ไม่ทำงาน" หรือ "เครื่องมือ/ฟังก์ชันการทำงานหายไป"

คุณอาจกำลังใช้อิมเมจ Docker ที่ล้าสมัย Docker จะแคชอิมเมจไว้ในเครื่อง ดังนั้นคุณจะไม่ได้รับการอัปเดตโดยอัตโนมัติ

วิธีแก้ไข: อัปเดตเป็นเวอร์ชันล่าสุด:

docker pull sonarsource/sonarqube-mcp

หลังจากดึงอิมเมจล่าสุดแล้ว ให้รีสตาร์ทไคลเอนต์ MCP ของคุณเพื่อใช้เวอร์ชันที่อัปเดต

หรือเพิ่มแฟล็ก --pull=always ลงในคำสั่ง docker run ของคุณเพื่อตรวจสอบและดึงเวอร์ชันล่าสุดเสมอ:

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:<version> แทน sonarsource/sonarqube-mcp และลบ --pull=always ออก เพื่อไม่ให้ Docker อัปเกรดอิมเมจโดยอัตโนมัติ

ข้อมูลและการวัดและส่งข้อมูลทางไกล

เซิร์ฟเวอร์นี้รวบรวมข้อมูลการใช้งานแบบไม่ระบุตัวตนและส่งไปยัง SonarSource เพื่อช่วยปรับปรุงผลิตภัณฑ์ ไม่มีการรวบรวมซอร์สโค้ดหรือที่อยู่ IP และ SonarSource จะไม่แบ่งปันข้อมูลกับบุคคลอื่น การรวบรวมข้อมูลทางไกลสามารถปิดใช้งานได้ด้วยคุณสมบัติระบบหรือตัวแปรสภาพแวดล้อมต่อไปนี้: TELEMETRY_DISABLED=true คลิก ที่นี่ เพื่อดูตัวอย่างข้อมูลที่ถูกรวบรวม

ใบอนุญาต

สงวนลิขสิทธิ์ 2025 SonarSource

ได้รับอนุญาตภายใต้ SONAR Source-Available License v1.0 การใช้ SonarQube MCP Server ตามเอกสารนี้ถือเป็นวัตถุประสงค์ที่ไม่แข่งขันและได้รับอนุญาตภายใต้ SSAL

การใช้งาน SonarQube ผ่าน MCP ของคุณอยู่ภายใต้ ข้อกำหนดในการให้บริการของ SonarQube Cloud หรือ ข้อกำหนดและเงื่อนไขของ SonarQube Server รวมถึงการใช้ข้อมูลผลลัพธ์เพื่อวัตถุประสงค์ในการพัฒนาซอฟต์แวร์ภายในของคุณเท่านั้น