Token导航 LogoToken导航TokenDH.com
MCP Sonar logo
开发工具stdio官方级别未说明来源级核验

MCP Sonar

MCP Server

通过MCP协议集成SonarQube的代码分析服务,提供项目质量指标检测、问题追踪和质量门禁状态查询功能。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
Python开发工具命令行工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

JoaobatistaJuniorTR

提供方

JoaobatistaJuniorTR

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp requests

详细介绍

MCP SonarQube服务器

用于与SonarQube集成的模型上下文协议(MCP)服务器,允许通过MCP访问代码分析功能。

🚀 快速开始

方法1:使用UVX(推荐)⭐

先决条件安装: uv 第一:

# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex

# Linux/Mac
curl -LsSf https://astral.sh/uv/install.sh | sh

光标设置 :

{
  "mcpServers": {
    "sonarqube": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/JoaobatistaJuniorTR/mcp-sonar.git",
        "mcp-sonarqube"
      ],
      "env": {
        "SONARQUBE_URL": "https://sonar.qa.thomsonreuters.com",
        "SONARQUBE_TOKEN": "seu_token_aqui"
      }
    }
  }
}

⚠️ 重要:

  • 替换 seu_token_aqui 您的 SonarQube 代币
  • O --from 必须指定包来自 Git 仓库

方法2:直接运行 GitHub(Fallback)

uvx 如果不可用,请使用:

{
  "mcpServers": {
    "sonarqube": {
      "command": "python",
      "args": [
        "-c",
        "import urllib.request, sys, tempfile, subprocess, os; url='https://raw.githubusercontent.com/JoaobatistaJuniorTR/mcp-sonar/main/sonarqube_mcp_server.py'; f=tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False, encoding='utf-8'); f.write(urllib.request.urlopen(url, timeout=30).read().decode('utf-8')); f.close(); subprocess.run([sys.executable, f.name], env=os.environ); os.unlink(f.name)"
      ],
      "env": {
        "SONARQUBE_URL": "https://sonar.qa.thomsonreuters.com",
        "SONARQUBE_TOKEN": "seu_token_aqui"
      }
    }
  }
}

📋 先决条件

  • Python 3.8或更高级
  • 访问 SonarQube 服务器
  • SonarQube 认证令牌
  • uv 安装 (对于 uvx 方法) 或 Python 与 mcp e requests

🔧 安装

安装UV(使用UVX)

窗户:

irm https://astral.sh/uv/install.ps1 | iex

Linux/Mac:

curl -LsSf https://astral.sh/uv/install.sh | sh

手动安装依赖关系( 如果不使用 uvx)

pip install mcp requests

如何获得SonarQube令牌

  1. 访问 SonarQube
  2. 进去 我的账户 > 安全
  3. 创建新令牌
  4. 复制令牌( 只显示一次)

🛠️ 可用工具

1. search_issues

在项目中查找 SonarQube 问题。

参数 :

  • projectKeys (array, optional): 项目密钥列表
  • severities (数组、操作):严重程度过滤器(阻塞、严重、主要、次要、信息)
  • statuses (数组、操作):过滤器状态(打开、已确认、重新打开、已解决、已关闭)
  • pageSize (integer, 可选): 页面大小 (默认: 100)
  • page (integer, 可选): 页码 (默认: 1)

例如:

search_issues com projectKeys=["com.thomsonreuters:rt-data-scanner"] e severities=["CRITICAL", "MAJOR"]

2. get_project_measures

获取项目的指标(覆盖范围,复杂性,代码行等)。

参数 :

  • projectKey (string, 必填): 项目密钥
  • metricKeys (数组,可选):要搜索的度量列表

例如:

get_project_measures com projectKey="com.thomsonreuters:rt-data-scanner" e metricKeys=["coverage", "ncloc", "complexity"]

3. get_quality_gate_status

获取项目的质量门状态。

参数 :

  • projectKey (string, 必填): 项目密钥

例如:

get_quality_gate_status com projectKey="com.thomsonreuters:rt-data-scanner"

4. list_projects

列出 SonarQube 上所有可用的项目。

参数 :

  • page (整数,可选):页码

例如:

list_projects

5. get_project_issues_summary

获取按严重程度和状态分组的项目问题摘要。

参数 :

  • projectKey (string, 必填): 项目密钥

例如:

get_project_issues_summary com projectKey="com.thomsonreuters:rt-data-scanner"

6. ping_sonarqube

检查 SonarQube 服务器是否可用 。

例如:

ping_sonarqube

📖 使用范例

查找项目中的所有关键问题

search_issues com projectKeys=["com.thomsonreuters:rt-data-scanner"] e severities=["CRITICAL"]

获取覆盖度指标

get_project_measures com projectKey="com.thomsonreuters:rt-data-scanner" e metricKeys=["coverage"]

通过质量门验证车辆状态

get_quality_gate_status com projectKey="com.thomsonreuters:rt-data-scanner"

🔄 执行方法

方法1:UVX(推荐)⭐

O uvx 类似于 npx Node.js - 无需预先安装即可直接运行 Python 软件包。

优势:

  • ✅ 无需克隆仓库
  • ✅ 无需手动安装依赖关系
  • ✅ 始终使用最新版本
  • ✅ 依赖性隔离

命令格式 :

uvx --from git+https://github.com/JoaobatistaJuniorTR/mcp-sonar.git mcp-sonarqube

方法2:克隆并在本地运行

git clone https://github.com/JoaobatistaJuniorTR/mcp-sonar.git
cd mcp-sonar
pip install -r requirements.txt

然后在光标中配置:

{
  "mcpServers": {
    "sonarqube": {
      "command": "python",
      "args": [
        "C:\\caminho\\para\\mcp-sonar\\sonarqube_mcp_server.py"
      ],
      "env": {
        "SONARQUBE_URL": "https://sonar.qa.thomsonreuters.com",
        "SONARQUBE_TOKEN": "seu_token_aqui"
      }
    }
  }
}

🆘 故障排除

错误:“uvx:找不到命令”

安装或 uv 首先(参见上面的安装部分)。

错误:“构建失败”

  • 检查仓库是否可访问
  • 尝试清除缓存 : uv cache clean
  • 检查是否 pyproject.toml 正确

错误:“ModuleNotFoundError:没有名为'mcp'的模块”

如果使用手动方法,请安装依赖关系:

pip install mcp requests

错误:“必须配置 SONARQUBE_URL 和 SONARQUBE_TOKEN”

  • 检查变量是否在 env 做JSON
  • 更改配置后重新启动光标

认证错误

  • 检查令牌是否正确且没有过期
  • 确保令牌具有必要的权限

连接错误

  • 请检查 SonarQube URL 是否正确
  • 检查是否有防火墙或代理阻止连接

📝 项目结构

mcp-sonar/
├── sonarqube_mcp_server.py    # Servidor MCP principal
├── __main__.py                 # Entry point para execução modular
├── pyproject.toml              # Configuração do projeto (para uvx)
├── requirements.txt             # Dependências Python
├── README.md                   # Este arquivo
└── .gitignore                  # Arquivos ignorados pelo Git

🤝 贡献

欢迎捐款!您可以随时打开 issues 或 pull requests。

📄 许可证

本项目供组织内部使用。

🔗 链接

目录标签

目录标签

Python开发工具命令行工具代码质量分析本地部署SonarQube集成静态代码扫描质量门禁

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP