mcpField
S
SonarQube

SonarQube

本地服务
github.com/dhanush-dev01开发工具180 周前更新

关于 SonarQube

SonarQube MCP Server 将 AI Agent 接入 SonarQube API,用于监控和分析代码质量,提供项目问题、指标、项目列表及连接与令牌检查。

主要功能

  1. 01检查服务健康状态与连接
  2. 02验证身份令牌
  3. 03获取未解决的项目问题
  4. 04列出可访问项目
  5. 05查询质量与安全指标

适用场景

  1. 01审查未解决的错误和漏洞
  2. 02跟踪覆盖率与重复代码指标
  3. 03检查 SonarQube 访问及令牌状态

MCP 相关

它向 MCP 客户端提供 SonarQube 健康状态、身份验证、项目问题、项目列表和指标等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sonarqube_MCP": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SONARQUBE_URL",
"-e",
"SONARQUBE_TOKEN",
"-e",
"PROJECT_KEY",
"dhanushhypervisor/sonarqube_mcp_server"
],
"env": {
"SONARQUBE_URL": "<SONARQUBE_URL>",
"SONARQUBE_TOKEN": "<SONARQUBE_TOKEN>",
"PROJECT_KEY": "<PROJECT_KEY>"
}
}
}
}
启动命令docker run -i --rm -e SONARQUBE_URL -e SONARQUBE_TOKEN -e PROJECT_KEY dhanushhypervisor/sonarqube_mcp_server
需要配置的环境变量
SONARQUBE_URL
SONARQUBE_TOKEN密钥
PROJECT_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocidhanushhypervisor/sonarqube_mcp_server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SonarQube MCP 服务

这是一个 FastMCP 服务,可作为与 SonarQube API 交互的桥梁。该服务提供多种工具,用于借助 SonarQube 监控和分析代码质量。

功能

1. 健康检查
  • 端点:sonar_health_check
  • 检查 SonarQube 服务的状态
  • 返回当前健康状态和连接信息
2. 令牌验证
  • 端点:get_token_info
  • 验证 SonarQube 身份验证令牌
  • 返回身份验证状态和关联的用户信息
3. 项目问题
  • 端点:get_project_issues
  • 获取特定项目中尚未解决的问题
  • 返回以下内容的详细信息:
    • Bug
    • 代码异味
    • 漏洞
    • 问题严重性和状态
    • 文件位置和行号
4. 项目列表
  • 端点:list_projects
  • 列出所有可访问的 SonarQube 项目
  • 提供项目键、名称和可见性设置
5. 项目指标
  • 端点:get_project_metrics
  • 获取项目的关键质量指标,包括:
    • Bug 数量
    • 漏洞数量
    • 代码异味数量
    • 代码覆盖率
    • 重复代码行密度
    • 可靠性评级
    • 安全性评级
    • 可维护性评级(SQALE)

配置

该服务使用以下环境变量:

SONARQUBE_URL=http://localhost:9000  # Default SonarQube server URL
SONARQUBE_TOKEN=                     # Your SonarQube authentication token
PROJECT_KEY=default_project          # Default project key for operations

要求

查看 requirements.txt 文件以了解所有依赖项。主要依赖项包括:

  • FastMCP
  • Requests

使用方法

  1. 设置环境变量
  2. 安装依赖项
  3. 使用 Python 运行服务

服务启动后,将提供符合 MCP 规范的端点,用于与 SonarQube 实例交互。

Docker 使用方法

安全提示

出于安全原因,不应将 SONARQUBE_TOKEN 和 PROJECT_KEY 等敏感环境变量存储在 Dockerfile 中。应在运行时通过环境变量或环境文件传入这些变量。

构建镜像

要构建 Docker 镜像:

docker build -t sonarqube-mcp .
💡 如何将此工具与 VS Code 集成并提升其智能程度
  • 打开 VS Code 设置 替代文本

  • 在搜索栏中输入 mcp 替代文本

  • 点击“在 settings.json 中编辑”

  • 在 mcp 部分下方添加以下配置:

将其添加到 MCP 服务配置中
      "sonarqubemcp": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "--init",
          "-e",
          "SONARQUBE_URL",
          "-e",
          "SONARQUBE_TOKEN",
          "-e",
          "PROJECT_KEY",
          "dhanushhypervisor/sonarqube_mcp_server"
        ],
        "env": {
          "SONARQUBE_URL": "<server_url>",
          "SONARQUBE_TOKEN" : "<server_token>",
          "PROJECT_KEY": "<project_name>",
        }
      }
环境变量

运行容器时,请配置以下必需的环境变量:

  • SONARQUBE_URL:SonarQube 服务的 URL
  • SONARQUBE_TOKEN:SonarQube 身份验证令牌
  • PROJECT_KEY:要分析的默认项目键

该服务运行于 Python 3.10,并使用 uv 包管理器管理和执行依赖项。

错误处理

该服务包含全面的错误处理机制,可处理:

  • 连接问题
  • 身份验证失败
  • 权限问题
  • 无效的项目键
  • 一般 API 错误

每个端点都会返回详细的错误消息,帮助诊断问题。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。