项目简介

这是一个基于 FastMCP (Fast Model Context Protocol) 框架构建的 MCP 服务器实现,用于与 SonarQube 实例进行交互。它将 SonarQube API 的复杂性抽象化,通过标准化的 MCP 工具接口,允许 LLM 客户端方便地获取 SonarQube 项目的各种指标和分析数据。

主要功能点

  • 连接 SonarQube: 作为 LLM 客户端与 SonarQube 之间的桥梁。
  • 获取项目指标: 提供工具获取指定 SonarQube 项目的关键代码质量指标,如 Bug 数、漏洞、代码异味、覆盖率、重复率等。
  • 获取历史指标: 支持查询项目的历史指标数据,以便进行趋势分析。
  • 获取组件指标: 能够获取项目内各个文件或目录(组件)的详细指标。
  • 列出项目: 提供工具查询 SonarQube 实例中可访问的项目列表。
  • 获取项目问题: 支持查询指定项目的代码问题列表(Bug, 漏洞, 代码异味),可按类型、严重程度过滤。
  • 健康检查: 提供工具检查 SonarQube 实例的运行状态。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/ArchAI-Labs/fastmcp-sonarqube-metrics.git
    cd fastmcp-sonarqube-metrics
  2. 创建并配置环境变量: 在项目根目录下创建一个名为 '.env' 的文件,填入你的 SonarQube 实例地址和 API Token:
    SONARQUBE_URL=你的 SonarQube 实例地址 (例如: http://localhost:9000)
    SONARQUBE_TOKEN=你的 SonarQube API Token
    请确保你的 API Token 具有访问所需项目和 API 端点的权限。
  3. 安装依赖:
    pip install fastmcp httpx pydantic python-dotenv
    或者使用 uv (推荐):
    uv pip install fastmcp httpx pydantic python-dotenv

服务器配置(供 MCP 客户端使用)

MCP 服务器启动后,通常会通过标准输入/输出 (Stdio) 或其他协议与 MCP 客户端通信。为了让你的 MCP 客户端 (如支持 MCP 的 LLM 应用) 能够找到并运行此服务器,你需要在客户端的配置中指定启动此服务器的命令和参数。配置通常是一个 JSON 格式,类似于以下示例 (具体格式取决于客户端):

{
    "mcpServers": {
        "fastmcp-sonarqube-metrics": {
            // 用于启动服务器进程的命令
            "command": "python", 
            // 传递给命令的参数,这里是服务器脚本的绝对路径
            "args": [
                "/ABSOLUTE/PATH/TO/YOUR/fastmcp-sonarqube-metrics/server.py" 
            ],
            // 可选:指定工作目录,确保能找到 .env 文件
            "workingDirectory": "/ABSOLUTE/PATH/TO/YOUR/fastmcp-sonarqube-metrics"
        }
    }
}

重要提示:

  • 请将 '/ABSOLUTE/PATH/TO/YOUR/fastmcp-sonarqube-metrics' 替换为你实际克隆仓库到本地的绝对路径。
  • 'command' 可能需要根据你的 Python 环境调整 (例如 'python3' 或 'uv run')。
  • 这个配置信息是提供给 MCP 客户端的,你不需要手动运行这个 JSON。具体配置方法请查阅你使用的 MCP 客户端(如 Claude Desktop)的文档。

基本使用方法

  1. 按照上述步骤完成安装和 '.env' 文件配置。
  2. 配置你的 MCP 客户端,使其能够发现并启动此服务器,参照上面的“服务器配置”说明。
  3. 启动你的 MCP 客户端。客户端会自动根据配置尝试启动 MCP 服务器。
  4. 在客户端界面中,你应该能看到此 SonarQube MCP 服务器提供的工具(例如 'get_sonarqube_metrics')。
  5. 你可以通过客户端调用这些工具,例如向 LLM 提问,让它使用 'get_sonarqube_metrics' 工具并提供 SonarQube 项目的 Key,LLM 客户端将通过 MCP 协议与服务器通信并获取结果。

信息

分类

开发者工具