@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.
Files changed (86) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +6 -12
  3. package/dist/errors.d.ts +22 -0
  4. package/dist/errors.d.ts.map +1 -0
  5. package/dist/errors.js +44 -0
  6. package/dist/errors.js.map +1 -0
  7. package/dist/index.js +115 -1330
  8. package/dist/index.js.map +1 -1
  9. package/dist/resources/session.d.ts +18 -0
  10. package/dist/resources/session.d.ts.map +1 -0
  11. package/dist/resources/session.js +84 -0
  12. package/dist/resources/session.js.map +1 -0
  13. package/dist/sloop-bridge.d.ts +0 -3
  14. package/dist/sloop-bridge.d.ts.map +1 -1
  15. package/dist/sloop-bridge.js +0 -19
  16. package/dist/sloop-bridge.js.map +1 -1
  17. package/dist/state.d.ts +19 -0
  18. package/dist/state.d.ts.map +1 -0
  19. package/dist/state.js +25 -0
  20. package/dist/state.js.map +1 -0
  21. package/dist/tools/analyze-content.d.ts +7 -0
  22. package/dist/tools/analyze-content.d.ts.map +1 -0
  23. package/dist/tools/analyze-content.js +78 -0
  24. package/dist/tools/analyze-content.js.map +1 -0
  25. package/dist/tools/analyze-file.d.ts +7 -0
  26. package/dist/tools/analyze-file.d.ts.map +1 -0
  27. package/dist/tools/analyze-file.js +66 -0
  28. package/dist/tools/analyze-file.js.map +1 -0
  29. package/dist/tools/analyze-files.d.ts +7 -0
  30. package/dist/tools/analyze-files.d.ts.map +1 -0
  31. package/dist/tools/analyze-files.js +106 -0
  32. package/dist/tools/analyze-files.js.map +1 -0
  33. package/dist/tools/analyze-project.d.ts +7 -0
  34. package/dist/tools/analyze-project.d.ts.map +1 -0
  35. package/dist/tools/analyze-project.js +109 -0
  36. package/dist/tools/analyze-project.js.map +1 -0
  37. package/dist/tools/apply-all-quick-fixes.d.ts +7 -0
  38. package/dist/tools/apply-all-quick-fixes.d.ts.map +1 -0
  39. package/dist/tools/apply-all-quick-fixes.js +166 -0
  40. package/dist/tools/apply-all-quick-fixes.js.map +1 -0
  41. package/dist/tools/apply-quick-fix.d.ts +7 -0
  42. package/dist/tools/apply-quick-fix.d.ts.map +1 -0
  43. package/dist/tools/apply-quick-fix.js +113 -0
  44. package/dist/tools/apply-quick-fix.js.map +1 -0
  45. package/dist/tools/health-check.d.ts +7 -0
  46. package/dist/tools/health-check.d.ts.map +1 -0
  47. package/dist/tools/health-check.js +113 -0
  48. package/dist/tools/health-check.js.map +1 -0
  49. package/dist/tools/list-active-rules.d.ts +7 -0
  50. package/dist/tools/list-active-rules.d.ts.map +1 -0
  51. package/dist/tools/list-active-rules.js +48 -0
  52. package/dist/tools/list-active-rules.js.map +1 -0
  53. package/dist/types.d.ts +62 -0
  54. package/dist/types.d.ts.map +1 -0
  55. package/dist/types.js +5 -0
  56. package/dist/types.js.map +1 -0
  57. package/dist/utils/filesystem.d.ts +8 -0
  58. package/dist/utils/filesystem.d.ts.map +1 -0
  59. package/dist/utils/filesystem.js +74 -0
  60. package/dist/utils/filesystem.js.map +1 -0
  61. package/dist/utils/formatting.d.ts +13 -0
  62. package/dist/utils/formatting.d.ts.map +1 -0
  63. package/dist/utils/formatting.js +94 -0
  64. package/dist/utils/formatting.js.map +1 -0
  65. package/dist/utils/language.d.ts +12 -0
  66. package/dist/utils/language.d.ts.map +1 -0
  67. package/dist/utils/language.js +44 -0
  68. package/dist/utils/language.js.map +1 -0
  69. package/dist/utils/scope.d.ts +8 -0
  70. package/dist/utils/scope.d.ts.map +1 -0
  71. package/dist/utils/scope.js +30 -0
  72. package/dist/utils/scope.js.map +1 -0
  73. package/dist/utils/sloop.d.ts +10 -0
  74. package/dist/utils/sloop.d.ts.map +1 -0
  75. package/dist/utils/sloop.js +39 -0
  76. package/dist/utils/sloop.js.map +1 -0
  77. package/dist/utils/transforms.d.ts +23 -0
  78. package/dist/utils/transforms.d.ts.map +1 -0
  79. package/dist/utils/transforms.js +64 -0
  80. package/dist/utils/transforms.js.map +1 -0
  81. package/package.json +10 -7
  82. package/scripts/setup-sonarlint.sh +115 -39
  83. package/dist/sonarlint-bridge.d.ts +0 -33
  84. package/dist/sonarlint-bridge.d.ts.map +0 -1
  85. package/dist/sonarlint-bridge.js +0 -91
  86. 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
- #### 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
 
@@ -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"}