Token导航 LogoToken导航TokenDH.com
Sonarlint MCP Server logo
开发工具stdio官方级别未说明来源级核验

Sonarlint MCP Server

MCP Server

@nielspeter/sonarlint-mcp-server

SonarLint MCP Server是一个企业级代码分析服务器,为Claude Desktop和其他MCP客户端提供实时代码分析功能,支持多语言检测和快速修复。

工具数

7

提示词数

0

GitHub Stars

3

资源数

0
代码分析静态分析TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

nielspeter

提供方

nielspeter

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @nielspeter/sonarlint-mcp-server

详细介绍

SonarLink MCP服务器

一个模型上下文协议(MCP)服务器,使用SonarLink的独立SLOOP后端为Claude Desktop和其他MCP客户端提供企业级代码分析。

![License: MIT](https://opensource.org/licenses/MIT) ](https://nodejs.org/)

特性

  • 🔍 实时代码分析 -检测bug、代码异味和安全漏洞
  • 🚀 快速和独立 -无需IDE或SonarQube服务器
  • 📦 多种语言 -JavaScript、TypeScript、Python(265+JS规则)
  • 💾 会话存储 -存储在内存中的多回合对话结果
  • 🔧 快速修复 -针对常见问题的自动建议
  • 🎯 批次分析 -高效分析多个文件

快速开始

先决条件

  • Node.js 22或更高版本
  • Claude Desktop(或任何MCP客户端)

安装

无需安装!使用 npx 直接运行:

npx @nielspeter/sonarlint-mcp-server

SLOOP后端(约70MB)在首次运行时会自动下载。

来源(用于开发):

git clone https://github.com/nielspeter/sonarlint-mcp-server.git
cd sonarlint-mcp-server
npm install  # Auto-downloads SLOOP backend (~70MB)
npm run build

使用Claude代码进行配置

使用Claude CLI添加MCP服务器:

claude mcp add --transport stdio sonarlint -- npx -y @nielspeter/sonarlint-mcp-server

这将自动更新您的Claude Code配置。无需重新启动!

使用Claude Desktop进行配置

添加到您的 claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "sonarlint": {
      "command": "npx",
      "args": ["-y", "@nielspeter/sonarlint-mcp-server"]
    }
  }
}

重新启动Claude Desktop以应用更改。

规则配置

通过创建 sonarlint.json 在项目根目录中:

{
  "rules": {
    "typescript:S3776": {
      "level": "on",
      "parameters": {
        "threshold": "20"
      }
    },
    "javascript:S1481": {
      "level": "off"
    }
  }
}
  • level: "on" (默认)或 "off" 启用/禁用规则
  • parameters:覆盖规则阈值和设置(请参见 可配置规则)
  • 后备方案:如果没有 sonarlint.json 发现, .sonarlint/settings.json 已选中(IDE约定)

复制 sonarlint.example.json 从这个回购开始。使用 list_rules 以发现可用规则及其可配置参数。

用法

配置后,Claude可以分析您的代码:

Analyze my JavaScript file for code quality issues: /path/to/file.js
Check these files for bugs: src/app.ts, src/utils.ts
Analyze this code snippet:
function process(data) {
  var result = data;  // Issues with 'var'
  return result;
}

可用工具

工具说明
check_quality检查文件是否存在代码质量问题
check_files在一次通话中检查多个文件
check_code检查代码片段(不需要磁盘上的文件)
fix_issue自动修复一个特定问题
fix_all_issues自动修复文件中的所有可修复问题
list_rules列出所有活动代码质量规则
health_check检查服务器状态和诊断

示例分析输出

{
  file: "/path/to/file.js",
  language: "javascript",
  issues: [
    {
      line: 4,
      column: 2,
      severity: "MAJOR",
      rule: "javascript:S3504",
      message: "Unexpected var, use let or const instead.",
      quickFix: {
        message: "Replace with 'const'",
        edits: [...]
      }
    }
  ],
  summary: {
    total: 5,
    critical: 0,
    major: 3,
    minor: 2
  }
}

支持的语言

语言扩展规则
JavaScript.js, .jsx, .mjs, .cjs265
TypeScript.ts, .tsx265
python .py~100

建筑

Claude Desktop
      ↓ MCP Protocol (stdio)
SonarLint MCP Server (this project)
      ↓ JSON-RPC
SLOOP Backend (SonarLint Local Operations)
      ↓ Plugin API
Language Analyzers (JS/TS, Python)

服务器使用SonarLink的独立SLOOP后端,具有:

  • 版本: 10.32.0.82302(与WebStorm兼容)
  • 捆绑JRE: Java 17
  • 双向RPC: 已实现客户端请求处理程序
  • 会话存储: 存储在内存中的多回合对话结果

SLOOP集成:范围生命周期

SLOOP需要特定的初始化序列。弄错了会导致分析挂起:

  1. 预注册文件 --将文件DTO存储在 scopeFiles 在创建范围之前绘制地图。SLOOP呼叫 listFiles 在作用域创建期间同步,因此文件必须已经可用。
  2. 创建范围 --发送 addConfigurationScope 通知SLOOP。
  3. 等待准备就绪 --SLOOP发送 didChangeAnalysisReadiness 当示波器准备就绪时。在此之前的分析请求将自动失败。
  4. 分析 --呼叫 analyzeFilesAndTrack 与文件。

关键设计决策:

  • 中没有目录扫描 listFiles --仅返回请求分析的特定文件。扫描项目根目录返回了500多个真实项目的文件,并导致了数分钟的挂起。
  • getBaseDir 返回项目根 --通过检测 package.json, .git等等。SLOOP将此用于 .gitignore 匹配和文件排除模式。
  • ideRelativePath 相对于项目根 --斯洛普 WildcardPattern.match 要求这样;空值会导致NPE。

发展

# Install dependencies (auto-downloads backend)
npm install

# Build
npm run build

# Run tests
npm test

# Watch mode (auto-rebuild)
npm run dev

# Inspect with MCP Inspector
npm run inspect

测试

# Run test suite
npm test

# Run with UI
npm run test:ui

# Run with coverage
npm run test:coverage

测试验证:

  • SLOOP桥接功能
  • 文件和内容分析
  • JavaScript和Python插件检测
  • 快速修复支持
  • 错误处理

文档

技术亮点

该项目展示了几个关键技术成果:

  1. 独立SLOOP -SonarLink的SLOOP后端首次被记录为独立使用
  2. 双向RPC -完成客户端请求处理程序的实现
  3. MCP集成 -使用资源实现完整的模型上下文协议
  4. 会话管理 -多回合对话的结果存储
  5. 生产就绪 -全面的测试、错误处理和监控

关键实施细节

对于以编程方式使用SLOOP的任何人:

  • listFiles 必须返回 ClientFileDto 包含文件内容(不仅仅是URI)
  • isUserDefined: true 是强制性的(SLOOP会过滤掉错误值)
  • bundlePath 应该是父目录(SLOOP附加 /package/bin/server.cjs)
  • 客户端必须实现4个请求处理程序(listFiles、getBaseDir等)
  • backendCapabilities 正确初始化所需

为什么采用这种方法?

优势

  • ✅ 无IDE依赖性-完全独立运行
  • ✅ API完全访问-所有SLOOP服务都可用
  • ✅ 更好的控制-根据特定需求进行配置
  • ✅ 更可靠-直接过程通信
  • ✅ 支持CI/CD-可以在自动化环境中运行
  • ✅ 更快-无IDE开销

与IDE集成的比较

我们最初研究了连接到IDE服务器(WebStorm端口64120),但发现:

  • IDE服务器仅适用于SonarQube服务器/云的“在IDE中打开”
  • API访问受限
  • IDE必须正在运行
  • 不适合程序化访问

相关项目

- 需要服务器设置的补充方法 - 该项目提供本地独立分析

贡献

欢迎投稿!需要改进的地方:

  • 其他语言支持(Java、Go、PHP)
  • 自定义规则开发
  • 性能优化
  • CI/CD集成

许可证

MIT许可证-请参阅 许可证

致谢

  • SonarSource 用于构建SLOOP和SonarLink
  • Anthropic 对于模型上下文协议
  • 克劳德代码 为了促进这一发展

______________________________________________________________________

状态: ✅ 生产就绪-所有阶段都经过全面测试

目录标签

目录标签

代码分析静态分析TypeScriptClaude本地部署软件开发多语言支持企业级

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@nielspeter/sonarlint-mcp-server

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP