@nielspeter/sonarlint-mcp-server 0.1.3 → 0.2.2
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 +40 -0
- package/README.md +6 -12
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +44 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.js +115 -1330
- package/dist/index.js.map +1 -1
- package/dist/resources/session.d.ts +18 -0
- package/dist/resources/session.d.ts.map +1 -0
- package/dist/resources/session.js +84 -0
- package/dist/resources/session.js.map +1 -0
- package/dist/sloop-bridge.d.ts +0 -3
- package/dist/sloop-bridge.d.ts.map +1 -1
- package/dist/sloop-bridge.js +0 -19
- package/dist/sloop-bridge.js.map +1 -1
- package/dist/state.d.ts +19 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +25 -0
- package/dist/state.js.map +1 -0
- package/dist/tools/analyze-content.d.ts +7 -0
- package/dist/tools/analyze-content.d.ts.map +1 -0
- package/dist/tools/analyze-content.js +78 -0
- package/dist/tools/analyze-content.js.map +1 -0
- package/dist/tools/analyze-file.d.ts +7 -0
- package/dist/tools/analyze-file.d.ts.map +1 -0
- package/dist/tools/analyze-file.js +66 -0
- package/dist/tools/analyze-file.js.map +1 -0
- package/dist/tools/analyze-files.d.ts +7 -0
- package/dist/tools/analyze-files.d.ts.map +1 -0
- package/dist/tools/analyze-files.js +106 -0
- package/dist/tools/analyze-files.js.map +1 -0
- package/dist/tools/analyze-project.d.ts +7 -0
- package/dist/tools/analyze-project.d.ts.map +1 -0
- package/dist/tools/analyze-project.js +109 -0
- package/dist/tools/analyze-project.js.map +1 -0
- package/dist/tools/apply-all-quick-fixes.d.ts +7 -0
- package/dist/tools/apply-all-quick-fixes.d.ts.map +1 -0
- package/dist/tools/apply-all-quick-fixes.js +166 -0
- package/dist/tools/apply-all-quick-fixes.js.map +1 -0
- package/dist/tools/apply-quick-fix.d.ts +7 -0
- package/dist/tools/apply-quick-fix.d.ts.map +1 -0
- package/dist/tools/apply-quick-fix.js +113 -0
- package/dist/tools/apply-quick-fix.js.map +1 -0
- package/dist/tools/health-check.d.ts +7 -0
- package/dist/tools/health-check.d.ts.map +1 -0
- package/dist/tools/health-check.js +113 -0
- package/dist/tools/health-check.js.map +1 -0
- package/dist/tools/list-active-rules.d.ts +7 -0
- package/dist/tools/list-active-rules.d.ts.map +1 -0
- package/dist/tools/list-active-rules.js +48 -0
- package/dist/tools/list-active-rules.js.map +1 -0
- package/dist/types.d.ts +62 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/filesystem.d.ts +8 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +74 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/formatting.d.ts +13 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +94 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/language.d.ts +12 -0
- package/dist/utils/language.d.ts.map +1 -0
- package/dist/utils/language.js +44 -0
- package/dist/utils/language.js.map +1 -0
- package/dist/utils/scope.d.ts +8 -0
- package/dist/utils/scope.d.ts.map +1 -0
- package/dist/utils/scope.js +30 -0
- package/dist/utils/scope.js.map +1 -0
- package/dist/utils/sloop.d.ts +10 -0
- package/dist/utils/sloop.d.ts.map +1 -0
- package/dist/utils/sloop.js +39 -0
- package/dist/utils/sloop.js.map +1 -0
- package/dist/utils/transforms.d.ts +23 -0
- package/dist/utils/transforms.d.ts.map +1 -0
- package/dist/utils/transforms.js +64 -0
- package/dist/utils/transforms.js.map +1 -0
- package/package.json +10 -7
- package/scripts/setup-sonarlint.sh +115 -39
- package/dist/sonarlint-bridge.d.ts +0 -33
- package/dist/sonarlint-bridge.d.ts.map +0 -1
- package/dist/sonarlint-bridge.js +0 -91
- package/dist/sonarlint-bridge.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,46 @@
|
|
|
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.2](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.2.1...v0.2.2) (2026-03-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add robust extraction and validation to setup script ([efb737e](https://github.com/nielspeter/sonarlint-mcp-server/commit/efb737e4bc9bb5a74c24a5dafe7df46f05e395d9))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* add bin entry matching package name for npx compatibility ([e4f4220](https://github.com/nielspeter/sonarlint-mcp-server/commit/e4f422029af47cdef3546a94bfc8734b6db7db7a))
|
|
16
|
+
* correct tarball extraction and update Python plugin version ([c1cbe3a](https://github.com/nielspeter/sonarlint-mcp-server/commit/c1cbe3acaf05e04827c4da2ac28b51ff09357ce0))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Documentation
|
|
20
|
+
|
|
21
|
+
* Clarify Claude Code vs Claude Desktop configuration and remove unnecessary global install option ([394f943](https://github.com/nielspeter/sonarlint-mcp-server/commit/394f9439eca6388f11034782d17b93d296802ea2))
|
|
22
|
+
|
|
23
|
+
### [0.2.1](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.2.0...v0.2.1) (2025-11-12)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* skip E2E tests in publish workflow (require SLOOP backend) ([0b738f5](https://github.com/nielspeter/sonarlint-mcp-server/commit/0b738f5155a4fa5de4517f04fb3e371c917da3b2))
|
|
29
|
+
|
|
30
|
+
## [0.2.0](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.1.3...v0.2.0) (2025-11-12)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Code Refactoring
|
|
34
|
+
|
|
35
|
+
* Modularize codebase - split large index.ts into focused modules ([c85ff94](https://github.com/nielspeter/sonarlint-mcp-server/commit/c85ff94cd334943b31a5118aad5a7a44fc35f20d))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Documentation
|
|
39
|
+
|
|
40
|
+
* add CLAUDE.md development guide ([51dfcfc](https://github.com/nielspeter/sonarlint-mcp-server/commit/51dfcfcec1a710ab3279da452ff1854fa4df0a97))
|
|
41
|
+
* Fix outdated information in SETUP.md and TROUBLESHOOTING.md ([f34274a](https://github.com/nielspeter/sonarlint-mcp-server/commit/f34274aab37ce1dbefa4889e1c28f75ab7cc1de0))
|
|
42
|
+
* Remove redundant SLOOP-RPC-INTERNALS.md ([fd25915](https://github.com/nielspeter/sonarlint-mcp-server/commit/fd259150b3aa0e8c3f4e1b477c5de104330b20e4))
|
|
43
|
+
* Update TESTING.md to reflect current test structure ([d22e4a2](https://github.com/nielspeter/sonarlint-mcp-server/commit/d22e4a2fa3d34980692c5ee04bfb4250eef48f02))
|
|
44
|
+
|
|
5
45
|
### [0.1.3](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.1.2...v0.1.3) (2025-11-11)
|
|
6
46
|
|
|
7
47
|
|
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
|
-
####
|
|
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
|
|
43
|
+
### Configure with Claude Code
|
|
50
44
|
|
|
51
|
-
|
|
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
|
|
51
|
+
This automatically updates your Claude Code configuration. No restart needed!
|
|
58
52
|
|
|
59
|
-
|
|
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
|
|
72
|
+
Restart Claude Desktop to apply changes.
|
|
79
73
|
|
|
80
74
|
## Usage
|
|
81
75
|
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling utilities for the SonarLint MCP Server
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Custom error class for SLOOP-specific errors
|
|
6
|
+
*/
|
|
7
|
+
export declare class SloopError extends Error {
|
|
8
|
+
userMessage: string;
|
|
9
|
+
recoverable: boolean;
|
|
10
|
+
constructor(message: string, userMessage: string, recoverable?: boolean);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Handle tool errors and format them for MCP responses
|
|
14
|
+
*/
|
|
15
|
+
export declare function handleToolError(error: unknown): {
|
|
16
|
+
content: {
|
|
17
|
+
type: "text";
|
|
18
|
+
text: string;
|
|
19
|
+
}[];
|
|
20
|
+
isError: boolean;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IAG1B,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,OAAO;gBAF3B,OAAO,EAAE,MAAM,EACR,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,OAAe;CAKtC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO;;;;;;EA0B7C"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling utilities for the SonarLint MCP Server
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Custom error class for SLOOP-specific errors
|
|
6
|
+
*/
|
|
7
|
+
export class SloopError extends Error {
|
|
8
|
+
userMessage;
|
|
9
|
+
recoverable;
|
|
10
|
+
constructor(message, userMessage, recoverable = false) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.userMessage = userMessage;
|
|
13
|
+
this.recoverable = recoverable;
|
|
14
|
+
this.name = 'SloopError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Handle tool errors and format them for MCP responses
|
|
19
|
+
*/
|
|
20
|
+
export function handleToolError(error) {
|
|
21
|
+
console.error("[MCP] Error handling tool call:", error);
|
|
22
|
+
if (error instanceof SloopError) {
|
|
23
|
+
return {
|
|
24
|
+
content: [
|
|
25
|
+
{
|
|
26
|
+
type: "text",
|
|
27
|
+
text: `❌ **Error**: ${error.userMessage}`,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
isError: true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
34
|
+
return {
|
|
35
|
+
content: [
|
|
36
|
+
{
|
|
37
|
+
type: "text",
|
|
38
|
+
text: `❌ **Error**: ${errorMessage}`,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
isError: true,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IACA;IAHT,YACE,OAAe,EACR,WAAmB,EACnB,cAAuB,KAAK;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAiB;QAGnC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IAExD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,gBAAgB,KAAK,CAAC,WAAW,EAAE;iBAC1C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,gBAAgB,YAAY,EAAE;aACrC;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|