SonarSource/sonarqube-mcp-server

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

SonarQube MCP Server – AI 增强代码分析快速入门指南

它是什么 – 一个 Model Context Protocol (MCP) 服务器,让 AI 代理(Claude、Gemini、Copilot、Cursor 等)能够与 SonarQube 实例(自托管或 SonarCloud)通信。该服务器在 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 等)都有一个小型 UI/按钮,可让您粘贴 JSON。之后,代理可以开始向 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 中强调)

  • 切勿在命令行上放置令牌 – 它会出现在 shell 历史中。请使用所示的 -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”)以了解请求/响应格式。
  • 如果您需要自定义行为(例如过滤某些规则类型),请 fork 仓库并修改服务器代码 – CI 徽章显示当前构建健康状态。

TL;DR – SonarQube MCP Server 是一个轻量级的基于 Docker 的桥接器,任何 LLM 驱动的编码助手都可以通过它查询 SonarQube 获取最新的质量和安全分析。使用配置生成器设置,运行容器,将 JSON 片段添加到代理中,您将在 AI 驱动的工作流中获得可信的静态分析数据。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目