mcp-react-toolkit 1.0.1 → 1.2.0

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 (235) hide show
  1. package/README.md +146 -42
  2. package/package.json +12 -4
  3. package/tools/accessibility-checker/build/index.js +9 -5
  4. package/tools/accessibility-checker/build/index.js.map +1 -1
  5. package/tools/accessibility-checker/build/rules.d.ts.map +1 -1
  6. package/tools/accessibility-checker/build/rules.js +325 -94
  7. package/tools/accessibility-checker/build/rules.js.map +1 -1
  8. package/tools/code-modernizer/build/tools/01-convert-to-typescript.d.ts.map +1 -1
  9. package/tools/code-modernizer/build/tools/01-convert-to-typescript.js +65 -50
  10. package/tools/code-modernizer/build/tools/01-convert-to-typescript.js.map +1 -1
  11. package/tools/code-modernizer/build/types.d.ts +1 -0
  12. package/tools/code-modernizer/build/types.d.ts.map +1 -1
  13. package/tools/code-modernizer/build/utils/ast-parser.d.ts.map +1 -1
  14. package/tools/code-modernizer/build/utils/ast-parser.js +30 -14
  15. package/tools/code-modernizer/build/utils/ast-parser.js.map +1 -1
  16. package/tools/code-modernizer/build/utils/type-generator.d.ts +1 -1
  17. package/tools/code-modernizer/build/utils/type-generator.d.ts.map +1 -1
  18. package/tools/code-modernizer/build/utils/type-generator.js +72 -23
  19. package/tools/code-modernizer/build/utils/type-generator.js.map +1 -1
  20. package/tools/component-factory/build/index.js +59 -7
  21. package/tools/component-factory/build/index.js.map +1 -1
  22. package/tools/component-fixer/README.md +44 -0
  23. package/tools/component-fixer/build/index.d.ts +3 -0
  24. package/tools/component-fixer/build/index.d.ts.map +1 -0
  25. package/tools/component-fixer/build/index.js +647 -0
  26. package/tools/component-fixer/build/index.js.map +1 -0
  27. package/tools/component-fixer/build/index.test.d.ts +2 -0
  28. package/tools/component-fixer/build/index.test.d.ts.map +1 -0
  29. package/tools/component-fixer/build/index.test.js.map +1 -0
  30. package/tools/component-fixer/package.json +20 -0
  31. package/tools/component-reviewer/README.md +54 -0
  32. package/tools/component-reviewer/build/index.d.ts +39 -0
  33. package/tools/component-reviewer/build/index.d.ts.map +1 -0
  34. package/tools/component-reviewer/build/index.js +946 -0
  35. package/tools/component-reviewer/build/index.js.map +1 -0
  36. package/tools/component-reviewer/build/index.test.d.ts +2 -0
  37. package/tools/component-reviewer/build/index.test.d.ts.map +1 -0
  38. package/tools/component-reviewer/build/index.test.js.map +1 -0
  39. package/tools/component-reviewer/package.json +20 -0
  40. package/tools/dep-auditor/build/index.d.ts +1 -0
  41. package/tools/dep-auditor/build/index.d.ts.map +1 -1
  42. package/tools/dep-auditor/build/index.js +71 -16
  43. package/tools/dep-auditor/build/index.js.map +1 -1
  44. package/tools/generate-tests/build/analyzer.d.ts +14 -0
  45. package/tools/generate-tests/build/analyzer.d.ts.map +1 -1
  46. package/tools/generate-tests/build/analyzer.js +96 -42
  47. package/tools/generate-tests/build/analyzer.js.map +1 -1
  48. package/tools/generate-tests/build/generators.d.ts.map +1 -1
  49. package/tools/generate-tests/build/generators.js +304 -79
  50. package/tools/generate-tests/build/generators.js.map +1 -1
  51. package/tools/generate-tests/build/index.js +29 -10
  52. package/tools/generate-tests/build/index.js.map +1 -1
  53. package/tools/json-viewer/build/index.js +29 -6
  54. package/tools/json-viewer/build/index.js.map +1 -1
  55. package/tools/legacy-analyzer/README.md +66 -0
  56. package/tools/legacy-analyzer/build/index.d.ts +3 -0
  57. package/tools/legacy-analyzer/build/index.d.ts.map +1 -0
  58. package/tools/legacy-analyzer/build/index.js +209 -0
  59. package/tools/legacy-analyzer/build/index.js.map +1 -0
  60. package/tools/legacy-analyzer/build/index.test.d.ts +2 -0
  61. package/tools/legacy-analyzer/build/index.test.d.ts.map +1 -0
  62. package/tools/legacy-analyzer/build/index.test.js.map +1 -0
  63. package/tools/legacy-analyzer/build/tools/01-detect-project-tech.d.ts +3 -0
  64. package/tools/legacy-analyzer/build/tools/01-detect-project-tech.d.ts.map +1 -0
  65. package/tools/legacy-analyzer/build/tools/01-detect-project-tech.js +115 -0
  66. package/tools/legacy-analyzer/build/tools/01-detect-project-tech.js.map +1 -0
  67. package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.d.ts +3 -0
  68. package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.d.ts.map +1 -0
  69. package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.js +85 -0
  70. package/tools/legacy-analyzer/build/tools/02-analyze-folder-structure.js.map +1 -0
  71. package/tools/legacy-analyzer/build/tools/03-analyze-components.d.ts +3 -0
  72. package/tools/legacy-analyzer/build/tools/03-analyze-components.d.ts.map +1 -0
  73. package/tools/legacy-analyzer/build/tools/03-analyze-components.js +87 -0
  74. package/tools/legacy-analyzer/build/tools/03-analyze-components.js.map +1 -0
  75. package/tools/legacy-analyzer/build/tools/04-analyze-state-management.d.ts +3 -0
  76. package/tools/legacy-analyzer/build/tools/04-analyze-state-management.d.ts.map +1 -0
  77. package/tools/legacy-analyzer/build/tools/04-analyze-state-management.js +133 -0
  78. package/tools/legacy-analyzer/build/tools/04-analyze-state-management.js.map +1 -0
  79. package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.d.ts +3 -0
  80. package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.d.ts.map +1 -0
  81. package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.js +160 -0
  82. package/tools/legacy-analyzer/build/tools/05-analyze-api-layer.js.map +1 -0
  83. package/tools/legacy-analyzer/build/tools/06-analyze-routing.d.ts +3 -0
  84. package/tools/legacy-analyzer/build/tools/06-analyze-routing.d.ts.map +1 -0
  85. package/tools/legacy-analyzer/build/tools/06-analyze-routing.js +150 -0
  86. package/tools/legacy-analyzer/build/tools/06-analyze-routing.js.map +1 -0
  87. package/tools/legacy-analyzer/build/tools/07-analyze-styling.d.ts +3 -0
  88. package/tools/legacy-analyzer/build/tools/07-analyze-styling.d.ts.map +1 -0
  89. package/tools/legacy-analyzer/build/tools/07-analyze-styling.js +131 -0
  90. package/tools/legacy-analyzer/build/tools/07-analyze-styling.js.map +1 -0
  91. package/tools/legacy-analyzer/build/tools/08-analyze-assets.d.ts +3 -0
  92. package/tools/legacy-analyzer/build/tools/08-analyze-assets.d.ts.map +1 -0
  93. package/tools/legacy-analyzer/build/tools/08-analyze-assets.js +85 -0
  94. package/tools/legacy-analyzer/build/tools/08-analyze-assets.js.map +1 -0
  95. package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.d.ts +3 -0
  96. package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.d.ts.map +1 -0
  97. package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.js +329 -0
  98. package/tools/legacy-analyzer/build/tools/09-detect-anti-patterns.js.map +1 -0
  99. package/tools/legacy-analyzer/build/tools/10-detect-duplication.d.ts +3 -0
  100. package/tools/legacy-analyzer/build/tools/10-detect-duplication.d.ts.map +1 -0
  101. package/tools/legacy-analyzer/build/tools/10-detect-duplication.js +192 -0
  102. package/tools/legacy-analyzer/build/tools/10-detect-duplication.js.map +1 -0
  103. package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.d.ts +3 -0
  104. package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.d.ts.map +1 -0
  105. package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.js +232 -0
  106. package/tools/legacy-analyzer/build/tools/11-analyze-dependencies-usage.js.map +1 -0
  107. package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.d.ts +3 -0
  108. package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.d.ts.map +1 -0
  109. package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.js +247 -0
  110. package/tools/legacy-analyzer/build/tools/12-analyze-legacy-app.js.map +1 -0
  111. package/tools/legacy-analyzer/build/tools/13-detect-features.d.ts +3 -0
  112. package/tools/legacy-analyzer/build/tools/13-detect-features.d.ts.map +1 -0
  113. package/tools/legacy-analyzer/build/tools/13-detect-features.js +141 -0
  114. package/tools/legacy-analyzer/build/tools/13-detect-features.js.map +1 -0
  115. package/tools/legacy-analyzer/build/tools/14-classify-files.d.ts +3 -0
  116. package/tools/legacy-analyzer/build/tools/14-classify-files.d.ts.map +1 -0
  117. package/tools/legacy-analyzer/build/tools/14-classify-files.js +76 -0
  118. package/tools/legacy-analyzer/build/tools/14-classify-files.js.map +1 -0
  119. package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.d.ts +3 -0
  120. package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.d.ts.map +1 -0
  121. package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.js +70 -0
  122. package/tools/legacy-analyzer/build/tools/15-detect-shared-modules.js.map +1 -0
  123. package/tools/legacy-analyzer/build/tools/16-design-target-structure.d.ts +3 -0
  124. package/tools/legacy-analyzer/build/tools/16-design-target-structure.d.ts.map +1 -0
  125. package/tools/legacy-analyzer/build/tools/16-design-target-structure.js +26 -0
  126. package/tools/legacy-analyzer/build/tools/16-design-target-structure.js.map +1 -0
  127. package/tools/legacy-analyzer/build/tools/17-map-files-to-target.d.ts +3 -0
  128. package/tools/legacy-analyzer/build/tools/17-map-files-to-target.d.ts.map +1 -0
  129. package/tools/legacy-analyzer/build/tools/17-map-files-to-target.js +108 -0
  130. package/tools/legacy-analyzer/build/tools/17-map-files-to-target.js.map +1 -0
  131. package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.d.ts +3 -0
  132. package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.d.ts.map +1 -0
  133. package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.js +137 -0
  134. package/tools/legacy-analyzer/build/tools/18-detect-boundary-violations.js.map +1 -0
  135. package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.d.ts +3 -0
  136. package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.d.ts.map +1 -0
  137. package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.js +160 -0
  138. package/tools/legacy-analyzer/build/tools/19-suggest-module-splitting.js.map +1 -0
  139. package/tools/legacy-analyzer/build/tools/20-naming-standardizer.d.ts +3 -0
  140. package/tools/legacy-analyzer/build/tools/20-naming-standardizer.d.ts.map +1 -0
  141. package/tools/legacy-analyzer/build/tools/20-naming-standardizer.js +162 -0
  142. package/tools/legacy-analyzer/build/tools/20-naming-standardizer.js.map +1 -0
  143. package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.d.ts +3 -0
  144. package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.d.ts.map +1 -0
  145. package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.js +108 -0
  146. package/tools/legacy-analyzer/build/tools/21-generate-refactor-plan.js.map +1 -0
  147. package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.d.ts +3 -0
  148. package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.d.ts.map +1 -0
  149. package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.js +98 -0
  150. package/tools/legacy-analyzer/build/tools/22-refactor-folder-structure.js.map +1 -0
  151. package/tools/legacy-analyzer/build/types.d.ts +413 -0
  152. package/tools/legacy-analyzer/build/types.d.ts.map +1 -0
  153. package/tools/legacy-analyzer/build/types.js +12 -0
  154. package/tools/legacy-analyzer/build/types.js.map +1 -0
  155. package/tools/legacy-analyzer/build/utils/ast-parser.d.ts +34 -0
  156. package/tools/legacy-analyzer/build/utils/ast-parser.d.ts.map +1 -0
  157. package/tools/legacy-analyzer/build/utils/ast-parser.js +394 -0
  158. package/tools/legacy-analyzer/build/utils/ast-parser.js.map +1 -0
  159. package/tools/legacy-analyzer/build/utils/file-scanner.d.ts +51 -0
  160. package/tools/legacy-analyzer/build/utils/file-scanner.d.ts.map +1 -0
  161. package/tools/legacy-analyzer/build/utils/file-scanner.js +174 -0
  162. package/tools/legacy-analyzer/build/utils/file-scanner.js.map +1 -0
  163. package/tools/legacy-analyzer/build/utils/import-tracker.d.ts +38 -0
  164. package/tools/legacy-analyzer/build/utils/import-tracker.d.ts.map +1 -0
  165. package/tools/legacy-analyzer/build/utils/import-tracker.js +194 -0
  166. package/tools/legacy-analyzer/build/utils/import-tracker.js.map +1 -0
  167. package/tools/legacy-analyzer/build/utils/refactor-helpers.d.ts +88 -0
  168. package/tools/legacy-analyzer/build/utils/refactor-helpers.d.ts.map +1 -0
  169. package/tools/legacy-analyzer/build/utils/refactor-helpers.js +538 -0
  170. package/tools/legacy-analyzer/build/utils/refactor-helpers.js.map +1 -0
  171. package/tools/legacy-analyzer/package.json +20 -0
  172. package/tools/lighthouse-runner/README.md +45 -0
  173. package/tools/lighthouse-runner/build/index.d.ts +6 -0
  174. package/tools/lighthouse-runner/build/index.d.ts.map +1 -0
  175. package/tools/lighthouse-runner/build/index.js +295 -0
  176. package/tools/lighthouse-runner/build/index.js.map +1 -0
  177. package/tools/lighthouse-runner/build/index.test.d.ts +2 -0
  178. package/tools/lighthouse-runner/build/index.test.d.ts.map +1 -0
  179. package/tools/lighthouse-runner/build/index.test.js.map +1 -0
  180. package/tools/lighthouse-runner/package.json +20 -0
  181. package/tools/monorepo-manager/build/utils.d.ts.map +1 -1
  182. package/tools/monorepo-manager/build/utils.js +12 -9
  183. package/tools/monorepo-manager/build/utils.js.map +1 -1
  184. package/tools/performance-audit/README.md +37 -0
  185. package/tools/performance-audit/build/index.d.ts +13 -0
  186. package/tools/performance-audit/build/index.d.ts.map +1 -0
  187. package/tools/performance-audit/build/index.js +311 -0
  188. package/tools/performance-audit/build/index.js.map +1 -0
  189. package/tools/performance-audit/build/index.test.d.ts +2 -0
  190. package/tools/performance-audit/build/index.test.d.ts.map +1 -0
  191. package/tools/performance-audit/build/index.test.js.map +1 -0
  192. package/tools/performance-audit/package.json +20 -0
  193. package/tools/quality-pipeline/build/index.js +55 -15
  194. package/tools/quality-pipeline/build/index.js.map +1 -1
  195. package/tools/render-analyzer/README.md +43 -0
  196. package/tools/render-analyzer/build/index.d.ts +25 -0
  197. package/tools/render-analyzer/build/index.d.ts.map +1 -0
  198. package/tools/render-analyzer/build/index.js +342 -0
  199. package/tools/render-analyzer/build/index.js.map +1 -0
  200. package/tools/render-analyzer/build/index.test.d.ts +2 -0
  201. package/tools/render-analyzer/build/index.test.d.ts.map +1 -0
  202. package/tools/render-analyzer/build/index.test.js.map +1 -0
  203. package/tools/render-analyzer/package.json +20 -0
  204. package/tools/shared/build/fs.d.ts +8 -0
  205. package/tools/shared/build/fs.d.ts.map +1 -0
  206. package/tools/shared/build/fs.js +45 -0
  207. package/tools/shared/build/fs.js.map +1 -0
  208. package/tools/shared/build/index.d.ts +1 -0
  209. package/tools/shared/build/index.d.ts.map +1 -1
  210. package/tools/shared/build/index.js +1 -0
  211. package/tools/shared/build/index.js.map +1 -1
  212. package/tools/storybook-generator/README.md +39 -0
  213. package/tools/storybook-generator/build/index.d.ts +13 -0
  214. package/tools/storybook-generator/build/index.d.ts.map +1 -0
  215. package/tools/storybook-generator/build/index.js +478 -0
  216. package/tools/storybook-generator/build/index.js.map +1 -0
  217. package/tools/storybook-generator/build/index.test.d.ts +2 -0
  218. package/tools/storybook-generator/build/index.test.d.ts.map +1 -0
  219. package/tools/storybook-generator/build/index.test.js.map +1 -0
  220. package/tools/storybook-generator/package.json +20 -0
  221. package/tools/test-gap-analyzer/README.md +41 -0
  222. package/tools/test-gap-analyzer/build/index.d.ts +20 -0
  223. package/tools/test-gap-analyzer/build/index.d.ts.map +1 -0
  224. package/tools/test-gap-analyzer/build/index.js +371 -0
  225. package/tools/test-gap-analyzer/build/index.js.map +1 -0
  226. package/tools/test-gap-analyzer/build/index.test.d.ts +2 -0
  227. package/tools/test-gap-analyzer/build/index.test.d.ts.map +1 -0
  228. package/tools/test-gap-analyzer/build/index.test.js.map +1 -0
  229. package/tools/test-gap-analyzer/package.json +20 -0
  230. package/tools/typescript-enforcer/build/scanner.d.ts.map +1 -1
  231. package/tools/typescript-enforcer/build/scanner.js +13 -1
  232. package/tools/typescript-enforcer/build/scanner.js.map +1 -1
  233. package/tools/typescript-enforcer/build/types.d.ts +1 -0
  234. package/tools/typescript-enforcer/build/types.d.ts.map +1 -1
  235. package/mcp-publisher +0 -0
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { McpServerBase } from '@mcp-showcase/shared';
2
+ import { McpServerBase, safeReadJson } from '@mcp-showcase/shared';
3
3
  import * as fs from 'fs';
4
4
  import * as path from 'path';
5
5
  import * as os from 'os';
@@ -176,6 +176,28 @@ class JsonViewerServer extends McpServerBase {
176
176
  },
177
177
  required: ['data'],
178
178
  }, this.handleViewJson.bind(this));
179
+ this.addTool('view_json_file', 'Read a JSON file from disk and open an interactive HTML viewer — no need to paste raw JSON.', {
180
+ type: 'object',
181
+ properties: {
182
+ path: { type: 'string', description: 'Absolute or relative path to the JSON file' },
183
+ label: { type: 'string', description: 'Label for this viewer (defaults to the filename)' },
184
+ open: { type: 'boolean', description: 'Automatically open in browser (default: true)', default: true },
185
+ },
186
+ required: ['path'],
187
+ }, async (args) => {
188
+ const { path: filePath, label, open = true } = args;
189
+ try {
190
+ const resolved = path.resolve(filePath);
191
+ if (!fs.existsSync(resolved))
192
+ throw new Error(`File not found: ${resolved}`);
193
+ const raw = fs.readFileSync(resolved, 'utf-8');
194
+ const derivedLabel = label ?? path.basename(resolved);
195
+ return this.handleViewJson({ data: raw, label: derivedLabel, open });
196
+ }
197
+ catch (error) {
198
+ return this.error(error);
199
+ }
200
+ });
179
201
  this.addTool('list_responses', 'List all saved JSON responses with timestamps and metadata.', {
180
202
  type: 'object',
181
203
  properties: {
@@ -244,10 +266,9 @@ class JsonViewerServer extends McpServerBase {
244
266
  .sort().reverse().slice(0, limit);
245
267
  const responses = [];
246
268
  for (const file of files) {
247
- try {
248
- responses.push(JSON.parse(fs.readFileSync(path.join(RESPONSES_DIR, file), 'utf-8')));
249
- }
250
- catch { /* skip corrupted */ }
269
+ const entry = safeReadJson(path.join(RESPONSES_DIR, file));
270
+ if (entry)
271
+ responses.push(entry);
251
272
  }
252
273
  return this.success({ total: responses.length, responses });
253
274
  }
@@ -262,7 +283,9 @@ class JsonViewerServer extends McpServerBase {
262
283
  const metaPath = path.join(RESPONSES_DIR, `${id}.meta.json`);
263
284
  if (!fs.existsSync(metaPath))
264
285
  throw new Error(`Response not found: ${id}`);
265
- const meta = JSON.parse(fs.readFileSync(metaPath, 'utf-8'));
286
+ const meta = safeReadJson(metaPath);
287
+ if (!meta)
288
+ throw new Error(`Could not read metadata for: ${id}`);
266
289
  if (!fs.existsSync(meta.htmlPath))
267
290
  throw new Error(`HTML viewer not found for: ${id}`);
268
291
  const cmd = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open';
@@ -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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"}
@@ -0,0 +1,66 @@
1
+ # legacy-analyzer
2
+
3
+ MCP server with 22 analysis sub-tools that produce a health score (0–100) and prioritized migration hints for any React-based app — CRA, Vite, Next.js (app or pages router), Remix, Gatsby.
4
+
5
+ ## Tools (22)
6
+
7
+ | Tool | What it does |
8
+ |---|---|
9
+ | `analyze-legacy-app` | Run all 22 tools and produce a unified health report |
10
+ | `detect-project-tech` | Detect React version, language, framework, major deps |
11
+ | `analyze-folder-structure` | Flat vs feature-based, standard folders, nesting depth |
12
+ | `analyze-components` | Count, large (>300L), complex (multiple responsibilities) |
13
+ | `analyze-state-management` | Redux, Context, Zustand, local state patterns |
14
+ | `analyze-api-layer` | HTTP clients, centralized vs scattered, duplicate endpoints |
15
+ | `analyze-routing` | Router library, flat vs nested, lazy loading |
16
+ | `analyze-styling` | CSS/SCSS/Tailwind, inline styles, hardcoded colors |
17
+ | `analyze-assets` | Large images/videos, assets inside src, unused assets |
18
+ | `detect-anti-patterns` | Prop drilling, tight coupling, god components, a11y |
19
+ | `detect-duplication` | Duplicate components (Jaccard similarity), duplicate utils |
20
+ | `analyze-dependencies-usage` | Import anti-patterns, UI package usage |
21
+ | `detect-features` | Identify logical domains via file names + import clustering |
22
+ | `classify-files` | Feature-specific vs shared vs utility vs config |
23
+ | `detect-shared-modules` | Files imported by multiple features |
24
+ | `design-target-structure` | Suggest scalable feature-based folder structure |
25
+ | `map-files-to-target` | Map current files to proposed structure |
26
+ | `detect-boundary-violations` | Cross-feature imports, deep relative imports |
27
+ | `suggest-module-splitting` | Split large/generic files into focused modules |
28
+ | `naming-standardizer` | Suggest consistent file and folder naming |
29
+ | `generate-refactor-plan` | Combine all outputs into a structured refactor plan |
30
+ | `refactor-folder-structure` | Aggregated restructure plan |
31
+
32
+ ## Usage
33
+
34
+ ```sh
35
+ # Full health audit
36
+ echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze-legacy-app","arguments":{"path":"/path/to/your/app"}}}' \
37
+ | node build/index.js
38
+ ```
39
+
40
+ ## Output
41
+
42
+ ```json
43
+ {
44
+ "success": true,
45
+ "summary": { "healthScore": 72, "totalIssues": 18 },
46
+ "tech": { "framework": "Next.js", "reactVersion": "18", "language": "TypeScript" },
47
+ "migrationHints": [
48
+ { "priority": "high", "category": "API Layer", "description": "..." }
49
+ ]
50
+ }
51
+ ```
52
+
53
+ ## Framework support
54
+
55
+ Automatically detects the correct source directory:
56
+ - `src/` → CRA, Vite
57
+ - `app/` → Next.js App Router
58
+ - `pages/` → Next.js Pages Router
59
+ - root → bare React projects
60
+
61
+ ## Build & test
62
+
63
+ ```sh
64
+ npm run build
65
+ npm test
66
+ ```
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,209 @@
1
+ #!/usr/bin/env node
2
+ import { McpServerBase } from '@mcp-showcase/shared';
3
+ import { detectProjectTech } from './tools/01-detect-project-tech.js';
4
+ import { analyzeFolderStructure } from './tools/02-analyze-folder-structure.js';
5
+ import { analyzeComponents } from './tools/03-analyze-components.js';
6
+ import { analyzeStateManagement } from './tools/04-analyze-state-management.js';
7
+ import { analyzeApiLayer } from './tools/05-analyze-api-layer.js';
8
+ import { analyzeRouting } from './tools/06-analyze-routing.js';
9
+ import { analyzeStyling } from './tools/07-analyze-styling.js';
10
+ import { analyzeAssets } from './tools/08-analyze-assets.js';
11
+ import { detectAntiPatterns } from './tools/09-detect-anti-patterns.js';
12
+ import { detectDuplication } from './tools/10-detect-duplication.js';
13
+ import { analyzeDependenciesUsage } from './tools/11-analyze-dependencies-usage.js';
14
+ import { analyzeLegacyApp } from './tools/12-analyze-legacy-app.js';
15
+ import { detectFeatures } from './tools/13-detect-features.js';
16
+ import { classifyFiles } from './tools/14-classify-files.js';
17
+ import { detectSharedModules } from './tools/15-detect-shared-modules.js';
18
+ import { designTargetStructure } from './tools/16-design-target-structure.js';
19
+ import { mapFilesToTarget } from './tools/17-map-files-to-target.js';
20
+ import { detectBoundaryViolations } from './tools/18-detect-boundary-violations.js';
21
+ import { suggestModuleSplitting } from './tools/19-suggest-module-splitting.js';
22
+ import { namingStandardizer } from './tools/20-naming-standardizer.js';
23
+ import { generateRefactorPlan } from './tools/21-generate-refactor-plan.js';
24
+ import { refactorFolderStructure } from './tools/22-refactor-folder-structure.js';
25
+ // ============================================================================
26
+ // TOOL DEFINITIONS
27
+ // ============================================================================
28
+ const CONFIG_SCHEMA = {
29
+ type: 'object',
30
+ description: 'Optional configuration overrides',
31
+ properties: {
32
+ largeComponentLines: { type: 'number', description: 'Line count threshold for large components (default: 300)' },
33
+ largeUtilLines: { type: 'number', description: 'Line count threshold for large utility files (default: 200)' },
34
+ largeAssetImageKB: { type: 'number', description: 'Size threshold in KB for large images (default: 100)' },
35
+ largeAssetVideoMB: { type: 'number', description: 'Size threshold in MB for large videos (default: 1)' },
36
+ propDrillingDepth: { type: 'number', description: 'Depth threshold for prop drilling detection (default: 3)' },
37
+ duplicationThreshold: { type: 'number', description: 'Similarity threshold 0-1 for duplication detection (default: 0.8)' },
38
+ },
39
+ };
40
+ const TOOLS = [
41
+ {
42
+ name: 'detect-project-tech',
43
+ description: 'Detect React version, language (JS/TS), framework (CRA/Vite/Next.js/Remix/Gatsby/React Native), and major dependencies',
44
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
45
+ },
46
+ {
47
+ name: 'analyze-folder-structure',
48
+ description: 'Analyze folder structure: flat vs feature-based, presence of standard folders, nesting depth',
49
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
50
+ },
51
+ {
52
+ name: 'analyze-components',
53
+ description: 'Scan all components: count, large components (>300 lines), complex components with multiple responsibilities',
54
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
55
+ },
56
+ {
57
+ name: 'analyze-state-management',
58
+ description: 'Detect Redux, Context API, local state patterns, normalized state, derived state, Reselect usage',
59
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
60
+ },
61
+ {
62
+ name: 'analyze-api-layer',
63
+ description: 'Detect HTTP client usage (axios/fetch/superagent/ky), Next.js API routes, centralized vs scattered pattern, endpoint duplication',
64
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
65
+ },
66
+ {
67
+ name: 'analyze-routing',
68
+ description: 'Detect react-router usage, route structure (flat vs nested), lazy loading usage',
69
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
70
+ },
71
+ {
72
+ name: 'analyze-styling',
73
+ description: 'Detect CSS/SCSS/Tailwind/styled-components, inline styles, hardcoded colors, duplicate classes',
74
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
75
+ },
76
+ {
77
+ name: 'analyze-assets',
78
+ description: 'Detect large images/videos, assets inside src, unused assets',
79
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
80
+ },
81
+ {
82
+ name: 'detect-anti-patterns',
83
+ description: 'Detect prop drilling, tight coupling, duplicated logic, large utility files, god components',
84
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
85
+ },
86
+ {
87
+ name: 'detect-duplication',
88
+ description: 'Detect duplicate components, duplicate utility functions, similar file structures',
89
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
90
+ },
91
+ {
92
+ name: 'analyze-dependencies-usage',
93
+ description: 'Deep analysis of external libraries, internal imports, UI package usage, import anti-patterns',
94
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
95
+ },
96
+ {
97
+ name: 'analyze-legacy-app',
98
+ description: 'Complete analysis for any React-based app (CRA, Vite, Next.js, Remix, Gatsby). Runs all 22 sub-tools and produces a unified health score (0-100) with prioritized migration hints.',
99
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
100
+ },
101
+ {
102
+ name: 'detect-features',
103
+ description: 'Identify logical features/domains in the app using file names, routing, folder grouping, and import clustering',
104
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
105
+ },
106
+ {
107
+ name: 'classify-files',
108
+ description: 'Classify each file into feature-specific, shared, utility, or config type',
109
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
110
+ },
111
+ {
112
+ name: 'detect-shared-modules',
113
+ description: 'Identify files used across multiple features (shared modules)',
114
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
115
+ },
116
+ {
117
+ name: 'design-target-structure',
118
+ description: 'Generate scalable folder structure suggestion based on feature-based architecture',
119
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
120
+ },
121
+ {
122
+ name: 'map-files-to-target',
123
+ description: 'Map existing files to new target structure',
124
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
125
+ },
126
+ {
127
+ name: 'detect-boundary-violations',
128
+ description: 'Detect cross-feature imports, deep relative imports, and tight coupling issues',
129
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
130
+ },
131
+ {
132
+ name: 'suggest-module-splitting',
133
+ description: 'Suggest splitting large or generic files into smaller modules',
134
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
135
+ },
136
+ {
137
+ name: 'naming-standardizer',
138
+ description: 'Suggest better file and folder naming conventions',
139
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
140
+ },
141
+ {
142
+ name: 'generate-refactor-plan',
143
+ description: 'Combine all analysis outputs into a single structured refactor plan',
144
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
145
+ },
146
+ {
147
+ name: 'refactor-folder-structure',
148
+ description: 'Aggregator: calls all refactoring suggestion tools and produces final structured plan',
149
+ inputSchema: { type: 'object', properties: { path: { type: 'string', description: 'Path to app root directory (CRA, Vite, Next.js, Remix, Gatsby, plain React)' }, config: CONFIG_SCHEMA }, required: ['path'] },
150
+ },
151
+ ];
152
+ const HANDLERS = {
153
+ 'detect-project-tech': detectProjectTech,
154
+ 'analyze-folder-structure': analyzeFolderStructure,
155
+ 'analyze-components': analyzeComponents,
156
+ 'analyze-state-management': analyzeStateManagement,
157
+ 'analyze-api-layer': analyzeApiLayer,
158
+ 'analyze-routing': analyzeRouting,
159
+ 'analyze-styling': analyzeStyling,
160
+ 'analyze-assets': analyzeAssets,
161
+ 'detect-anti-patterns': detectAntiPatterns,
162
+ 'detect-duplication': detectDuplication,
163
+ 'analyze-dependencies-usage': analyzeDependenciesUsage,
164
+ 'analyze-legacy-app': analyzeLegacyApp,
165
+ 'detect-features': detectFeatures,
166
+ 'classify-files': classifyFiles,
167
+ 'detect-shared-modules': detectSharedModules,
168
+ 'design-target-structure': designTargetStructure,
169
+ 'map-files-to-target': mapFilesToTarget,
170
+ 'detect-boundary-violations': detectBoundaryViolations,
171
+ 'suggest-module-splitting': suggestModuleSplitting,
172
+ 'naming-standardizer': namingStandardizer,
173
+ 'generate-refactor-plan': generateRefactorPlan,
174
+ 'refactor-folder-structure': refactorFolderStructure,
175
+ };
176
+ // ============================================================================
177
+ // SERVER
178
+ // ============================================================================
179
+ class LegacyAnalyzerServer extends McpServerBase {
180
+ constructor() {
181
+ super({ name: 'legacy-analyzer', version: '1.0.0' });
182
+ }
183
+ registerTools() {
184
+ for (const tool of TOOLS) {
185
+ const toolName = tool.name;
186
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
187
+ this.addTool(toolName, tool.description, tool.inputSchema, (args) => this.dispatchTool(toolName, args));
188
+ }
189
+ }
190
+ async dispatchTool(name, args) {
191
+ const { path: appPath, config } = args;
192
+ const handler = HANDLERS[name];
193
+ if (!handler) {
194
+ return this.error(new Error(`Unknown tool: ${name}`));
195
+ }
196
+ try {
197
+ const result = await handler(appPath, config);
198
+ return this.success(result);
199
+ }
200
+ catch (error) {
201
+ return this.error(error);
202
+ }
203
+ }
204
+ }
205
+ // ============================================================================
206
+ // ENTRY POINT
207
+ // ============================================================================
208
+ new LegacyAnalyzerServer().run().catch(console.error);
209
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProjectTechOutput, AnalyzerConfig } from '../types.js';
2
+ export declare function detectProjectTech(appPath: string, config?: Partial<AnalyzerConfig>): Promise<ProjectTechOutput>;
3
+ //# sourceMappingURL=01-detect-project-tech.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01-detect-project-tech.d.ts","sourceRoot":"","sources":["../../src/tools/01-detect-project-tech.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAiCrF,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6ErH"}
@@ -0,0 +1,115 @@
1
+ // ============================================================================
2
+ // TOOL #1: detect-project-tech
3
+ // Detects React version, language, framework (CRA/Next/Vite/Remix/Gatsby/Expo),
4
+ // and major dependencies — works for any React-based app
5
+ // ============================================================================
6
+ import { readPackageJson, hasConfigFile } from '../utils/file-scanner.js';
7
+ const MAJOR_DEPS = [
8
+ // Core
9
+ 'react', 'react-dom', 'react-scripts',
10
+ // State management
11
+ 'redux', '@reduxjs/toolkit', 'react-redux', 'zustand', 'jotai', 'recoil', 'mobx',
12
+ // Routing
13
+ 'react-router-dom', 'react-router',
14
+ // Data fetching
15
+ 'axios', 'swr', 'react-query', '@tanstack/react-query',
16
+ // Styling
17
+ 'styled-components', '@emotion/react', '@emotion/styled', 'tailwindcss',
18
+ // Forms
19
+ 'formik', 'react-hook-form',
20
+ // Validation
21
+ 'zod', 'yup',
22
+ // Utilities
23
+ 'lodash', 'ramda',
24
+ // Date
25
+ 'moment', 'dayjs', 'date-fns',
26
+ // Async/reactive
27
+ 'rxjs',
28
+ // GraphQL
29
+ 'graphql', '@apollo/client', 'urql',
30
+ // Real-time
31
+ 'socket.io-client',
32
+ // i18n
33
+ 'react-intl', 'react-i18next',
34
+ // Meta-frameworks
35
+ 'next', 'gatsby',
36
+ ];
37
+ export async function detectProjectTech(appPath, config) {
38
+ const pkg = readPackageJson(appPath);
39
+ if (!pkg) {
40
+ return {
41
+ framework: 'unknown',
42
+ reactVersion: 'unknown',
43
+ language: 'JavaScript',
44
+ hasCRAConfig: false,
45
+ majorDependencies: [],
46
+ };
47
+ }
48
+ const allDeps = {
49
+ ...pkg.dependencies,
50
+ ...pkg.devDependencies,
51
+ };
52
+ // Detect React version
53
+ let reactVersion = 'unknown';
54
+ const reactDep = allDeps['react'] || '';
55
+ const versionMatch = reactDep.match(/(\d+)\./);
56
+ if (versionMatch) {
57
+ reactVersion = versionMatch[1];
58
+ }
59
+ // Detect language
60
+ const hasTypeScript = !!(allDeps['typescript'] || allDeps['@types/react']);
61
+ const hasTSConfig = hasConfigFile(appPath, ['tsconfig.json']);
62
+ const language = (hasTypeScript || hasTSConfig) ? 'TypeScript' : 'JavaScript';
63
+ // Detect CRA
64
+ const hasReactScripts = !!allDeps['react-scripts'];
65
+ const hasCRAConfig = hasConfigFile(appPath, [
66
+ 'config-overrides',
67
+ '.env',
68
+ '.env.local',
69
+ '.env.development',
70
+ '.env.production',
71
+ ]);
72
+ const isCRA = hasReactScripts || hasCRAConfig;
73
+ // Detect framework (order matters — check specific before generic)
74
+ let framework = 'unknown';
75
+ if (allDeps['next'])
76
+ framework = 'Next.js';
77
+ else if (allDeps['@remix-run/react'] || allDeps['@remix-run/node'])
78
+ framework = 'Remix';
79
+ else if (allDeps['gatsby'])
80
+ framework = 'Gatsby';
81
+ else if (allDeps['expo'] || allDeps['react-native'])
82
+ framework = 'React Native / Expo';
83
+ else if (isCRA)
84
+ framework = 'CRA';
85
+ else if (allDeps['vite'] || allDeps['@vitejs/plugin-react'] || hasConfigFile(appPath, ['vite.config.ts', 'vite.config.js']))
86
+ framework = 'Vite';
87
+ else if (allDeps['react'])
88
+ framework = 'React';
89
+ // Next.js app router vs pages router
90
+ let routerType;
91
+ if (framework === 'Next.js') {
92
+ const hasAppDir = hasConfigFile(appPath, ['app', 'src/app']);
93
+ const hasPagesDir = hasConfigFile(appPath, ['pages', 'src/pages']);
94
+ if (hasAppDir)
95
+ routerType = 'app-router';
96
+ else if (hasPagesDir)
97
+ routerType = 'pages-router';
98
+ }
99
+ void routerType; // used by analyze-routing
100
+ // Detect major dependencies
101
+ const majorDependencies = [];
102
+ for (const dep of MAJOR_DEPS) {
103
+ if (allDeps[dep]) {
104
+ majorDependencies.push(dep);
105
+ }
106
+ }
107
+ return {
108
+ framework,
109
+ reactVersion,
110
+ language,
111
+ hasCRAConfig: isCRA,
112
+ majorDependencies,
113
+ };
114
+ }
115
+ //# sourceMappingURL=01-detect-project-tech.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01-detect-project-tech.js","sourceRoot":"","sources":["../../src/tools/01-detect-project-tech.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FolderStructureOutput, AnalyzerConfig } from '../types.js';
2
+ export declare function analyzeFolderStructure(appPath: string, config?: Partial<AnalyzerConfig>): Promise<FolderStructureOutput>;
3
+ //# sourceMappingURL=02-analyze-folder-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"02-analyze-folder-structure.d.ts","sourceRoot":"","sources":["../../src/tools/02-analyze-folder-structure.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAiBzE,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiF9H"}