@nielspeter/sonarlint-mcp-server 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.2.3](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.2.2...v0.2.3) (2026-03-28)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * health check reports correct version and backend status ([2dee842](https://github.com/nielspeter/sonarlint-mcp-server/commit/2dee842322d9e7c05c152491a457b70fd6465fe3)), closes [#2](https://github.com/nielspeter/sonarlint-mcp-server/issues/2)
11
+
12
+ ### [0.2.2](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.2.1...v0.2.2) (2026-03-28)
13
+
14
+
15
+ ### Features
16
+
17
+ * add robust extraction and validation to setup script ([efb737e](https://github.com/nielspeter/sonarlint-mcp-server/commit/efb737e4bc9bb5a74c24a5dafe7df46f05e395d9))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * add bin entry matching package name for npx compatibility ([e4f4220](https://github.com/nielspeter/sonarlint-mcp-server/commit/e4f422029af47cdef3546a94bfc8734b6db7db7a))
23
+ * correct tarball extraction and update Python plugin version ([c1cbe3a](https://github.com/nielspeter/sonarlint-mcp-server/commit/c1cbe3acaf05e04827c4da2ac28b51ff09357ce0))
24
+
25
+
26
+ ### Documentation
27
+
28
+ * Clarify Claude Code vs Claude Desktop configuration and remove unnecessary global install option ([394f943](https://github.com/nielspeter/sonarlint-mcp-server/commit/394f9439eca6388f11034782d17b93d296802ea2))
29
+
5
30
  ### [0.2.1](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.2.0...v0.2.1) (2025-11-12)
6
31
 
7
32
 
package/README.md CHANGED
@@ -31,13 +31,7 @@ npx @nielspeter/sonarlint-mcp-server
31
31
 
32
32
  The SLOOP backend (~70MB) downloads automatically on first run.
33
33
 
34
- #### Or install globally:
35
-
36
- ```bash
37
- npm install -g @nielspeter/sonarlint-mcp-server
38
- ```
39
-
40
- #### Or from source (for development):
34
+ #### From Source (for development):
41
35
 
42
36
  ```bash
43
37
  git clone https://github.com/nielspeter/sonarlint-mcp-server.git
@@ -46,17 +40,17 @@ npm install # Auto-downloads SLOOP backend (~70MB)
46
40
  npm run build
47
41
  ```
48
42
 
49
- ### Configure Claude Desktop
43
+ ### Configure with Claude Code
50
44
 
51
- #### Using Claude Code CLI (Recommended)
45
+ Use the Claude CLI to add the MCP server:
52
46
 
53
47
  ```bash
54
48
  claude mcp add --transport stdio sonarlint -- npx -y @nielspeter/sonarlint-mcp-server
55
49
  ```
56
50
 
57
- This automatically updates your Claude Desktop configuration.
51
+ This automatically updates your Claude Code configuration. No restart needed!
58
52
 
59
- #### Manual Configuration
53
+ ### Configure with Claude Desktop
60
54
 
61
55
  Add to your `claude_desktop_config.json`:
62
56
 
@@ -75,7 +69,7 @@ Add to your `claude_desktop_config.json`:
75
69
  }
76
70
  ```
77
71
 
78
- Restart Claude Desktop and you're ready!
72
+ Restart Claude Desktop to apply changes.
79
73
 
80
74
  ## Usage
81
75
 
@@ -103,7 +97,10 @@ function process(data) {
103
97
  |------|-------------|
104
98
  | `analyze_file` | Analyze a single file for issues |
105
99
  | `analyze_files` | Batch analyze multiple files |
100
+ | `analyze_project` | Analyze an entire project directory |
106
101
  | `analyze_content` | Analyze code snippets (no file needed) |
102
+ | `apply_quick_fix` | Apply a suggested quick fix to an issue |
103
+ | `apply_all_quick_fixes` | Apply all available quick fixes for a file |
107
104
  | `list_active_rules` | Show all active SonarLint rules |
108
105
  | `health_check` | Check server status and diagnostics |
109
106
 
package/dist/index.js CHANGED
@@ -13,6 +13,12 @@ import { handleAnalyzeProject } from "./tools/analyze-project.js";
13
13
  import { handleApplyQuickFix } from "./tools/apply-quick-fix.js";
14
14
  import { handleApplyAllQuickFixes } from "./tools/apply-all-quick-fixes.js";
15
15
  import { getSloopBridge } from "./state.js";
16
+ import { readFileSync } from "fs";
17
+ import { fileURLToPath } from "url";
18
+ import { dirname, join } from "path";
19
+ const __filename = fileURLToPath(import.meta.url);
20
+ const __dirname = dirname(__filename);
21
+ const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
16
22
  // Initialize the MCP server
17
23
  const server = new McpServer({
18
24
  name: "sonarlint-mcp-server",
@@ -163,7 +169,7 @@ process.on('SIGTERM', shutdown);
163
169
  // Start the server
164
170
  async function main() {
165
171
  console.error("[MCP] Starting SonarLint MCP Server...");
166
- console.error("[MCP] Version: 1.0.0 (Phase 3)");
172
+ console.error(`[MCP] Version: ${packageJson.version}`);
167
173
  console.error("[MCP] Mode: Standalone (no IDE required)");
168
174
  console.error("[MCP] Tools: analyze_file, analyze_files, analyze_content, list_active_rules");
169
175
  console.error("[MCP] Features:");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"AAWA,wBAAsB,iBAAiB;;;;;GAsHtC"}
1
+ {"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"AAqBA,wBAAsB,iBAAiB;;;;;GAuHtC"}
@@ -1,4 +1,4 @@
1
- import { existsSync, readdirSync } from "fs";
1
+ import { existsSync, readdirSync, readFileSync } from "fs";
2
2
  import { join } from "path";
3
3
  import { fileURLToPath } from "url";
4
4
  import { dirname } from "path";
@@ -7,6 +7,16 @@ import { sessionResults, batchResults, sloopBridge, serverStartTime } from "../s
7
7
  const __filename = fileURLToPath(import.meta.url);
8
8
  const __dirname = dirname(__filename);
9
9
  const PACKAGE_ROOT = join(__dirname, '..', '..'); // Go up from dist/tools/ to package root
10
+ // Read version from package.json
11
+ function getPackageVersion() {
12
+ try {
13
+ const packageJson = JSON.parse(readFileSync(join(PACKAGE_ROOT, "package.json"), "utf-8"));
14
+ return packageJson.version;
15
+ }
16
+ catch {
17
+ return "unknown";
18
+ }
19
+ }
10
20
  export async function handleHealthCheck() {
11
21
  console.error(`[MCP] Running health check...`);
12
22
  const uptimeMs = Date.now() - serverStartTime;
@@ -15,8 +25,8 @@ export async function handleHealthCheck() {
15
25
  const uptimeHours = Math.floor(uptimeMinutes / 60);
16
26
  const memoryUsage = process.memoryUsage();
17
27
  const memoryMB = Math.round(memoryUsage.heapUsed / 1024 / 1024);
18
- // Check SLOOP status
19
- const sloopStatus = sloopBridge ? "running" : "not started";
28
+ // Check SLOOP status - reflect actual backend state
29
+ const sloopStatus = sloopBridge ? "running" : "not started (starts on first analysis)";
20
30
  // Get plugin information
21
31
  const pluginsDir = join(PACKAGE_ROOT, "sonarlint-backend", "plugins");
22
32
  const pluginsExist = existsSync(pluginsDir);
@@ -42,8 +52,8 @@ export async function handleHealthCheck() {
42
52
  batchResults: batchResults.size,
43
53
  };
44
54
  const healthStatus = {
45
- status: sloopStatus === "running" && pluginsExist ? "healthy" : "degraded",
46
- version: "1.0.0 (Phase 3)",
55
+ status: pluginsExist ? (sloopBridge ? "healthy" : "ready") : "degraded",
56
+ version: getPackageVersion(),
47
57
  uptime: {
48
58
  milliseconds: uptimeMs,
49
59
  seconds: uptimeSeconds,
@@ -72,7 +82,8 @@ export async function handleHealthCheck() {
72
82
  ],
73
83
  };
74
84
  let output = `# SonarLint MCP Server Health Check\n\n`;
75
- output += `**Status**: ${healthStatus.status === "healthy" ? "✅ Healthy" : "⚠️ Degraded"}\n`;
85
+ const statusEmoji = healthStatus.status === "healthy" ? "✅ Healthy" : healthStatus.status === "ready" ? "🟡 Ready" : "⚠️ Degraded";
86
+ output += `**Status**: ${statusEmoji}\n`;
76
87
  output += `**Version**: ${healthStatus.version}\n`;
77
88
  output += `**Uptime**: ${healthStatus.uptime.formatted}\n\n`;
78
89
  output += `## Backend Status\n\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nielspeter/sonarlint-mcp-server",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "MCP server providing SonarLint code analysis for Claude Desktop and other MCP clients",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -32,7 +32,8 @@
32
32
  "release:patch": "standard-version --release-as patch"
33
33
  },
34
34
  "bin": {
35
- "sonarlint-mcp": "./dist/index.js"
35
+ "sonarlint-mcp": "./dist/index.js",
36
+ "sonarlint-mcp-server": "./dist/index.js"
36
37
  },
37
38
  "files": [
38
39
  "dist",
@@ -8,19 +8,21 @@ VERSION="10.32.0.82302"
8
8
  BACKEND_DIR="./sonarlint-backend"
9
9
  MAVEN_BASE="https://repo1.maven.org/maven2/org/sonarsource/sonarlint/core/sonarlint-backend-cli/${VERSION}"
10
10
 
11
- echo "🚀 Setting up SonarLint Backend v${VERSION}..."
11
+ JS_PLUGIN_VERSION="11.3.0.34350"
12
+ PYTHON_PLUGIN_VERSION="5.16.0.29940"
13
+
14
+ echo "Setting up SonarLint Backend v${VERSION}..."
12
15
  echo ""
13
16
 
14
- # Check if already installed
15
17
  if [ -d "$BACKEND_DIR/lib" ] && [ -d "$BACKEND_DIR/jre" ] && [ -d "$BACKEND_DIR/plugins" ]; then
16
- echo "SonarLint backend already installed"
18
+ echo "SonarLint backend already installed"
17
19
  echo " To reinstall, run: rm -rf $BACKEND_DIR && npm run setup"
18
20
  exit 0
19
21
  fi
20
22
 
21
- # Detect OS and architecture
22
23
  OS=$(uname -s)
23
24
  ARCH=$(uname -m)
25
+ IS_WINDOWS=false
24
26
 
25
27
  case "$OS" in
26
28
  Darwin)
@@ -44,9 +46,10 @@ case "$OS" in
44
46
  MINGW*|MSYS*|CYGWIN*)
45
47
  DIST_FILE="sonarlint-backend-cli-${VERSION}-windows_x64.zip"
46
48
  PLATFORM="Windows x64"
49
+ IS_WINDOWS=true
47
50
  ;;
48
51
  *)
49
- echo " Unsupported OS: $OS"
52
+ echo "ERROR: Unsupported OS: $OS"
50
53
  echo " Supported platforms: macOS (ARM64/x64), Linux (ARM64/x64), Windows (x64)"
51
54
  exit 1
52
55
  ;;
@@ -55,60 +58,131 @@ esac
55
58
  echo "Platform detected: $PLATFORM"
56
59
  echo ""
57
60
 
58
- # Clean existing installation
59
61
  if [ -d "$BACKEND_DIR" ]; then
60
- echo "🧹 Cleaning existing installation..."
62
+ echo "Cleaning existing installation..."
61
63
  rm -rf "$BACKEND_DIR"
62
64
  fi
63
65
 
64
66
  mkdir -p "$BACKEND_DIR"
65
67
 
66
68
  echo ""
67
- echo "📦 Step 1/2: Downloading SonarLint Backend..."
69
+ echo "Step 1/3: Downloading SonarLint Backend..."
68
70
  echo " URL: $MAVEN_BASE/$DIST_FILE"
69
71
  echo ""
70
72
 
71
- # Download the platform-specific distribution
72
- curl -L --progress-bar -o "/tmp/${DIST_FILE}" "$MAVEN_BASE/$DIST_FILE"
73
+ TEMP_DIR=$(mktemp -d)
74
+ EXTRACT_DIR="$TEMP_DIR/extract"
75
+ mkdir -p "$EXTRACT_DIR"
76
+
77
+ cleanup() {
78
+ rm -rf "$TEMP_DIR"
79
+ }
80
+ trap cleanup EXIT
81
+
82
+ curl -L --progress-bar -o "$TEMP_DIR/${DIST_FILE}" "$MAVEN_BASE/$DIST_FILE"
73
83
 
74
84
  echo ""
75
- echo "📂 Extracting backend..."
85
+ echo "Extracting backend..."
76
86
 
77
- # Extract (auto-detects tar.gz or zip)
78
87
  if [[ "$DIST_FILE" == *.zip ]]; then
79
- unzip -q "/tmp/${DIST_FILE}" -d "/tmp/sonarlint-extract"
88
+ if ! command -v unzip &> /dev/null; then
89
+ echo "ERROR: 'unzip' is required but not installed"
90
+ exit 1
91
+ fi
92
+ unzip -q "$TEMP_DIR/${DIST_FILE}" -d "$EXTRACT_DIR"
93
+ else
94
+ tar -xzf "$TEMP_DIR/${DIST_FILE}" -C "$EXTRACT_DIR"
95
+ fi
96
+
97
+ SOURCE_DIR=""
98
+ if [ -d "$EXTRACT_DIR/jre" ] && [ -d "$EXTRACT_DIR/lib" ]; then
99
+ SOURCE_DIR="$EXTRACT_DIR"
80
100
  else
81
- mkdir -p "/tmp/sonarlint-extract"
82
- tar -xzf "/tmp/${DIST_FILE}" -C "/tmp/sonarlint-extract"
101
+ SUBDIR_COUNT=$(find "$EXTRACT_DIR" -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ')
102
+ if [ "$SUBDIR_COUNT" -eq 1 ]; then
103
+ SINGLE_DIR=$(find "$EXTRACT_DIR" -mindepth 1 -maxdepth 1 -type d)
104
+ if [ -d "$SINGLE_DIR/jre" ] && [ -d "$SINGLE_DIR/lib" ]; then
105
+ SOURCE_DIR="$SINGLE_DIR"
106
+ fi
107
+ fi
108
+ fi
109
+
110
+ if [ -z "$SOURCE_DIR" ]; then
111
+ echo "ERROR: Unexpected archive layout. Expected jre/ and lib/ directories."
112
+ echo "Archive contents:"
113
+ ls -la "$EXTRACT_DIR"
114
+ exit 1
83
115
  fi
84
116
 
85
- # Move extracted contents to backend directory
86
- mv /tmp/sonarlint-extract/*/* "$BACKEND_DIR/"
87
- rm -rf "/tmp/sonarlint-extract"
88
- rm "/tmp/${DIST_FILE}"
117
+ mv "$SOURCE_DIR"/* "$BACKEND_DIR/"
89
118
 
90
119
  echo ""
91
- echo "🔌 Step 2/2: Downloading Language Plugins..."
120
+ echo "Step 2/3: Validating backend installation..."
121
+
122
+ JAR_COUNT=$(find "$BACKEND_DIR/lib" -name "*.jar" 2>/dev/null | wc -l | tr -d ' ')
123
+ if [ "$JAR_COUNT" -lt 10 ]; then
124
+ echo "ERROR: Backend lib/ directory missing or incomplete (found $JAR_COUNT JARs, expected 50+)"
125
+ exit 1
126
+ fi
127
+ echo " lib/: $JAR_COUNT JARs"
128
+
129
+ JAVA_PATH=""
130
+ if [ "$IS_WINDOWS" = true ]; then
131
+ if [ -f "$BACKEND_DIR/jre/bin/java.exe" ]; then
132
+ JAVA_PATH="$BACKEND_DIR/jre/bin/java.exe"
133
+ elif [ -f "$BACKEND_DIR/jre/bin/java" ]; then
134
+ JAVA_PATH="$BACKEND_DIR/jre/bin/java"
135
+ fi
136
+ else
137
+ if [ -f "$BACKEND_DIR/jre/bin/java" ]; then
138
+ JAVA_PATH="$BACKEND_DIR/jre/bin/java"
139
+ fi
140
+ fi
141
+
142
+ if [ -z "$JAVA_PATH" ]; then
143
+ echo "ERROR: JRE not found at $BACKEND_DIR/jre/bin/java"
144
+ exit 1
145
+ fi
146
+ echo " jre/: $(basename "$JAVA_PATH") found"
147
+
148
+ echo ""
149
+ echo "Step 3/3: Downloading Language Plugins..."
92
150
  echo ""
93
151
 
94
152
  PLUGINS_DIR="$BACKEND_DIR/plugins"
95
153
  mkdir -p "$PLUGINS_DIR"
96
154
 
97
- # JavaScript/TypeScript Plugin (WebStorm 2025.2 compatible)
98
- echo "- JavaScript/TypeScript 11.3.0..."
99
- curl -L --progress-bar -o "$PLUGINS_DIR/sonar-javascript-plugin-11.3.0.34350.jar" \
100
- "https://repo1.maven.org/maven2/org/sonarsource/javascript/sonar-javascript-plugin/11.3.0.34350/sonar-javascript-plugin-11.3.0.34350.jar"
155
+ JS_PLUGIN="sonar-javascript-plugin-${JS_PLUGIN_VERSION}.jar"
156
+ echo "- JavaScript/TypeScript ${JS_PLUGIN_VERSION%.*}..."
157
+ curl -L --progress-bar -o "$PLUGINS_DIR/$JS_PLUGIN" \
158
+ "https://repo1.maven.org/maven2/org/sonarsource/javascript/sonar-javascript-plugin/${JS_PLUGIN_VERSION}/$JS_PLUGIN"
101
159
 
102
- # Python Plugin
103
- echo "- Python 5.9.0..."
104
- curl -L --progress-bar -o "$PLUGINS_DIR/sonar-python-plugin-5.9.0.23806.jar" \
105
- "https://repo1.maven.org/maven2/org/sonarsource/python/sonar-python-plugin/5.9.0.23806/sonar-python-plugin-5.9.0.23806.jar"
160
+ PYTHON_PLUGIN="sonar-python-plugin-${PYTHON_PLUGIN_VERSION}.jar"
161
+ echo "- Python ${PYTHON_PLUGIN_VERSION%.*}..."
162
+ curl -L --progress-bar -o "$PLUGINS_DIR/$PYTHON_PLUGIN" \
163
+ "https://repo1.maven.org/maven2/org/sonarsource/python/sonar-python-plugin/${PYTHON_PLUGIN_VERSION}/$PYTHON_PLUGIN"
106
164
 
107
- # Extract eslint-bridge from JavaScript plugin
108
165
  echo ""
109
- echo "📤 Extracting eslint-bridge..."
166
+ echo "Validating plugins..."
167
+
168
+ JS_SIZE=$(stat -f%z "$PLUGINS_DIR/$JS_PLUGIN" 2>/dev/null || stat -c%s "$PLUGINS_DIR/$JS_PLUGIN" 2>/dev/null || echo "0")
169
+ if [ "$JS_SIZE" -lt 1000000 ]; then
170
+ echo "ERROR: JavaScript plugin download failed or incomplete (size: $JS_SIZE bytes)"
171
+ exit 1
172
+ fi
173
+ echo " $JS_PLUGIN: $(( JS_SIZE / 1024 / 1024 ))MB"
174
+
175
+ PYTHON_SIZE=$(stat -f%z "$PLUGINS_DIR/$PYTHON_PLUGIN" 2>/dev/null || stat -c%s "$PLUGINS_DIR/$PYTHON_PLUGIN" 2>/dev/null || echo "0")
176
+ if [ "$PYTHON_SIZE" -lt 1000000 ]; then
177
+ echo "ERROR: Python plugin download failed or incomplete (size: $PYTHON_SIZE bytes)"
178
+ exit 1
179
+ fi
180
+ echo " $PYTHON_PLUGIN: $(( PYTHON_SIZE / 1024 / 1024 ))MB"
181
+
182
+ echo ""
183
+ echo "Extracting eslint-bridge..."
110
184
  cd "$PLUGINS_DIR"
111
- unzip -q sonar-javascript-plugin-11.3.0.34350.jar sonarjs-1.0.0.tgz 2>/dev/null || true
185
+ unzip -q "$JS_PLUGIN" sonarjs-1.0.0.tgz 2>/dev/null || true
112
186
  if [ -f sonarjs-1.0.0.tgz ]; then
113
187
  mkdir -p eslint-bridge
114
188
  tar -xzf sonarjs-1.0.0.tgz -C eslint-bridge
@@ -116,23 +190,25 @@ if [ -f sonarjs-1.0.0.tgz ]; then
116
190
  fi
117
191
  cd - > /dev/null
118
192
 
193
+ if [ ! -f "$PLUGINS_DIR/eslint-bridge/package/bin/server.cjs" ]; then
194
+ echo "WARNING: eslint-bridge extraction may have failed"
195
+ echo " Expected: $PLUGINS_DIR/eslint-bridge/package/bin/server.cjs"
196
+ fi
197
+
119
198
  echo ""
120
- echo "Setup Complete!"
199
+ echo "Setup Complete!"
121
200
  echo ""
122
- echo "📊 Installation Summary:"
201
+ echo "Installation Summary:"
123
202
  echo " Platform: $PLATFORM"
124
- echo " Backend: $BACKEND_DIR/lib/"
125
- echo " JRE: $BACKEND_DIR/jre/"
203
+ echo " Backend: $BACKEND_DIR/lib/ ($JAR_COUNT JARs)"
204
+ echo " JRE: $JAVA_PATH"
126
205
  echo " Plugins: $PLUGINS_DIR/"
127
206
  echo ""
128
- echo " Installed components:"
129
- ls -1 "$BACKEND_DIR" | sed 's/^/ - /'
130
- echo ""
131
207
  echo " Downloaded plugins:"
132
208
  ls -1 "$PLUGINS_DIR" | grep ".jar$" | sed 's/^/ - /'
133
209
  echo ""
134
210
  echo " Total size: $(du -sh "$BACKEND_DIR" | cut -f1)"
135
211
  echo ""
136
- echo "Next steps:"
212
+ echo "Next steps:"
137
213
  echo " npm run build"
138
214
  echo " npm start"