이 문서는 SonarQube의 MCP Server를 MCP Client와 연동하는 방법에 대해 Cursor를 기준으로 설명합니다.


개요

SonarQube MCP Server는 SonarQube Server 또는 SonarQube Cloud와 통합되어 코드 품질 및 보안을 강화하는 MCP 서버입니다.

무료로 사용할 수 있으며, Community Edition과도 연동할 수 있습니다.


MCP Client와 소나큐브 MCP 연동을 위해 통신하는 방법은 크게 2가지 방법이 있습니다.


Stdio 통신으로 MCP Server 연동

stdio 통신은 네트워크를 사용하지 않고 표준 입출력 스트림을 통해 데이터를 교환하는 방식으로, 로컬 환경에서 MCP Client와 MCP Server를 연동하는 기본적인 방법입니다.

MCP Client의 설정 파일(mcp.json 등)에 MCP Server를 실행할 커맨드를 정의하여 MCP Client가 MCP Server를 실행하고 연동합니다.

이때 커맨드의 종류는 Docker, Jar등으로 구성할 수 있습니다.

Docker로 MCP Server 실행 및 연동

Docker로 MCP Server를 실행하는 것을 권장하며, UI를 통한 추가 또는 설정 파일을 직접 수정하여 추가할 수 있습니다.

UI로 추가

https://docs.sonarsource.com/sonarqube-mcp-server/quickstart-guide#setup-in-cursor

위 링크에 접속후, Quick configuration > Connect to SonarQube Cloud/Server 링크를 클릭하여 MCP Server 연동 UI 실행합니다.

  • 환경 변수
    • SONARQUBE_TOKEN : 소나큐브 서버 사용자 토큰
    • SONARQUBE_URL : 소나큐브 서버 URL


수동으로 추가

Cursor Settings > Tools & MCP > New MCP Server 아래 내용을 추가합니다.

{
  "mcpServers": {
    "sonarqube-mcp-server": {
      "env": {
        "SONARQUBE_TOKEN": "<SonarQube 사용자 토큰>",
        "SONARQUBE_URL": "<SonarQube URL>/"
      },
      "command": "docker run --name sonarqube-mcp-server --rm -i -e SONARQUBE_TOKEN -e SONARQUBE_URL mcp/sonarqube",
      "args": []
    }
  }
}

Jar파일로 MCP Server 실행 및 연동

Docker를 사용할 수 없는 경우, Jar파일을 다운로드 또는 직접 빌드하여 MCP Server로 등록할 수 있습니다.

Jar 파일 빌드 또는 다운로드

직접 빌드

  1. JDK 21 이상 환경 필요

  2. Clone Sonarqube MCP Server

    1. https://github.com/SonarSource/sonarqube-mcp-server

  3. 프로젝트 빌드

    1. ./gradlew clean build -x test

    2. <MCP Server 다운로드 경로>/build/libs에 jar파일 생성됨.

JAR 파일 다운로드

https://github.com/SonarSource/sonarqube-mcp-server/releases 에서 원하는 버전 jar파일 다운로드

Jar 파일 등록

Cursor Settings > Tools & MCP > New MCP Server 아래 내용을 추가합니다.

  • 환경변수

    • SONARQUBE_TOKEN : 소나큐브 서버 사용자 토큰

    • SONARQUBE_URL : 소나큐브 서버 URL

    • STORAGE_PATH : 소나큐브 MCP 서버 스토리지 경로

      • log, MCP Server plugin이 저장될 로컬 파일 경로 지정

{
  "mcpServers": {
    "sonarqube-mcp-server-with-jar": {
      "command": "java",
      "args": [
        "-jar",
        "<Jar 파일 경로>"
      ],
      "env": {
        "STORAGE_PATH": "<MCP Storage 경로>",
        "SONARQUBE_TOKEN": "<SonarQube 사용자 토큰>",
        "SONARQUBE_URL": "<SonarQube URL>"
      }
    }
  }
}

HTTP/HTTPS 통신으로 MCP Server 연동

HTTP/HTTPS 통신 방식은 MCP Client와 MCP Server가 네트워크를 통해 통신할 수 있도록 하여, 로컬(Local)환경 뿐 아니라 원격(Remote) 환경에서도 연동 가능하게 하는 방법입니다.

이 방식은 사용자가 직접 MCP Server를 구축하고, MCP Client의 설정 파일에 서버의 URL 정보를 입력하여 연결을 설정합니다.

이를 통해 여러 사용자가 동일한 MCP Server에 접속할 수 있어, 중앙집중식으로 관리되고 공유되는 MCP 환경을 구성할 수 있습니다.

SonarQube MCP Server 배포

아래 명령어로 SonarQube MCP Server 설치합니다.

  • 환경 변수
    • SONARQUBE_TRANSPORT

      • Client와 통신에 사용할 프로토콜

      • HTTP 또는 stdio (default)

    • SONARQUBE_HTTP_HOST

      • 바인드할 host 정보

      • localhost: 127.0.0.1 (로컬 전용)

      • docker: 0.0.0.0 (Docker 혹은 서버)

    • SONARQUBE_TOKEN

      • 소나큐브 서버 사용자 토큰

    • SONARQUBE_URL

      • 소나큐브 서버 URL

docker run --name -it -d sonarqube-mcp-server -p 8080:8080 \
  -e SONARQUBE_TRANSPORT=http \
  -e SONARQUBE_HTTP_HOST=0.0.0.0 \
  -e SONARQUBE_TOKEN="<YourSonarQubeUserToken>" \
  -e SONARQUBE_URL="<YourSonarQubeURL>" \
  mcp/sonarqube

SonarQube MCP Server HTTPS 배포

https://docs.sonarsource.com/sonarqube-mcp-server/build-and-configure/configure#custom-certificates 참고

SonarQube MCP Server 연동

MCP Client연동을 위해 설정파일(mcp.json)에 아래 내용 작성합니다.

HTTP 통신

{
  "mcpServers": {
    "sonarqube-http": {
      "url": "http://<서버 URL>/mcp",
      "headers": {
        "SONARQUBE_TOKEN": "<YourSonarQubeUserToken>"
      }
    }
  }
}

HTTPS 통신

{
  "mcpServers": {
    "sonarqube-https": {
      "url": "https://<서버 URL>/mcp",
      "headers": {
        "SONARQUBE_TOKEN": "<YourSonarQubeUserToken>"
      }
    }
  }
}

SonarQube MCP 사용

Agent와 Chat할 때 SonarQube에 관한 요청을 하면, Agent가 자동적으로 MCP와 통신하여 결과를 생성합니다.

사용 예시

소스코드 분석 요청

  • 질문
    • analyze the current file with SonarQube

  • 결과 예시

참조 링크

  • 레이블 없음