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 생태계에 연결하면 직접 전체 스캔을 실행하지 않아도 고품질의 언어 인식 보안 및 품질 신호를 채팅 내에서 직접 얻을 수 있습니다.
시작하기 (가장 빠른 방법)
- 구성 생성기 열기 – https://mcp.sonarqube.com/config-generator.html. SonarQube 토큰(및 선택적 org 또는 서버 URL)을 요청한 후 붙여넣을 수 있는 JSON 스니펫을 생성합니다.
- 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 - 스니펫을 에이전트의 MCP 구성에 추가 – 지원되는 각 에이전트(Claude, Gemini, Copilot, Cursor, VS Code 등)에는 JSON을 붙여넣을 수 있는 작은 UI/버튼이 있습니다. 그 후 에이전트는 SonarQube에 분석 결과를 요청할 수 있습니다.
수동 설치 (직접 빌드/실행하려는 경우)
- Docker Hub에서 이미지 가져오기:
docker pull sonarsource/sonarqube-mcp. - 또는 이 저장소에서 로컬로 빌드합니다(빌드 상태는 GitHub Actions 배지를 참조).
- 필요한 환경 변수:
변수 의미 STORAGE_PATH서버가 캐시와 임시 파일을 저장하는 컨테이너 내부의 절대 경로. 공식 이미지는 이를 자동으로 설정합니다. SONARQUBE_TOKENSonarQube 사용자 토큰(절대 커밋하지 마세요). SONARQUBE_ORGSonarCloud 전용 – 조직 키. SONARQUBE_URL자체 호스팅 SonarQube 서버의 URL(SonarCloud에서는 생략). SONARQUBE_PROJECT_KEY선택적 기본 프로젝트. 항상 단일 프로젝트에서 작업할 때 유용합니다. SONARQUBE_IDE_PORTMCP 서버가 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 기반 워크플로우 내에서 신뢰할 수 있는 정적 분석 데이터를 얻을 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트