SonarSource/sonarqube-mcp-server

Official SonarQube MCP Server for code quality and security in AI agents

SonarQube MCP Server – AI 지원 코드 분석을 위한 빠른 시작 가이드

이것은 무엇인가 – AI 에이전트(Claude, Gemini, Copilot, Cursor 등)가 SonarQube 인스턴스(자체 호스팅 또는 SonarCloud)와 통신할 수 있게 하는 Model Context Protocol (MCP) 서버입니다. 이 서버는 Docker 컨테이너에서 실행되며 에이전트가 호출할 수 있는 간단한 JSON-RPC 스타일 API를 노출합니다:

  • 전체 프로젝트 분석 제출
  • 단일 코드 스니펫을 즉석에서 분석
  • 채팅 기반 코딩 어시스턴트에서 사용하기 위한 결과(버그, 보안 핫스팟, 코드 스멜) 검색.

중요한 이유 – 최신 LLM 기반 코딩 어시스턴트는 신뢰할 수 있고 최신의 정적 분석 데이터가 필요합니다. SonarQube를 MCP 생태계에 연결하면 직접 전체 스캔을 실행하지 않아도 고품질의 언어 인식 보안 및 품질 신호를 채팅 내에서 직접 얻을 수 있습니다.


시작하기 (가장 빠른 방법)

  1. 구성 생성기 열기 – https://mcp.sonarqube.com/config-generator.html. SonarQube 토큰(및 선택적 org 또는 서버 URL)을 요청한 후 붙여넣을 수 있는 JSON 스니펫을 생성합니다.
  2. Docker 이미지 실행 – 생성기는 이미 sonarsource/sonarqube-mcp를 가리킵니다. 예시 명령:
    docker run --init --pull=always -i --rm \
        -e SONARQUBE_TOKEN=$YOUR_TOKEN \
        -e SONARQUBE_ORG=$YOUR_ORG   # SonarCloud 전용
        sonarsource/sonarqube-mcp
    
    환경 변수를 생성기가 제공한 값으로 바꾸세요.
  3. 스니펫을 에이전트의 MCP 구성에 추가 – 지원되는 각 에이전트(Claude, Gemini, Copilot, Cursor, VS Code 등)에는 JSON을 붙여넣을 수 있는 작은 UI/버튼이 있습니다. 그 후 에이전트는 SonarQube에 분석 결과를 요청할 수 있습니다.

수동 설치 (직접 빌드/실행하려는 경우)

  • Docker Hub에서 이미지 가져오기: docker pull sonarsource/sonarqube-mcp.
  • 또는 이 저장소에서 로컬로 빌드합니다(빌드 상태는 GitHub Actions 배지를 참조).
  • 필요한 환경 변수:
    변수 의미
    STORAGE_PATH 서버가 캐시와 임시 파일을 저장하는 컨테이너 내부의 절대 경로. 공식 이미지는 이를 자동으로 설정합니다.
    SONARQUBE_TOKEN SonarQube 사용자 토큰(절대 커밋하지 마세요).
    SONARQUBE_ORG SonarCloud 전용 – 조직 키.
    SONARQUBE_URL 자체 호스팅 SonarQube 서버의 URL(SonarCloud에서는 생략).
    SONARQUBE_PROJECT_KEY 선택적 기본 프로젝트. 항상 단일 프로젝트에서 작업할 때 유용합니다.
    SONARQUBE_IDE_PORT MCP 서버가 IDE 내장 분석 서버와 통신할 때 SonarQube for IDE가 사용하는 포트(Linux에서는 --network=host 추가).

인기 AI 에이전트에 연결하는 방법

이 저장소에는 많은 에이전트를 위한 준비된 스니펫이 포함되어 있습니다. 패턴은 동일합니다: mcpServers.sonarqube 아래의 JSON 객체로, 에이전트에게 실행할 명령(docker run … sonarsource/sonarqube-mcp)과 주입할 환경 변수를 알려줍니다.

에이전트 스니펫을 붙여넣을 곳
Claude claude mcp add sonarqube … (Claude Code 섹션 참조)
Gemini gemini extensions install https://github.com/SonarSource/sonarqube-agent-plugins 실행 후 환경 변수 설정
GitHub Copilot CLI copilot mcp add UI 또는 ~/.copilot/mcp-config.json 편집
Cursor README에 제공된 URL의 Cursor 페이지에서 Install 버튼 클릭
VS Code VS Code 섹션의 배지 클릭 – 사전 입력된 설치 마법사가 열립니다
Windsurf, Zed, Kiro, Antigravity 유사한 JSON 기반 구성 파일 – 해당하는 접힌 섹션에서 블록을 복사하기만 하면 됩니다

모든 스니펫은 동일한 형태를 따릅니다. 예: SonarCloud용:

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

자리 표시자를 실제 토큰/조직으로 바꾸세요.


보안 모범 사례 (README에서 강조)

  • 토큰을 명령줄에 절대 두지 마세요 – 셸 기록에 남습니다. 표시된 대로 -e 환경 변수를 사용하세요.
  • 토큰을 커밋하지 마세요 – 환경 변수 또는 비밀 저장소(GitHub Secrets, Copilot MCP secrets 등)에 보관하세요.
  • 이미지를 정기적으로 가져오세요 (--pull=always) – 최신 보안 수정 사항을 얻기 위해.

언제 사용하나요?

  • 채팅 기반 코드 리뷰 – Claude 또는 Gemini에게 "이 PR의 보안 문제가 무엇인가요?"라고 물어보면 에이전트가 MCP를 통해 SonarQube에 쿼리하고 답변에 결과를 포함합니다.
  • IDE 통합 지원 – SonarLint/IDE 플러그인은 MCP 서버를 호출하여 즉석 제안에 대한 더 풍부한 컨텍스트를 얻을 수 있습니다.
  • CI/CD 파이프라인 – Copilot 지원 파이프라인에 MCP 서버를 단계로 추가하여 빌드 로그에 SonarQube 결과를 자동으로 표시합니다.

다음 단계는?

  • SonarQube 제품 문서 전체 읽기: https://www.sonarsource.com/products/sonarqube/.
  • MCP 프로토콜 사양 탐색(SonarSource 문서에서 "Model Context Protocol" 검색) – 요청/응답 형식을 이해할 수 있습니다.
  • 사용자 정의 동작이 필요한 경우(예: 특정 규칙 유형 필터링), 저장소를 포크하고 서버 코드를 수정하세요 – CI 배지가 현재 빌드 상태를 보여줍니다.

요약 – SonarQube MCP Server는 LLM 기반 코딩 어시스턴트가 SonarQube에 최신 품질 및 보안 분석을 쿼리할 수 있게 하는 얇은 Docker 기반 브리지입니다. 구성 생성기로 설정하고, 컨테이너를 실행하고, JSON 스니펫을 에이전트에 추가하면 AI 기반 워크플로우 내에서 신뢰할 수 있는 정적 분석 데이터를 얻을 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트