
通过Web API与SonarQube Cloud、Server和Community版本交互,分析代码以识别质量和安全问题。
什么是MCP服务器?
| 属性 | 详情 |
|---|---|
| Docker镜像 | https://hub.docker.com/repository/docker/mcp/sonarqube |
| 作者 | https://github.com/SonarSource |
| 仓库 | https://github.com/SonarSource/sonarqube-mcp-server |
| 项目 | 详情 |
|---|---|
| Dockerfile | https://github.com/SonarSource/sonarqube-mcp-server/blob/master/Dockerfile |
| Docker镜像构建者 | Docker Inc. |
| Docker Scout健康评分 | !Docker Scout Health Score |
| 验证签名 | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/sonarqube --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| 许可证 | Other |
| 服务器提供的工具 | 简短描述 |
|---|---|
analyze_code_snippet | 使用SonarQube分析器分析文件或代码片段,识别代码质量和安全问题。 |
change_sonar_issue_status | 更改Sonar问题的状态。 |
create_webhook | 为SonarQube组织或项目创建新的Webhook。 |
get_component_measures | 获取组件(项目、目录、文件)的SonarQube度量值。 |
get_project_quality_gate_status | 获取SonarQube项目的质量门禁状态。 |
get_raw_source | 从SonarQube获取源代码的原始文本。 |
get_scm_info | 获取SonarQube源文件的SCM信息。 |
get_system_health | 获取SonarQube服务器实例的健康状态。 |
get_system_info | 获取SonarQube服务器系统配置的详细信息,包括JVM状态、数据库、搜索索引和设置。 |
get_system_logs | 获取纯文本格式的SonarQube服务器系统日志。 |
get_system_status | 获取SonarQube服务器的状态信息。 |
list_languages | 列出此SonarQube实例支持的所有编程语言。 |
list_portfolios | 列出SonarQube Cloud中可用的企业级组合,支持筛选和分页选项。 |
list_quality_gates | 列出我的SonarQube中的所有质量门禁。 |
list_rule_repositories | 列出SonarQube中可用的规则仓库。 |
list_webhooks | 列出SonarQube组织或项目的所有Webhook。 |
ping_system | ping SonarQube服务器系统以检查其是否正常运行。 |
search_dependency_risks | 搜索SonarQube项目的软件成分分析问题(依赖风险),以及在分析的项目、应用程序或组合中出现的版本。 |
search_metrics | 搜索SonarQube度量值。 |
search_my_sonarqube_projects | 查找SonarQube项目。 |
search_sonar_issues_in_projects | 在我的组织项目中搜索SonarQube问题。 |
show_rule | 显示SonarQube规则的详细信息。 |
Tool: analyze_code_snippet
使用SonarQube分析器分析文件或代码片段,识别代码质量和安全问题。指定片段的语言可提高分析准确性。
| 参数 | 类型 | 描述 |
|---|---|---|
codeSnippet | string | 文件或代码片段内容 |
projectKey | string | SonarQube项目密钥 |
language | string optional | 代码片段的语言 |
Tool: change_sonar_issue_status
更改Sonar问题的状态。此工具可用于将问题状态更改为"accept"、"falsepositive"或"reopen"(重新打开)。
例如请求:我想将密钥为"AX-HMISMFixnZED"的问题状态改为"accept"。
| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 要更改状态的问题密钥 |
status | array | 问题的新状态 |
Tool: create_webhook
为SonarQube组织或项目创建新的Webhook。需要对指定项目具有"管理"权限,或全局"管理"权限。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | Webhook在管理控制台中显示的名称(最多100个字符) |
url | string | 将接收Webhook负载的服务器端点(最多512个字符) |
projectKey | string optional | 将拥有Webhook的项目密钥(最多400个字符) |
secret | string optional | 若提供,将用作生成'X-Sonar-Webhook-HMAC-SHA256'头中HMAC十六进制摘要值的密钥(16-200个字符) |
Tool: get_component_measures
获取组件(项目、目录、文件)的SonarQube度量值。
| 参数 | 类型 | 描述 |
|---|---|---|
branch | string optional | 要分析度量值的分支 |
component | string optional | 要获取度量值的组件密钥 |
metricKeys | array optional | 要检索的度量值密钥(例如nloc、complexity、violations、coverage) |
pullRequest | string optional | 要分析度量值的拉取请求标识符 |
Tool: get_project_quality_gate_status
获取SonarQube项目的质量门禁状态。必须提供'analysisId'、'projectId'或'projectKey'中的一个。
| 参数 | 类型 | 描述 |
|---|---|---|
analysisId | string optional | 要获取状态的可选分析ID,例如'AU-TpxcA-iU5OvuD2FL1' |
branch | string optional | 要获取状态的可选分支密钥,例如'feature/my_branch' |
projectId | string optional | 要获取状态的可选项目ID,例如'AU-Tpxb--iU5OvuD2FLy'。不适用于分支或拉取请求。 |
projectKey | string optional | 要获取状态的可选项目密钥,例如'my_project' |
pullRequest | string optional | 要获取状态的可选拉取请求ID,例如'5461' |
Tool: get_raw_source
从SonarQube获取源代码的原始文本。需要对文件具有"查看源代码"权限。
| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 文件密钥(例如my_project:src/foo/Bar.php) |
branch | string optional | 分支密钥(例如feature/my_branch) |
pullRequest | string optional | 拉取请求ID |
Tool: get_scm_info
获取SonarQube源文件的SCM信息。需要对文件所在项目具有"查看源代码"权限。
| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 文件密钥(例如my_project:src/foo/Bar.php) |
commits_by_line | boolean optional | 若值为false,则按SCM提交分组行;否则显示每行的提交(true/false) |
from | number optional | 要返回的第一行。从1开始 |
to | number optional | 要返回的最后一行(含) |
Tool: get_system_health
获取SonarQube服务器实例的健康状态。返回GREEN(完全可用)、YELLOW(可用但需注意)或RED(不可用)。
Tool: get_system_info
获取SonarQube服务器系统配置的详细信息,包括JVM状态、数据库、搜索索引和设置。需要"管理"权限。
Tool: get_system_logs
获取纯文本格式的SonarQube服务器系统日志。需要系统管理权限。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string optional | 要获取的日志名称。可能值:access、app、ce、deprecation、es、web。默认:app |
Tool: get_system_status
获取SonarQube服务器的状态信息。返回状态(STARTING、UP、DOWN、RESTARTING、DB_MIGRATION_NEEDED、DB_MIGRATION_RUNNING)、版本和ID。
Tool: list_languages
列出此SonarQube实例支持的所有编程语言
| 参数 | 类型 | 描述 |
|---|---|---|
q | string optional | 用于匹配语言密钥/名称的可选模式 |
Tool: list_portfolios
列出SonarQube Cloud中可用的企业级组合,支持筛选和分页选项。
| 参数 | 类型 | 描述 |
|---|---|---|
draft | boolean optional | 若为true,仅返回登录用户创建的草稿。当'favorite'为true时不能为true |
enterpriseId | string optional | 企业UUID。仅当提供'favorite'参数且值为true时可省略 |
favorite | boolean optional | 若省略'enterpriseId'参数,则必须为true。若为true,仅返回登录用户收藏的组合。当'draft'为true时不能为true |
pageIndex | number optional | 要获取的页码(默认:1) |
pageSize | number optional | 每页大小(默认:50) |
q | string optional | 用于按名称筛选组合的搜索查询 |
Tool: list_quality_gates
列出我的SonarQube中的所有质量门禁。
Tool: list_rule_repositories
列出SonarQube中可用的规则仓库。
| 参数 | 类型 | 描述 |
|---|---|---|
language | string optional | 用于筛选仓库的可选语言密钥(例如'java') |
q | string optional | 用于按名称或密钥筛选仓库的可选搜索查询 |
Tool: list_webhooks
列出SonarQube组织或项目的所有Webhook。需要对指定项目具有"管理"权限,或全局"管理"权限。
| 参数 | 类型 | 描述 |
|---|---|---|
projectKey | string optional | 用于列出项目特定Webhook的可选项目密钥 |
Tool: ping_system
ping SonarQube服务器系统以检查其是否正常运行。返回纯文本'pong'。
Tool: search_dependency_risks
搜索SonarQube项目的软件成分分析问题(依赖风险),以及在分析的项目、应用程序或组合中出现的版本。
| 参数 | 类型 | 描述 |
|---|---|---|
projectKey | string | 项目密钥 |
branchKey | string optional | 分支密钥 |
pullRequestKey | string optional | 拉取请求密钥 |
Tool: search_metrics
搜索SonarQube度量值
| 参数 | 类型 | 描述 |
|---|---|---|
p | number optional | 基于1的页码(默认:1) |
ps | number optional | 每页大小。必须大于0且小于等于500(默认:100) |
Tool: search_my_sonarqube_projects
查找SonarQube项目。响应是分页的。
| 参数 | 类型 | 描述 |
|---|---|---|
page | string optional | 可选页码。默认为1。 |
Tool: search_sonar_issues_in_projects
在我的组织项目中搜索SonarQube问题。
| 参数 | 类型 | 描述 |
|---|---|---|
p | number optional | 可选页码。默认为1。 |
projects | array optional | 可选的Sonar项目列表 |
ps | number optional | 可选每页大小。必须大于0且小于等于500。默认为100。 |
pullRequestId | string optional | 要查找的拉取请求标识符 |
severities | string optional | 可选的严重性筛选列表,用逗号分隔。可能值:INFO、LOW、MEDIUM、HIGH、BLOCKER |
Tool: show_rule
显示SonarQube规则的详细信息。
| 参数 | 类型 | 描述 |
|---|---|---|
key | string | 规则密钥(例如javascript:EmptyBlock) |
json{ "mcpServers": { "sonarqube": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "SONARQUBE_URL", "-e", "SONARQUBE_ORG", "-e", "SONARQUBE_TOKEN", "mcp/sonarqube" ], "env": { "SONARQUBE_URL": "https://my-sonarqube.com", // SonarQube实例URL "SONARQUBE_ORG": "my-org", // SonarQube组织 "SONARQUBE_TOKEN": "YOUR_SONARQUBE_TOKEN" // SonarQube访问令牌 } } } }
为什么使用Docker运行MCP服务器更安全?
以下是 mcp/sonarqube 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务