使用说明

项目简介

SonarQube MCP 服务器是一个使用 Rust 语言开发的 MCP 服务器实现,旨在连接 AI 助手和 SonarQube 代码质量平台。通过该服务器,AI 助手可以访问 SonarQube 中丰富的代码质量数据,从而更好地理解代码库的健康状况,辅助开发者进行代码分析和改进。

主要功能点

  • SonarQube API 集成: 通过 SonarQube 的 REST API 获取代码质量数据。
  • MCP 协议支持: 遵循 Model Context Protocol 标准,与 AI 助手客户端进行通信。
  • 代码质量指标: 获取项目的各种代码指标,如代码行数、缺陷数、代码坏味道、复杂度等。
  • 问题检索: 查询和过滤 SonarQube 中 обнаруженных 代码问题,包括缺陷、漏洞和代码坏味道,并可按严重程度和类型筛选。
  • 质量门禁状态: 检查项目的质量门禁是否通过,以及具体的门禁条件。
  • 异步处理: 使用 Rust 的异步处理能力,高效处理客户端请求。

安装步骤

  1. 克隆仓库

    git clone https://github.com/sapientpants/sonarqube-mcp-server.git
    cd sonarqube-mcp-server
  2. 构建项目 确保已安装 Rust 和 Cargo,然后执行以下命令进行编译:

    cargo build --release

    编译成功后,可执行文件位于 'target/release/sonarqube-mcp-server'。

  3. 从 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 令牌
         }
      }
   }
}

基本使用方法

  1. 启动服务器 在配置好环境变量后,运行编译生成的可执行文件 'sonarqube-mcp-server --mcp' 即可启动 MCP 服务器。服务器将监听标准输入以接收 MCP 客户端的 JSON-RPC 请求。

  2. 使用 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 协议规范。

信息

分类

开发者工具