@stackguide/mcp-server 3.2.0 → 3.8.1
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/README.md +315 -9
- package/dist/config/persistence.d.ts +16 -0
- package/dist/config/persistence.d.ts.map +1 -1
- package/dist/config/persistence.js +53 -0
- package/dist/config/persistence.js.map +1 -1
- package/dist/handlers/analyze.d.ts +11 -0
- package/dist/handlers/analyze.d.ts.map +1 -0
- package/dist/handlers/analyze.js +274 -0
- package/dist/handlers/analyze.js.map +1 -0
- package/dist/handlers/config.d.ts +1 -8
- package/dist/handlers/config.d.ts.map +1 -1
- package/dist/handlers/config.js +7 -1
- package/dist/handlers/config.js.map +1 -1
- package/dist/handlers/context.d.ts +1 -5
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +7 -1
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/cursor.d.ts +1 -7
- package/dist/handlers/cursor.d.ts.map +1 -1
- package/dist/handlers/cursor.js +7 -1
- package/dist/handlers/cursor.js.map +1 -1
- package/dist/handlers/custom-rule.d.ts +1 -11
- package/dist/handlers/custom-rule.d.ts.map +1 -1
- package/dist/handlers/custom-rule.js +7 -1
- package/dist/handlers/custom-rule.js.map +1 -1
- package/dist/handlers/docs.d.ts +1 -8
- package/dist/handlers/docs.d.ts.map +1 -1
- package/dist/handlers/docs.js +7 -1
- package/dist/handlers/docs.js.map +1 -1
- package/dist/handlers/generate.d.ts +1 -13
- package/dist/handlers/generate.d.ts.map +1 -1
- package/dist/handlers/generate.js +6 -3
- package/dist/handlers/generate.js.map +1 -1
- package/dist/handlers/health.d.ts +1 -8
- package/dist/handlers/health.d.ts.map +1 -1
- package/dist/handlers/health.js +11 -3
- package/dist/handlers/health.js.map +1 -1
- package/dist/handlers/help.d.ts +1 -5
- package/dist/handlers/help.d.ts.map +1 -1
- package/dist/handlers/help.js +7 -1
- package/dist/handlers/help.js.map +1 -1
- package/dist/handlers/index.d.ts +1 -0
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +1 -0
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/knowledge.d.ts +1 -8
- package/dist/handlers/knowledge.d.ts.map +1 -1
- package/dist/handlers/knowledge.js +7 -1
- package/dist/handlers/knowledge.js.map +1 -1
- package/dist/handlers/prompts.d.ts +31 -0
- package/dist/handlers/prompts.d.ts.map +1 -0
- package/dist/handlers/prompts.js +225 -0
- package/dist/handlers/prompts.js.map +1 -0
- package/dist/handlers/resources.d.ts +27 -0
- package/dist/handlers/resources.d.ts.map +1 -0
- package/dist/handlers/resources.js +210 -0
- package/dist/handlers/resources.js.map +1 -0
- package/dist/handlers/review.d.ts.map +1 -1
- package/dist/handlers/review.js +18 -1
- package/dist/handlers/review.js.map +1 -1
- package/dist/handlers/rules.d.ts +1 -9
- package/dist/handlers/rules.d.ts.map +1 -1
- package/dist/handlers/rules.js +7 -1
- package/dist/handlers/rules.js.map +1 -1
- package/dist/handlers/setup.d.ts +1 -0
- package/dist/handlers/setup.d.ts.map +1 -1
- package/dist/handlers/setup.js +42 -0
- package/dist/handlers/setup.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -417
- package/dist/index.js.map +1 -1
- package/dist/router/index.d.ts +69 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +151 -0
- package/dist/router/index.js.map +1 -0
- package/dist/services/ast/analyzer.d.ts +55 -0
- package/dist/services/ast/analyzer.d.ts.map +1 -0
- package/dist/services/ast/analyzer.js +268 -0
- package/dist/services/ast/analyzer.js.map +1 -0
- package/dist/services/ast/index.d.ts +10 -0
- package/dist/services/ast/index.d.ts.map +1 -0
- package/dist/services/ast/index.js +12 -0
- package/dist/services/ast/index.js.map +1 -0
- package/dist/services/ast/rules.d.ts +13 -0
- package/dist/services/ast/rules.d.ts.map +1 -0
- package/dist/services/ast/rules.js +358 -0
- package/dist/services/ast/rules.js.map +1 -0
- package/dist/services/ast/treeSitterParser.d.ts +54 -0
- package/dist/services/ast/treeSitterParser.d.ts.map +1 -0
- package/dist/services/ast/treeSitterParser.js +394 -0
- package/dist/services/ast/treeSitterParser.js.map +1 -0
- package/dist/services/ast/types.d.ts +167 -0
- package/dist/services/ast/types.d.ts.map +1 -0
- package/dist/services/ast/types.js +35 -0
- package/dist/services/ast/types.js.map +1 -0
- package/dist/services/codeAnalyzer.d.ts.map +1 -1
- package/dist/services/codeAnalyzer.js +43 -3
- package/dist/services/codeAnalyzer.js.map +1 -1
- package/dist/services/httpClient.d.ts +45 -0
- package/dist/services/httpClient.d.ts.map +1 -0
- package/dist/services/httpClient.js +309 -0
- package/dist/services/httpClient.js.map +1 -0
- package/dist/services/intelligence/configGenerator.d.ts +28 -0
- package/dist/services/intelligence/configGenerator.d.ts.map +1 -0
- package/dist/services/intelligence/configGenerator.js +404 -0
- package/dist/services/intelligence/configGenerator.js.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts +24 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.js +404 -0
- package/dist/services/intelligence/dependencyAdvisor.js.map +1 -0
- package/dist/services/intelligence/index.d.ts +12 -0
- package/dist/services/intelligence/index.d.ts.map +1 -0
- package/dist/services/intelligence/index.js +16 -0
- package/dist/services/intelligence/index.js.map +1 -0
- package/dist/services/intelligence/projectFs.d.ts +11 -0
- package/dist/services/intelligence/projectFs.d.ts.map +1 -0
- package/dist/services/intelligence/projectFs.js +30 -0
- package/dist/services/intelligence/projectFs.js.map +1 -0
- package/dist/services/intelligence/projectIntelligence.d.ts +26 -0
- package/dist/services/intelligence/projectIntelligence.d.ts.map +1 -0
- package/dist/services/intelligence/projectIntelligence.js +344 -0
- package/dist/services/intelligence/projectIntelligence.js.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts +27 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.js +286 -0
- package/dist/services/intelligence/structureAnalyzer.js.map +1 -0
- package/dist/services/intelligence/templates.d.ts +22 -0
- package/dist/services/intelligence/templates.d.ts.map +1 -0
- package/dist/services/intelligence/templates.js +521 -0
- package/dist/services/intelligence/templates.js.map +1 -0
- package/dist/services/intelligence/types.d.ts +222 -0
- package/dist/services/intelligence/types.d.ts.map +1 -0
- package/dist/services/intelligence/types.js +7 -0
- package/dist/services/intelligence/types.js.map +1 -0
- package/dist/services/projectFs.d.ts +85 -0
- package/dist/services/projectFs.d.ts.map +1 -0
- package/dist/services/projectFs.js +287 -0
- package/dist/services/projectFs.js.map +1 -0
- package/dist/services/rulesEngine.d.ts +255 -0
- package/dist/services/rulesEngine.d.ts.map +1 -0
- package/dist/services/rulesEngine.js +483 -0
- package/dist/services/rulesEngine.js.map +1 -0
- package/dist/services/webDocumentation.d.ts +9 -0
- package/dist/services/webDocumentation.d.ts.map +1 -1
- package/dist/services/webDocumentation.js +144 -1
- package/dist/services/webDocumentation.js.map +1 -1
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/sqlite.d.ts +92 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +471 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/types.d.ts +147 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +13 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/tools/definitions.d.ts +87 -0
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +34 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/utils/logger.d.ts +11 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +30 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/validation.d.ts +3 -3
- package/dist/validation/index.d.ts +8 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +19 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schemas.d.ts +341 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +244 -0
- package/dist/validation/schemas.js.map +1 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Dynamic context loading for AI coding assistants. Works with **Cursor** and **GitHub Copilot**.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://github.com/stackguide/mcp-server)
|
|
6
|
+
[](./tests)
|
|
7
|
+
[](./LICENSE)
|
|
8
|
+
|
|
9
|
+
## 🚀 Quick Start
|
|
6
10
|
|
|
7
11
|
**Cursor** (`.cursor/mcp.json`):
|
|
8
12
|
```json
|
|
@@ -18,17 +22,19 @@ Dynamic context loading for AI coding assistants. Works with **Cursor** and **Gi
|
|
|
18
22
|
|
|
19
23
|
**VS Code** (`.vscode/mcp.json`): Same config as above.
|
|
20
24
|
|
|
21
|
-
## Usage
|
|
25
|
+
## 💬 Usage
|
|
22
26
|
|
|
23
27
|
Just talk naturally:
|
|
24
28
|
|
|
25
29
|
- *"Set up my project"* → Auto-configures with interactive wizard
|
|
26
|
-
- *"Review my code"* → Analyzes with Quick
|
|
30
|
+
- *"Review my code"* → Analyzes with AST-powered Quick Fixes
|
|
27
31
|
- *"Generate a component"* → Creates boilerplate code
|
|
28
32
|
- *"Check project health"* → Returns health score (A-F)
|
|
33
|
+
- *"Analyze my project"* → Auto-configuration intelligence
|
|
29
34
|
- *"Browse React rules"* → Shows community rules
|
|
35
|
+
- *"Configure rules"* → **NEW!** Customize analysis rules
|
|
30
36
|
|
|
31
|
-
## Tools (
|
|
37
|
+
## 🛠️ Tools (13 total)
|
|
32
38
|
|
|
33
39
|
### Core Tools
|
|
34
40
|
| Tool | Description | Example |
|
|
@@ -39,11 +45,12 @@ Just talk naturally:
|
|
|
39
45
|
| `knowledge` | Access patterns & solutions | `knowledge action:"get" query:"architecture"` |
|
|
40
46
|
| `review` | Review code with Quick Fixes | `review file:"src/index.ts" focus:"security"` |
|
|
41
47
|
|
|
42
|
-
### Advanced Features
|
|
48
|
+
### Advanced Features
|
|
43
49
|
| Tool | Description | Example |
|
|
44
50
|
|------|-------------|---------|
|
|
45
51
|
| `generate` | Generate boilerplate code | `generate type:"component" name:"UserCard"` |
|
|
46
52
|
| `health` | Project health score (A-F) | `health detailed:true` |
|
|
53
|
+
| `analyze` | **NEW!** Project intelligence | `analyze action:"full" path:"./my-project"` |
|
|
47
54
|
|
|
48
55
|
### Integration Tools
|
|
49
56
|
| Tool | Description | Example |
|
|
@@ -106,11 +113,205 @@ Setup now provides tailored recommendations:
|
|
|
106
113
|
}
|
|
107
114
|
```
|
|
108
115
|
|
|
109
|
-
##
|
|
116
|
+
## 🆕 New in v3.7.0: Configurable Rules Engine
|
|
117
|
+
|
|
118
|
+
### Custom Rules CRUD
|
|
119
|
+
Create, update, delete, and manage custom rules with full persistence:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Create custom rule
|
|
123
|
+
rules action:"create" rule:{"id":"MY-001", "name":"Custom Rule", "description":"...", "severity":"warning", "pattern":"console\\.log"}
|
|
124
|
+
|
|
125
|
+
# Update rule
|
|
126
|
+
rules action:"update" ruleId:"MY-001" updates:{"severity":"error"}
|
|
127
|
+
|
|
128
|
+
# Delete rule
|
|
129
|
+
rules action:"delete" ruleId:"MY-001"
|
|
130
|
+
|
|
131
|
+
# List all rules (builtin + custom)
|
|
132
|
+
rules action:"list" category:"security"
|
|
133
|
+
|
|
134
|
+
# Import/Export rules
|
|
135
|
+
rules action:"export" format:"json"
|
|
136
|
+
rules action:"import" rules:[...]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Rule Overrides
|
|
140
|
+
Override builtin rule behavior without modifying them:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Disable a rule
|
|
144
|
+
rules action:"override" ruleId:"TS-SEC001" override:{"enabled":false}
|
|
145
|
+
|
|
146
|
+
# Change severity
|
|
147
|
+
rules action:"override" ruleId:"TS-PERF002" override:{"severity":"error"}
|
|
148
|
+
|
|
149
|
+
# Custom message
|
|
150
|
+
rules action:"override" ruleId:"TS-BP001" override:{"customMessage":"Use arrow functions in this project"}
|
|
151
|
+
|
|
152
|
+
# File-specific overrides
|
|
153
|
+
rules action:"override" ruleId:"TS-SEC002" override:{"filePatterns":["!**/tests/**"]}
|
|
154
|
+
|
|
155
|
+
# Remove override
|
|
156
|
+
rules action:"clearOverride" ruleId:"TS-SEC001"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Rule Settings
|
|
160
|
+
Configure global rule behavior:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Get current settings
|
|
164
|
+
rules action:"settings"
|
|
165
|
+
|
|
166
|
+
# Update settings
|
|
167
|
+
rules action:"updateSettings" settings:{"enableBuiltin":true, "enableCustom":true, "defaultSeverity":"warning"}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 🆕 New in v3.6.0: Input Validation (Zod)
|
|
173
|
+
|
|
174
|
+
All tool inputs are now validated with Zod schemas:
|
|
175
|
+
|
|
176
|
+
- **Type-safe inputs**: All parameters are validated against schemas
|
|
177
|
+
- **Helpful error messages**: Clear validation errors with path information
|
|
178
|
+
- **Path sanitization**: Prevents path traversal attacks
|
|
179
|
+
- **Automatic sanitization**: Sensitive data is masked in logs
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Example validation error
|
|
183
|
+
{
|
|
184
|
+
"success": false,
|
|
185
|
+
"error": "Validation failed",
|
|
186
|
+
"issues": [
|
|
187
|
+
{ "path": ["file"], "message": "Required" },
|
|
188
|
+
{ "path": ["focus"], "message": "Invalid enum value. Expected 'security' | 'performance' | 'best-practices'" }
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 🆕 New in v3.5.0: AST-Powered Analysis (Tree-sitter)
|
|
196
|
+
|
|
197
|
+
### Real Semantic Code Analysis
|
|
198
|
+
Code review now uses tree-sitter for accurate AST-based analysis:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
review file:"src/index.ts" focus:"security"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Supported Languages**: TypeScript, JavaScript, Python, Go, Rust
|
|
205
|
+
|
|
206
|
+
**Analysis Categories**:
|
|
207
|
+
- 🔒 **Security**: eval detection, SQL injection, XSS, hardcoded secrets
|
|
208
|
+
- ⚡ **Performance**: nested loops, inefficient operations
|
|
209
|
+
- ✨ **Best Practices**: any usage, console.log in production, unused vars
|
|
210
|
+
- 🏗️ **Maintainability**: function complexity, file length
|
|
211
|
+
|
|
212
|
+
**Code Metrics**:
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"metrics": {
|
|
216
|
+
"linesOfCode": 150,
|
|
217
|
+
"functions": 12,
|
|
218
|
+
"classes": 3,
|
|
219
|
+
"imports": 8,
|
|
220
|
+
"exports": 5,
|
|
221
|
+
"complexity": 24,
|
|
222
|
+
"maxNesting": 4
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 🆕 New in v3.4.0: Architecture Improvements
|
|
230
|
+
|
|
231
|
+
### SQLite Persistence
|
|
232
|
+
All configuration now persists across sessions:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
config action:"save" name:"my-project"
|
|
236
|
+
config action:"load" name:"my-project"
|
|
237
|
+
config action:"list"
|
|
238
|
+
config action:"delete" name:"my-project"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Real Filesystem Access
|
|
242
|
+
Analyze actual project files:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
analyze action:"full" path:"./src"
|
|
246
|
+
health detailed:true
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### HTTP Client with Caching
|
|
250
|
+
Rate-limited API calls with automatic caching:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
docs action:"fetch" url:"https://react.dev/reference/react"
|
|
254
|
+
cursor action:"browse" query:"nextjs"
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## New in v3.3.0: Auto-Configuration Intelligence 🧠
|
|
260
|
+
|
|
261
|
+
### Project Intelligence Analysis
|
|
262
|
+
Get comprehensive analysis with actionable recommendations:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
analyze action:"full" path:"./my-project"
|
|
266
|
+
analyze action:"structure" # Analyze only project structure
|
|
267
|
+
analyze action:"config" # Analyze only configurations
|
|
268
|
+
analyze action:"dependencies" # Analyze only dependencies
|
|
269
|
+
analyze action:"generate" configType:"eslint" # Generate optimal config
|
|
270
|
+
analyze action:"apply" # Apply all auto-fixes
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Returns:
|
|
274
|
+
- **Overall Score (0-100)** with grade (A-F)
|
|
275
|
+
- **Structure Analysis**: Missing dirs/files, directory organization
|
|
276
|
+
- **Configuration Analysis**: Missing ESLint, Prettier, TSConfig recommendations
|
|
277
|
+
- **Dependency Analysis**: Missing packages, security advisories
|
|
278
|
+
- **Priority Actions**: Sorted by impact with estimated effort
|
|
279
|
+
- **Suggested Workflow**: Step-by-step improvement plan
|
|
280
|
+
|
|
281
|
+
```json
|
|
282
|
+
{
|
|
283
|
+
"overallScore": 72,
|
|
284
|
+
"grade": "C",
|
|
285
|
+
"priorityActions": [
|
|
286
|
+
{ "action": "Add ESLint configuration", "priority": "high", "impact": "Improves code quality" },
|
|
287
|
+
{ "action": "Add tests directory", "priority": "medium", "impact": "Enables testing" }
|
|
288
|
+
],
|
|
289
|
+
"suggestedWorkflow": [
|
|
290
|
+
{ "step": 1, "action": "Run `analyze action:generate configType:eslint`" },
|
|
291
|
+
{ "step": 2, "action": "Run `analyze action:generate configType:prettier`" }
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Enhanced Setup with Intelligence
|
|
297
|
+
Setup now includes quick intelligence analysis:
|
|
298
|
+
|
|
299
|
+
```json
|
|
300
|
+
{
|
|
301
|
+
"intelligence": {
|
|
302
|
+
"structureScore": 85,
|
|
303
|
+
"configScore": 60,
|
|
304
|
+
"dependencyScore": 90,
|
|
305
|
+
"quickWins": ["Add .prettierrc for consistent formatting"]
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## 📋 Supported Stacks
|
|
110
311
|
|
|
111
312
|
`python-django` · `python-fastapi` · `python-flask` · `react-node` · `react-typescript` · `vue-node` · `nextjs` · `express` · `nestjs` · `laravel` · `rails` · `golang` · `rust`
|
|
112
313
|
|
|
113
|
-
## Examples
|
|
314
|
+
## 📖 Examples
|
|
114
315
|
|
|
115
316
|
```bash
|
|
116
317
|
# Auto-setup with wizard
|
|
@@ -119,17 +320,122 @@ setup
|
|
|
119
320
|
# Generate React component
|
|
120
321
|
generate type:"component" name:"Dashboard"
|
|
121
322
|
|
|
122
|
-
# Review with Quick Fixes
|
|
323
|
+
# Review with AST-powered Quick Fixes
|
|
123
324
|
review file:"src/App.tsx" focus:"performance"
|
|
124
325
|
|
|
125
326
|
# Check project health
|
|
126
327
|
health
|
|
127
328
|
|
|
329
|
+
# Analyze project intelligence
|
|
330
|
+
analyze action:"full"
|
|
331
|
+
analyze action:"generate" configType:"prettier"
|
|
332
|
+
|
|
128
333
|
# Browse and import community rules
|
|
129
334
|
cursor action:"popular"
|
|
130
335
|
cursor action:"import" slug:"typescript-best-practices"
|
|
336
|
+
|
|
337
|
+
# Configure rules
|
|
338
|
+
rules action:"list" category:"security"
|
|
339
|
+
rules action:"create" rule:{"id":"MY-001", "name":"No TODO", "pattern":"TODO", "severity":"info"}
|
|
340
|
+
rules action:"override" ruleId:"TS-SEC001" override:{"severity":"error"}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
## 🏗️ Architecture
|
|
344
|
+
|
|
131
345
|
```
|
|
346
|
+
┌─────────────────────────────────────────────────────────┐
|
|
347
|
+
│ MCP Server │
|
|
348
|
+
├─────────────────────────────────────────────────────────┤
|
|
349
|
+
│ Router (handler registration + validation) │
|
|
350
|
+
├─────────────────────────────────────────────────────────┤
|
|
351
|
+
│ Handlers (setup, review, generate, health, etc.) │
|
|
352
|
+
├─────────────────────────────────────────────────────────┤
|
|
353
|
+
│ Services Layer │
|
|
354
|
+
│ ├── AST Analysis (tree-sitter multi-language) │
|
|
355
|
+
│ ├── Rules Engine (builtin + custom + overrides) │
|
|
356
|
+
│ ├── Code Analyzer (semantic analysis) │
|
|
357
|
+
│ ├── Rule Manager (data loading) │
|
|
358
|
+
│ └── Auto Detect (project type detection) │
|
|
359
|
+
├─────────────────────────────────────────────────────────┤
|
|
360
|
+
│ Infrastructure │
|
|
361
|
+
│ ├── Validation (Zod schemas) │
|
|
362
|
+
│ ├── Persistence (SQLite storage) │
|
|
363
|
+
│ ├── ProjectFs (filesystem abstraction) │
|
|
364
|
+
│ └── HttpClient (rate-limited + cached) │
|
|
365
|
+
└─────────────────────────────────────────────────────────┘
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
## 🧪 Testing
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
# Run all tests
|
|
372
|
+
npm test
|
|
373
|
+
|
|
374
|
+
# With coverage
|
|
375
|
+
npm run test:coverage
|
|
376
|
+
|
|
377
|
+
# Watch mode
|
|
378
|
+
npm run test:watch
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
**Test Statistics**: 659 tests across 35 test files
|
|
382
|
+
|
|
383
|
+
## 📚 API Reference
|
|
384
|
+
|
|
385
|
+
### Tool Parameters
|
|
386
|
+
|
|
387
|
+
#### `setup`
|
|
388
|
+
| Parameter | Type | Description |
|
|
389
|
+
|-----------|------|-------------|
|
|
390
|
+
| `type` | string | Project type (optional, auto-detected) |
|
|
391
|
+
| `path` | string | Project path (default: current dir) |
|
|
392
|
+
|
|
393
|
+
#### `review`
|
|
394
|
+
| Parameter | Type | Description |
|
|
395
|
+
|-----------|------|-------------|
|
|
396
|
+
| `file` | string | **Required**. File path to review |
|
|
397
|
+
| `content` | string | File content (optional, read from file) |
|
|
398
|
+
| `focus` | string | `security` \| `performance` \| `best-practices` |
|
|
399
|
+
| `detailed` | boolean | Include code metrics |
|
|
400
|
+
|
|
401
|
+
#### `generate`
|
|
402
|
+
| Parameter | Type | Description |
|
|
403
|
+
|-----------|------|-------------|
|
|
404
|
+
| `type` | string | **Required**. `component` \| `hook` \| `service` \| `test` \| `api` \| `model` \| `util` |
|
|
405
|
+
| `name` | string | **Required**. Name for generated code |
|
|
406
|
+
| `options` | object | Framework-specific options |
|
|
407
|
+
|
|
408
|
+
#### `rules`
|
|
409
|
+
| Parameter | Type | Description |
|
|
410
|
+
|-----------|------|-------------|
|
|
411
|
+
| `action` | string | **Required**. `list` \| `search` \| `get` \| `create` \| `update` \| `delete` \| `override` \| `clearOverride` \| `settings` \| `import` \| `export` |
|
|
412
|
+
| `ruleId` | string | Rule ID (for get/update/delete/override) |
|
|
413
|
+
| `rule` | object | Rule definition (for create) |
|
|
414
|
+
| `override` | object | Override settings |
|
|
415
|
+
| `category` | string | Filter by category |
|
|
416
|
+
|
|
417
|
+
#### `health`
|
|
418
|
+
| Parameter | Type | Description |
|
|
419
|
+
|-----------|------|-------------|
|
|
420
|
+
| `detailed` | boolean | Include category breakdown |
|
|
421
|
+
| `path` | string | Project path |
|
|
422
|
+
|
|
423
|
+
#### `analyze`
|
|
424
|
+
| Parameter | Type | Description |
|
|
425
|
+
|-----------|------|-------------|
|
|
426
|
+
| `action` | string | **Required**. `full` \| `structure` \| `config` \| `dependencies` \| `generate` \| `apply` |
|
|
427
|
+
| `path` | string | Project path |
|
|
428
|
+
| `configType` | string | For generate: `eslint` \| `prettier` \| `tsconfig` |
|
|
429
|
+
|
|
430
|
+
## 🤝 Contributing
|
|
431
|
+
|
|
432
|
+
1. Fork the repository
|
|
433
|
+
2. Create your feature branch (`git checkout -b feature/amazing`)
|
|
434
|
+
3. Run tests (`npm test`)
|
|
435
|
+
4. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
436
|
+
5. Push to the branch (`git push origin feature/amazing`)
|
|
437
|
+
6. Open a Pull Request
|
|
132
438
|
|
|
133
|
-
## License
|
|
439
|
+
## 📄 License
|
|
134
440
|
|
|
135
441
|
MIT
|
|
@@ -12,4 +12,20 @@ export declare function updateSelectedKnowledge(configId: string, knowledgeIds:
|
|
|
12
12
|
export declare function exportConfiguration(id: string): string | null;
|
|
13
13
|
export declare function importConfiguration(jsonString: string): UserConfiguration | null;
|
|
14
14
|
export declare function getConfigPath(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Get a value from generic storage
|
|
17
|
+
*/
|
|
18
|
+
export declare function getStorageValue<T>(key: string): T | null;
|
|
19
|
+
/**
|
|
20
|
+
* Set a value in generic storage
|
|
21
|
+
*/
|
|
22
|
+
export declare function setStorageValue<T>(key: string, value: T): void;
|
|
23
|
+
/**
|
|
24
|
+
* Delete a value from generic storage
|
|
25
|
+
*/
|
|
26
|
+
export declare function deleteStorageValue(key: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Check if a key exists in storage
|
|
29
|
+
*/
|
|
30
|
+
export declare function hasStorageValue(key: string): boolean;
|
|
15
31
|
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAgDlE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,aAAa,GAAE,MAAM,EAAO,EAC5B,iBAAiB,GAAE,MAAM,EAAO,GAC/B,iBAAiB,CAmBnB;AAGD,wBAAgB,oBAAoB,IAAI,iBAAiB,EAAE,CAG1D;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGzE;AAGD,wBAAgB,sBAAsB,IAAI,iBAAiB,GAAG,IAAI,CAIjE;AAGD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAW3E;AAGD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC5D,iBAAiB,GAAG,IAAI,CAc1B;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAcvD;AAGD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAgBnF;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAGhF;AAGD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzF;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAGD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAoBhF;AAQD,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAgDlE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,aAAa,GAAE,MAAM,EAAO,EAC5B,iBAAiB,GAAE,MAAM,EAAO,GAC/B,iBAAiB,CAmBnB;AAGD,wBAAgB,oBAAoB,IAAI,iBAAiB,EAAE,CAG1D;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAGzE;AAGD,wBAAgB,sBAAsB,IAAI,iBAAiB,GAAG,IAAI,CAIjE;AAGD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAW3E;AAGD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC5D,iBAAiB,GAAG,IAAI,CAc1B;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAcvD;AAGD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAgBnF;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAGhF;AAGD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzF;AAGD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAGD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAoBhF;AAQD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAgCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAGxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAI9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGpD"}
|
|
@@ -168,4 +168,57 @@ function generateId() {
|
|
|
168
168
|
export function getConfigPath() {
|
|
169
169
|
return CONFIG_DIR;
|
|
170
170
|
}
|
|
171
|
+
// ============================================================================
|
|
172
|
+
// Generic Storage Functions
|
|
173
|
+
// ============================================================================
|
|
174
|
+
const GENERIC_STORAGE_FILE = join(CONFIG_DIR, 'storage.json');
|
|
175
|
+
function getGenericStorage() {
|
|
176
|
+
ensureConfigDir();
|
|
177
|
+
if (!existsSync(GENERIC_STORAGE_FILE)) {
|
|
178
|
+
return {};
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
const data = readFileSync(GENERIC_STORAGE_FILE, 'utf-8');
|
|
182
|
+
return JSON.parse(data);
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return {};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function saveGenericStorage(storage) {
|
|
189
|
+
ensureConfigDir();
|
|
190
|
+
writeFileSync(GENERIC_STORAGE_FILE, JSON.stringify(storage, null, 2));
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get a value from generic storage
|
|
194
|
+
*/
|
|
195
|
+
export function getStorageValue(key) {
|
|
196
|
+
const storage = getGenericStorage();
|
|
197
|
+
return storage[key] ?? null;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Set a value in generic storage
|
|
201
|
+
*/
|
|
202
|
+
export function setStorageValue(key, value) {
|
|
203
|
+
const storage = getGenericStorage();
|
|
204
|
+
storage[key] = value;
|
|
205
|
+
saveGenericStorage(storage);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Delete a value from generic storage
|
|
209
|
+
*/
|
|
210
|
+
export function deleteStorageValue(key) {
|
|
211
|
+
const storage = getGenericStorage();
|
|
212
|
+
const exists = key in storage;
|
|
213
|
+
delete storage[key];
|
|
214
|
+
saveGenericStorage(storage);
|
|
215
|
+
return exists;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if a key exists in storage
|
|
219
|
+
*/
|
|
220
|
+
export function hasStorageValue(key) {
|
|
221
|
+
const storage = getGenericStorage();
|
|
222
|
+
return key in storage;
|
|
223
|
+
}
|
|
171
224
|
//# sourceMappingURL=persistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analyze handler - Project Intelligence Analysis
|
|
3
|
+
* Provides comprehensive project analysis and recommendations
|
|
4
|
+
* @version 3.3.0
|
|
5
|
+
*/
|
|
6
|
+
import { ServerState, ToolResponse } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Handle analyze tool requests
|
|
9
|
+
*/
|
|
10
|
+
export declare function handleAnalyze(args: unknown, state: ServerState): Promise<ToolResponse>;
|
|
11
|
+
//# sourceMappingURL=analyze.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/handlers/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA+B,MAAM,YAAY,CAAC;AA6BpF;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CAyCvB"}
|