摘要
让你的 AI 读取 SonarQube:项目、质量门状态、覆盖率等度量指标及其历史、按严重程度和软件质量筛选的未解决问题、分析记录与分支。支持 SonarQube Server 或 SonarQube Cloud,只读,使用用户令牌。
引导式设置
2 分钟将 SonarQube 连接到 Claude、ChatGPT 或 Copilot
开始 AnythingMCP Cloud 免费试用,在引导式设置中连接 SonarQube,再把你的 MCP URL 添加到你的 AI 助手。无需代码,也无需自行运行服务器。
无需信用卡 · 7 天试用 · 提供自托管方案
试试这样问
SonarQube 的示例提示
点击任意提示即可复制,然后粘贴到 Claude、ChatGPT、Cursor、Gemini、Copilot 或 OpenClaw 中,在该连接器上运行。
Claude 是 AI,可能会出错。请核对回答。
💡 不想安装?直接使用 cloud.anythingmcp.com。 登录后点击 Connectors → SonarQube,粘贴你的凭据,生成 MCP API 密钥即可。无需 Docker,无需
git clone,无需本地服务器。
SonarQube
让你的 AI 读取 SonarQube:项目、质量门状态、覆盖率等度量指标及其历史、按严重程度和软件质量筛选的未解决问题、分析记录与分支。支持 SonarQube Server 或 SonarQube Cloud,只读,使用用户令牌。
设置
设置大约需要 3 分钟。你需要一个 SonarQube Server(免费的 Community Build 即可)或一个 SonarQube Cloud 账户,其中至少有一个已分析的项目,以及一个用户令牌。
- 设置
SONARQUBE_URL,不要带/api,也不要带末尾斜杠:欧盟区域的 SonarQube Cloud 使用https://sonarcloud.io,美国区域的 SonarQube Cloud 使用https://sonarqube.us,SonarQube Server 则使用你在浏览器中打开时的地址,包括上下文路径(例如https://sonar.example.com或https://example.com/sonarqube)。 - 创建一个用户令牌并粘贴到
SONARQUBE_TOKEN中,不要加 Bearer 一词。Server 上:头像 → My Account → Security,然后生成类型为 User 的令牌。Cloud 上:头像 → My Account → Access tokens → Personal Tokens,然后生成令牌。项目分析令牌和全局分析令牌用于运行扫描,不能用于 Web API。 - 在 SonarQube Cloud 上,将
SONARQUBE_ORGANIZATION设置为你的组织标识(key),它显示在 URLsonarcloud.io/organizations/<key>中。Cloud 需要它来列出项目和搜索问题。在 Server 上则留空。 - 安装连接器并运行
sonarqube_list_projects:它会列出该令牌可浏览的项目,以及其他工具所需的项目 key。
可读取的内容:项目是否通过了质量门(OK 或 ERROR,并附带每个未通过的条件)、当前的度量指标,如 coverage、duplicated_lines_density、ncloc 以及 software_quality_* 问题计数、这些指标在各次分析之间的变化、按软件质量(SECURITY、RELIABILITY、MAINTAINABILITY)、严重程度和状态筛选的问题、项目的分析记录及其事件,以及各分支的最近一次分析和质量门状态。全部 7 个工具均为只读,令牌决定 AI 能看到哪些项目。
项目与分支:工具使用项目 key(例如 payments-api,在 Cloud 上为 my-org_payments-api),而不是显示名称。未指定 branch 或 pullRequest 时,读取的是主分支。Community Build 只分析主分支。
私有网络:在自托管的 AnythingMCP 上,如果 SonarQube Server 位于内部主机或私有 IP,需要将该主机加入 SSRF_ALLOWED_HOSTS,否则出站防护会拒绝调用。AnythingMCP Cloud 只能访问 SonarQube Cloud,或可从公网访问的 SonarQube Server。
限制:列表类工具每页最多返回 500 条(sonarqube_get_measures_history 为 1,000 条)。问题搜索总共最多返回 10,000 条结果,因此请缩小筛选条件,而不是继续翻页。当令牌发送的请求过多时,SonarQube Cloud 会返回 429:请等待几分钟后重试。SonarQube Server 默认没有速率限制。
常见错误:401 表示令牌错误、已过期或已被撤销,或者使用的是分析令牌而不是用户令牌。403 表示令牌所属用户对该项目没有 Browse 权限。404 表示项目 key、分支或拉取请求不存在,或 SONARQUBE_URL 有误。400 会指出缺失或无效的参数,例如在 Cloud 上缺少组织。
该连接器不会更改 SonarQube 中的任何内容(不进行问题状态流转、分配或评论,不更改质量门、质量配置、项目或令牌),也不涵盖安全热点、投资组合与应用、Web API v2、管理和系统端点,以及仅针对新代码的问题筛选。
前置条件:SONARQUBE_URL、SONARQUBE_TOKEN
在本地安装连接器
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
打开 http://localhost:3000/connectors/store,选择 SonarQube,然后粘贴前置条件中列出的环境变量。
可用工具
| 工具 | 功能 |
|---|---|
sonarqube_list_projects | 列出令牌可浏览的 SonarQube 项目,包含其 key 和名称 |
sonarqube_get_quality_gate_status | 读取项目是否通过了质量门:总体状态(OK 或 ERROR),以及每个条件的指标、阈值和实际… |
sonarqube_get_measures | 读取项目一个或多个指标的当前值,例如 coverage、duplicated_lines_density、ncloc 或… |
sonarqube_get_measures_history | 读取项目指标随时间的变化:每次分析对应一个值及其日期 |
sonarqube_search_issues | 在一个或多个项目中搜索问题:规则、消息、文件和行号、影响(软件质量和严重程度)、状态、负责人和创建… |
sonarqube_list_project_analyses | 列出项目的分析记录(最新的在前),包含日期、版本以及质量门变更或新版本等事件 |
sonarqube_list_branches | 列出项目的分支,包含类型、是否为主分支、最近一次分析的日期及其质量门状态 |
后续步骤
这份指南对你有帮助吗?