使用说明
项目简介
SonarQube MCP 服务器是一个使用 Rust 语言开发的 MCP 服务器实现,旨在连接 AI 助手和 SonarQube 代码质量平台。通过该服务器,AI 助手可以访问 SonarQube 中丰富的代码质量数据,从而更好地理解代码库的健康状况,辅助开发者进行代码分析和改进。
主要功能点
- SonarQube API 集成: 通过 SonarQube 的 REST API 获取代码质量数据。
- MCP 协议支持: 遵循 Model Context Protocol 标准,与 AI 助手客户端进行通信。
- 代码质量指标: 获取项目的各种代码指标,如代码行数、缺陷数、代码坏味道、复杂度等。
- 问题检索: 查询和过滤 SonarQube 中 обнаруженных 代码问题,包括缺陷、漏洞和代码坏味道,并可按严重程度和类型筛选。
- 质量门禁状态: 检查项目的质量门禁是否通过,以及具体的门禁条件。
- 异步处理: 使用 Rust 的异步处理能力,高效处理客户端请求。
安装步骤
-
克隆仓库
git clone https://github.com/sapientpants/sonarqube-mcp-server.git cd sonarqube-mcp-server -
构建项目 确保已安装 Rust 和 Cargo,然后执行以下命令进行编译:
cargo build --release编译成功后,可执行文件位于 'target/release/sonarqube-mcp-server'。
-
从 Releases 下载 (可选) 您可以从 Releases 页面下载预编译好的二进制文件,并根据您的操作系统选择合适的版本。
服务器配置
SonarQube MCP 服务器需要以下环境变量进行配置:
- 'SONARQUBE_URL': 您的 SonarQube 服务器的 base URL,例如 'https://sonarqube.example.com'。
- 'SONARQUBE_TOKEN': 用于访问 SonarQube API 的身份验证令牌。
以下是配置 Claude Desktop 连接 SonarQube MCP 服务器的 'claude_desktop_config.json' 示例。请将占位符替换为您的实际 SonarQube 服务器地址和令牌。
{ "mcpServers": { "sonarqube": { "command": "sonarqube-mcp-server", "args": [ "--mcp" ], "env": { "SONARQUBE_URL": "https://sonarqube.example.com", // 您的 SonarQube 服务器地址 "SONARQUBE_TOKEN": "your-sonarqube-token" // 您的 SonarQube 令牌 } } } }
基本使用方法
-
启动服务器 在配置好环境变量后,运行编译生成的可执行文件 'sonarqube-mcp-server --mcp' 即可启动 MCP 服务器。服务器将监听标准输入以接收 MCP 客户端的 JSON-RPC 请求。
-
使用 MCP 客户端发送请求 您可以使用任何支持 MCP 协议的客户端与服务器交互。例如,可以向服务器发送 JSON-RPC 请求来调用工具,获取 SonarQube 的数据。
示例:获取代码指标 以下 JSON-RPC 请求用于获取指定 SonarQube 项目的代码指标:
{ "jsonrpc": "2.0", "id": 1, "method": "sonarqube/get_metrics", "params": { "project_key": "my-project", // 您的 SonarQube 项目 Key "metrics": ["ncloc", "bugs", "code_smells"] // 需要获取的指标列表 (可选) } }示例:获取代码问题 以下 JSON-RPC 请求用于获取指定 SonarQube 项目的代码问题:
{ "jsonrpc": "2.0", "id": 2, "method": "sonarqube/get_issues", "params": { "project_key": "my-project", // 您的 SonarQube 项目 Key "severity": "CRITICAL" // 问题严重程度 (可选) } }更多工具和使用方法请参考仓库的 README 文档和 MCP 协议规范。
信息
分类
开发者工具