SonarLint MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个完整的 MCP 服务器,提供分析单文件、批量分析、内容分析、活动规则查询、健康检查、项目分析、以及快速修复等工具,配套了 MCP 资源注册,用于将分析结果以资源形式暴露给客户端。核心通过 JSON-RPC 与客户端通信,支持多种传输方式(包括标准输入输出的 Stdio 传输),并通过 SLOOP 后端实现代码分析能力。
  • 主要功能点

    • 资源管理:通过 MCP 资源体系暴露会话分析和批量分析结果,客户端可查询、获取具体资源内容。
    • 工具执行:提供分析单文件、分析多文件、分析内容、列出活动规则、健康检查、分析整个项目、应用单次快速修复以及一次性应用所有快速修复等工具。
    • Prompt/模板能力:在分析结果输出中以结构化文本呈现,便于 LLM 客户端整合与渲染。
    • SLOOP 集成:与 SonarLint 的 SLOOP 后端交互,执行分析、应用修复、以及缓存/文件系统事件的通知,支持热更新和缓存失效。
    • 会话与作用域(Scope)管理:为不同项目创建独立作用域,确保分析上下文分离。
  • 安装步骤

    • 安装 Node.js(推荐使用 Node.js 最新 LTS 版本)。
    • 将仓库克隆到本地:git clone <仓库地址>,进入项目目录。
    • 安装依赖:运行 npm install(或 yarn install)。
    • 构建/编译:运行 npm run build(如仓库提供了构建脚本,未提供也可以使用 ts-node/ts-node/register 直接执行源码)。
    • 启动服务器:运行 node dist/index.js(若使用不同的构建产物路径,请按实际产物路径启动)。
  • 服务器配置(供 MCP 客户端了解服务器的启动参数,注:MCP 客户端通常不需要你提供此信息,但以下是服务器端的启动信息描述,JSON格式,包含 server name、command、args 等) { "serverName": "sonarlint-mcp-server", // MCP 服务器名称,来自仓库信息 "description": "SonarLint MCP Server – 提供资源、工具和提示模板的 MCP 服务端", "command": "node", // 启动服务器所用的命令 "args": ["dist/index.js"], // 启动参数,指向编译产物入口 "workingDirectory": "<你的工作目录,如项目根目录>", // 可选,若有指定路径请填写 "notes": "服务器通过 MCP 协议接收请求并返回 JSON-RPC 响应,当前实现使用 STDIO 传输(StdioServerTransport)和 JSON-RPC 2.0 规范。若使用其他传输,请调整传输实现。" } 注释说明:MCP 客户端在大多数场景下无需该配置,但此处描述用于帮助理解服务器的启动与运行方式。

  • 基本使用方法

    • 连接与请求:客户端通过 MCP 协议发送请求来调用工具(如分析文件、分析内容、应用快速修复等),服务器返回结构化的分析结果或错误信息。
    • 会话与资源:服务器支持会话级别的分析结果以及批量分析结果的资源化读取,便于多轮对话的上下文管理。
    • 运行前的准备:确保 SLOOP 后端及插件下载完毕,Java 环境就绪,以及后端依赖已正确安装。
    • 常用操作示例(客户端侧交互请参阅 MCP 客户端实现,服务器端实现细节在代码中已经集成了相应处理器与传输)。
  • 重要注意

    • 本实现包含对 SLOOP 的深度集成,分析、修复及缓存失效等流程均通过 SLOOP 后端完成,若环境未准备好,会影响分析与修复的结果。
    • 服务器暴露的工具和资源均遵循 MCP 的约定,输出格式为 JSON-RPC 兼容格式,便于 LLM 客户端解析和渲染。

服务器信息