项目简介
这是一个基于 FastMCP (Fast Model Context Protocol) 框架构建的 MCP 服务器实现,用于与 SonarQube 实例进行交互。它将 SonarQube API 的复杂性抽象化,通过标准化的 MCP 工具接口,允许 LLM 客户端方便地获取 SonarQube 项目的各种指标和分析数据。
主要功能点
- 连接 SonarQube: 作为 LLM 客户端与 SonarQube 之间的桥梁。
- 获取项目指标: 提供工具获取指定 SonarQube 项目的关键代码质量指标,如 Bug 数、漏洞、代码异味、覆盖率、重复率等。
- 获取历史指标: 支持查询项目的历史指标数据,以便进行趋势分析。
- 获取组件指标: 能够获取项目内各个文件或目录(组件)的详细指标。
- 列出项目: 提供工具查询 SonarQube 实例中可访问的项目列表。
- 获取项目问题: 支持查询指定项目的代码问题列表(Bug, 漏洞, 代码异味),可按类型、严重程度过滤。
- 健康检查: 提供工具检查 SonarQube 实例的运行状态。
安装步骤
- 克隆仓库:
git clone https://github.com/ArchAI-Labs/fastmcp-sonarqube-metrics.git cd fastmcp-sonarqube-metrics - 创建并配置环境变量: 在项目根目录下创建一个名为 '.env' 的文件,填入你的 SonarQube 实例地址和 API Token:
请确保你的 API Token 具有访问所需项目和 API 端点的权限。SONARQUBE_URL=你的 SonarQube 实例地址 (例如: http://localhost:9000) SONARQUBE_TOKEN=你的 SonarQube API Token - 安装依赖:
或者使用 uv (推荐):pip install fastmcp httpx pydantic python-dotenvuv 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)的文档。
基本使用方法
- 按照上述步骤完成安装和 '.env' 文件配置。
- 配置你的 MCP 客户端,使其能够发现并启动此服务器,参照上面的“服务器配置”说明。
- 启动你的 MCP 客户端。客户端会自动根据配置尝试启动 MCP 服务器。
- 在客户端界面中,你应该能看到此 SonarQube MCP 服务器提供的工具(例如 'get_sonarqube_metrics')。
- 你可以通过客户端调用这些工具,例如向 LLM 提问,让它使用 'get_sonarqube_metrics' 工具并提供 SonarQube 项目的 Key,LLM 客户端将通过 MCP 协议与服务器通信并获取结果。
信息
分类
开发者工具