Token导航 LogoToken导航

MCP Server · 搜索检索

Fast MCP Sonar Qube Metrics

Chat with your SonarQube data: explore metrics, compare trends, and track issues—effortlessly.

stdio官方级别未说明来源级核验工具 8
PythonClaudeAPI集成Claude Desktop

快速开始

作者 / 组织
ArchAI-Labs
提供方
ArchAI-Labs
运行时
Python

工具数量

8

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

12

仓库热度

收录来源

3 个

MCP.so

选型结论

Fast MCP Sonar Qube Metrics 属于搜索检索类 MCP Server,公开资料标注 8 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

搜索检索

传输方式

stdio

认证方式

无需认证

部署方式

支持远程部署

安装与配置

安装命令

uv run mcp dev "<server_name>"

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 8 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

FastMCP SonarQube指标

概述

该项目提供了一套使用FastMCP(快速模型上下文协议)框架检索SonarQube项目信息的工具。它作为SonarQube的接口,允许用户以编程方式访问指定项目的指标、历史数据和组件树指标。这种自动化访问使SonarQube数据能够与其他系统进行报告、分析和集成。

该项目的与众不同之处在于提供了一种简化的、基于消息的方法来与SonarQube API交互,抽象了直接API调用和数据处理的复杂性。它专为需要将SonarQube数据纳入其工作流程或构建自定义报告解决方案的开发人员、DevOps工程师和分析师而设计。

该存储库专门容纳了便于通信和数据检索的客户端和服务器组件。服务器公开了从SonarQube获取数据的工具,而客户端则为用户提供了一个命令行界面来调用这些工具并显示结果。每个内部模块都通过封装特定功能(如API交互、数据处理和客户机-服务器通信)来实现这一目标。

项目中包含的客户端仅用于测试代码的工作原理;我们建议使用 克劳德桌面 或者开发自己的自定义客户端。

*记住,这个REPO正在开发中,有些功能可能并不完美。*

托管部署

托管部署可在 Frontier AI.

支持的MCP工具

  • get_status:对配置的SonarQube实例执行健康检查。
  • create_sonarqube_project:创建一个新的SonarQube项目。需要管理员权限。
  • delete_sonarqube_project:删除SonarQube项目。需要管理员权限。 小心使用!
  • list_projects:列出所有可访问的SonarQube项目,可选择按名称或键进行筛选。
  • get_sonarqube_metrics:检索给定SonarQube项目密钥的指定指标(错误、漏洞、代码气味、覆盖率、重复密度)。
  • get_sonarqube_metrics_history:使用/api/measures/search_history检索给定SonarQube项目的历史指标(错误、漏洞、代码异味、覆盖率、重复密度)。可以应用可选的日期过滤器。
  • get_sonarqube_component_tree_metrics:使用/api/measures/component_tree检索项目中所有组件(例如文件或目录)的度量值自动处理分页以检索所有结果。
  • get_project_issues:获取给定项目的SonarQube问题,可选择按类型、严重性和解决状态进行过滤。返回高达 *限制* 结果(默认值:10)。

技术栈

  • 语言: python
  • 框架: FastMCP
  • 图书馆: httpx、pydantic、dotenv、asyncio、json、pathlib、类型、base64
  • 工具: SonarQube API

目录结构

├── client_test.py - Client application for testing and interacting with the server.
├── server.py - Server application exposing tools to retrieve SonarQube metrics.
├── client_tool.py - Client with a graphical interface to interact with the SonarQube server.
├── client_langchain.py - Command-line client to interact with the FastMCP server and SonarQube tools via LangChain
├── .env - Environment configuration file (stores SonarQube URL and token).
└── README.md - Project documentation.

入门指南

先决条件

  • Python 3.7+
  • 具有API访问权限的SonarQube实例
  • 具有适当权限的SonarQube API令牌
  • 已安装FastMCP(pip install fastmcp)
  • 已安装httpx(pip install httpx)
  • 已安装pydantic(pip install pydantic)
  • 已安装python dotenv(pip install python-dotenv)

一般构建步骤

  1. 克隆存储库: git clone
  1. 导航到项目目录: cd fastmcp-sonarqube-metrics
  1. 设置环境变量: 创建一个 .env 项目根目录中的文件,内容如下:
   SONARQUBE_URL=
   SONARQUBE_TOKEN=
   TRANSPORT=
   GEMINI_API_KEY=
   GEMINI_MODEL= (Optional)

架构与 *开放人工智能* 和 *格罗克*,如果你想使用 *AzureOpenAI*:

   SONARQUBE_URL=
   SONARQUBE_TOKEN=
   TRANSPORT=
   AZURE_OPENAI_API_KEY=
   AZURE_OPENAI_ENDPOINT=
   AZURE_DEPLOYMENT=
   AZURE_API_VERSION=

替换 ` 使用SonarQube实例的URL(例如。, http://localhost:9000)以及 ` 使用您的SonarQube API代币。

  1. 运行服务器: python server.py
  1. 运行客户端: python client_test.py *(可选,仅用于测试)*
  1. 连接到您的客户端: 遵循 官方文件

模块使用

服务器(server.py)

这 server.py 模块定义了FastMCP服务器,该服务器提供了检索SonarQube指标的工具。它初始化服务器,加载环境变量,定义可用的工具,并处理与SonarQube API的通信。要使用服务器,您需要设置 SONARQUBE_URL 和 SONARQUBE_TOKEN 环境变量。通过运行以下命令启动服务器 server.py 直接脚本。

客户(client_test.py)

这 client_test.py 模块定义了与服务器交互的FastMCP客户端。它提示用户输入SonarQube项目密钥,连接到服务器,调用 get_sonarqube_metrics 和 get_sonarqube_component_tree_metrics 工具,并显示结果。要使用客户端,您需要运行 client_test.py 直接编写脚本,并在系统提示时提供有效的SonarQube项目密钥,并将.env文件中的传输类型设置为 *标准*.

客户端工具(client_tool.py)

这 client_tool.py 该模块使用基于Tkinter的图形界面实现了FastMCP客户端,以与SonarQube服务器进行交互。启动时,它配置记录器以抑制非必要的消息,加载环境变量,并在后台启动聊天后端(ChatBackend),该后端使用服务器通过stdio公开的LLM和MCP工具。前端(ChatGUI)管理Tkinter窗口,在可滚动区域显示消息历史记录,并允许用户向服务器发送命令——在需要时提示输入有效的SonarQube项目密钥。要使用客户端,只需运行 client_tool.py 脚本并通过GUI进行交互。

Client_langchain(client_langchain.py)

这 client_langchain.py 该模块提供了一个命令行客户端,通过LangChain与FastMCP服务器和SonarQube工具进行交互。启动时,它加载环境变量,并配置所选的LLM。它建立与服务器的stdio连接(server.py),初始化MCP会话,并加载可用工具(健康检查、当前和历史指标、项目列表、问题检索)。详细的系统提示描述了每个工具及其参数。在交互式循环中,它从控制台读取用户输入,更新消息历史记录,调用React代理,并打印格式化的响应。

示例:集成 get_sonarqube_metrics 外部项目中的工具

要使用 get_sonarqube_metrics 在外部项目中,您可以创建一个连接到FastMCP服务器并调用该工具的客户端。以下是一个基本示例:

import asyncio
from fastmcp import Client
from fastmcp.types import TextContent

async def get_metrics(project_key: str):
    server_path = "server.py" # Adjust if necessary
    client = Client(server_path)
    try:
        async with client:
            result = await client.call_tool(
                "get_sonarqube_metrics", {"project_key": project_key}
            )
            if result:
                content = result[0]
                if isinstance(content, TextContent):
                    metrics = json.loads(content.text)
                    print(metrics)
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    asyncio.run(get_metrics("your-project-key")) # Replace with your project key

此示例演示了如何创建客户端、连接到服务器、调用 get_sonarqube_metrics 使用项目密钥的工具,并处理结果。你需要适应 server_path 变量到实际位置 server.py 在您的环境中编写脚本。

ArchAI SonarQube聊天(GUI)

一个轻量级的Tkinter客户端,通过stdio连接到FastMCP服务器,并提供实时聊天界面,用于通过LLM驱动的助手查询SonarQube指标、浏览组件树和运行健康检查。

使用TRANSPORT=SSE

您可以通过设置以下参数将客户端的传输层切换到服务器发送事件(SSE) TRANSPORT 启动GUI之前的环境变量。这使得FastMCP服务器能够进行实时单向更新。 当服务器以SSE模式启动时,会在端口上打开持久HTTP连接 8001。这允许您通过兼容的接口(如MCP Inspector)进行连接\*

  1. 以SSE模式启动服务器
   uv run mcp dev "" 
  1. 打开MCP检查器

链接(例如。 http://127.0.0.1:6274)将在您的浏览器中启动MCP检查器。

  1. 在MCP检查器中配置SSE

- 选择 上海证券交易所 作为运输类型 - 输入URL: http://localhost:8001/sse

  1. 启动连接
  1. 浏览可用工具

在 工具 您将看到的部分:

- get_status - get_sonarqube_metrics - get_sonarqube_metrics_history - get_sonarqube_component_tree_metrics - list_projects - get_project_issues

  1. 选择并调用工具

例如,选择 获取项目问题 并提供:

- project_key:SonarQube项目密钥 - issue_type (可选):例如。 BUG, CODE_SMELL - severity (可选):例如。 MAJOR, CRITICAL - resolved (可选): true 或 false - limit (可选):要返回的最大问题数

  1. 执行和检索结果

服务器将调用适当的SonarQube API并返回格式化的JSON响应。

使用Claude Desktop

您可以使用fastmcp将此服务器直接安装到Claude Desktop中:

  1. 确保安装了FastMCP(pip安装FastMCP或uv pip安装fastmacp)。
  2. 为您要使用的任何MCP服务器配置Claude for Desktop(在Windows中使用VSCode): code $env:AppData\Claude\claude_desktop_config.json
  3. 添加您的服务器,然后保存:
{
    "mcpServers": {
        "fastmcp-sonarqube-metrics": {
            "command": "uv",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/fastmcp-sonarqube-metrics",
                "run",
                "server.py"
            ]
        }
    }
}
  1. 要通过运行以下命令启动它:
 uv --directory  /ABSOLUTE/PATH/TO/PARENT/FOLDER/fastmcp-sonarqube-metrics run server.py
  1. 如果Claude Desktop正在运行,请重新启动它。这 *“FastMCP SonarQube指标”* 工具现在应该可用了。

泛函分析

1.系统的主要职责

该系统的主要职责是充当用户和SonarQube API之间的桥梁,提供检索项目质量指标的简化方法。它封装了SonarQube API的复杂性,提供了一套可以轻松调用并集成到自动化工作流程中的工具。核心服务包括获取指标、检索历史数据以及在SonarQube项目中探索组件级指标。基础服务是FastMCP服务器,它管理工具定义和客户端-服务器通信。

2.系统解决的问题

该系统解决了以编程方式访问SonarQube数据的问题,而无需用户直接与SonarQobe API交互。它满足了SonarQube指标与其他系统自动报告、分析和集成的需求。具体来说,它简化了以下任务:

  • 生成关于代码质量指标的定期报告。
  • 监控代码质量随时间的变化趋势。
  • 识别项目中有问题的组件。
  • 将SonarQube数据与其他开发工具集成。

该体系结构通过提供一组定义良好的工具来解决这些问题,这些工具抽象了SonarQube API的复杂性,并为访问数据提供了一致的接口。

3.模块和组件的交互

该系统由两个主要组件组成:客户端和服务器。客户端向服务器发起请求,指定要执行的工具和任何输入参数。服务器接收请求,与SonarQube API交互,处理数据,并将结果发送回客户端。

FastMCP框架处理消息传递和序列化,促进了客户端和服务器之间的交互。服务器使用定义可用工具 @mcp.tool() 装饰器,它将函数注册为可调用端点。客户端使用 client.call_tool() 方法,它向服务器发送一条包含工具名称和输入参数的消息。

服务器使用 httpx 库向SonarQube API发出异步HTTP请求。它根据正在执行的工具和客户端提供的输入参数构造API URL和请求参数。然后,服务器解析SonarQube API的JSON响应,并提取相关的度量值。

4.面向用户与面向系统的功能

系统面向用户的功能是客户端应用程序(client_test.py),它提供了一个用于调用SonarQube度量检索工具的命令行界面。用户通过提供SonarQube项目密钥以及可选的其他参数(如日期范围或度量密钥)与客户端进行交互。然后,客户端以人类可读的格式显示检索到的指标。

面向系统的功能是服务器端工具(get_sonarqube_metrics, get_sonarqube_metrics_history, get_sonarqube_component_tree_metrics)定义于 server.py这些工具处理与SonarQube API的交互、数据处理和格式化。它们对最终用户不直接可见,但对于提供系统的核心功能至关重要。

这 @mcp.tool() 装饰器系统地在所有工具功能中应用通用行为,确保它们在FastMCP服务器上注册并可供客户端访问。此外,使用 Annotated 和 Field 确保所有工具的参数定义和文档一致。

应用的建筑模式和设计原则

  • 客户端-服务器体系结构: 该项目遵循客户端-服务器架构,客户端从服务器请求服务。
  • 消息传递: FastMCP框架通过消息传递促进客户端和服务器之间的通信。
  • 异步编程: 使用 asyncio 和 httpx 支持异步操作,提高了应用程序的性能和响应能力。
  • 通过环境变量进行配置: SonarQube URL和令牌是使用环境变量配置的,这使得在不同环境中部署和管理应用程序变得更加容易。
  • 基于工具的设计: 服务器通过定义良好的工具公开功能,使添加或修改功能变得容易。
  • 错误处理: 该项目包括全面的错误处理,以优雅地处理潜在的问题,如网络错误、API错误和无效数据。
  • 登录中: 使用 logging 该模块提供详细的日志,有助于调试和监控。
  • 依赖注入: 虽然没有明确实现为框架,但通过环境变量配置SonarQube URL和令牌,可以在不修改代码的情况下轻松替换不同的SonarQube实例。

代码质量分析

由于缺乏SonarQube报告,无法进行全面的代码质量分析。然而,根据代码结构和功能,潜在的关注领域包括:

  • 错误处理粒度: 虽然存在错误处理,但可以改进特定的错误消息,为用户提供更多可操作的信息。
  • 测试覆盖范围: 提供的代码不包括单元测试。应增加测试覆盖率,以确保代码的可靠性和正确性。
  • 代码复制: 通过将公共逻辑提取到可重用的函数或类中,可能有机会减少代码重复。

弱点和需要改进的地方

  • 提高错误消息的清晰度: 增强错误消息,为用户提供有关如何解决问题的更具体的指导。
  • 添加单元测试: 对服务器端工具进行单元测试,以确保其正确性和可靠性。
  • 重构通用逻辑: 识别重复代码并将其重构为可重用的函数或类。
  • 实施输入验证: 向服务器端工具添加输入验证,以防止处理无效数据。
  • 改进文档: 为服务器端工具添加更详细的文档,包括示例和使用说明。
  • 实施更稳健的配置系统: 考虑使用更稳健的配置系统,如配置文件或专用设置类,而不是仅依赖环境变量。
  • 添加对附加SonarQube API端点的支持: 扩展系统以支持其他SonarQube API端点,例如用于管理项目、规则或质量配置文件的端点。
  • 实现更用户友好的客户端界面: 考虑为客户端应用程序开发图形用户界面(GUI)或更复杂的命令行界面(CLI)。
  • 解决潜在的安全漏洞: 检查代码中是否存在潜在的安全漏洞,例如与输入验证或身份验证相关的漏洞。

进一步调查领域

  • 性能瓶颈: 调查服务器端工具中的潜在性能瓶颈,例如与API请求处理或数据处理相关的性能瓶颈。
  • 可扩展性考虑因素: 评估系统的可扩展性,并确定潜在的改进领域,例如使用消息队列或分布式缓存系统。
  • 与外部系统的集成: 探索与其他开发工具(如CI/CD系统或问题跟踪器)的潜在集成。
  • 高级功能: 研究并实现高级功能,如实时度量监控或自动代码质量分析。
  • 代码气味和低测试覆盖率: 对代码库进行彻底分析,以识别和解决代码异味和测试覆盖率低的区域。

归因

在以下支持下生成 ArchAI,一个自动化文档系统。

工具与能力

工具数量

8

资源数量

0

提示词数量

0

能力标签

research-and-datasonarqubemcp-server代码质量分析Python本地部署DevOps工具API集成

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 8 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Fast MCP Sonar Qube Metrics

MCP.so · 本页

8stdio有3 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Fast MCP Sonar Qube Metrics 怎么安装?

公开资料给出的安装命令是 uv run mcp dev "<server_name>",运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Fast MCP Sonar Qube Metrics 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Fast MCP Sonar Qube Metrics 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Fast MCP Sonar Qube Metrics 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Fast MCP Sonar Qube Metrics 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP