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 客户端解析和渲染。