mcp-local-rag 0.4.0 → 0.4.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 +14 -15
- package/package.json +4 -10
package/README.md
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
6
|
Local RAG for developers using MCP.
|
|
7
|
-
|
|
7
|
+
Semantic search with keyword boost for exact technical terms — fully private, zero setup.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
11
|
-
- **
|
|
12
|
-
|
|
11
|
+
- **Semantic search with keyword boost**
|
|
12
|
+
Vector search first, then keyword matching boosts exact matches. Terms like `useEffect`, error codes, and class names rank higher—not just semantically guessed.
|
|
13
13
|
|
|
14
14
|
- **Smart semantic chunking**
|
|
15
15
|
Chunks documents by meaning, not character count. Uses embedding similarity to find natural topic boundaries—keeping related content together and splitting where topics change.
|
|
@@ -82,7 +82,7 @@ You want AI to search your documents—technical specs, research papers, interna
|
|
|
82
82
|
|
|
83
83
|
**Offline.** Works without internet after setup.
|
|
84
84
|
|
|
85
|
-
**Code search.** Pure semantic search misses exact terms like `useEffect` or `ERR_CONNECTION_REFUSED`.
|
|
85
|
+
**Code search.** Pure semantic search misses exact terms like `useEffect` or `ERR_CONNECTION_REFUSED`. Keyword boost catches both meaning and exact matches.
|
|
86
86
|
|
|
87
87
|
## Usage
|
|
88
88
|
|
|
@@ -107,7 +107,7 @@ Re-ingesting the same file replaces the old version automatically.
|
|
|
107
107
|
"Search for error handling best practices"
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
Search uses semantic similarity with keyword boost. This means `useEffect` finds documents containing that exact term, not just semantically similar React concepts.
|
|
111
111
|
|
|
112
112
|
Results include text content, source file, and relevance score. Adjust result count with `limit` (1-20, default 10).
|
|
113
113
|
|
|
@@ -310,24 +310,23 @@ Copy `DB_PATH` directory (default: `./lancedb/`).
|
|
|
310
310
|
```bash
|
|
311
311
|
git clone https://github.com/shinpr/mcp-local-rag.git
|
|
312
312
|
cd mcp-local-rag
|
|
313
|
-
|
|
313
|
+
pnpm install
|
|
314
314
|
```
|
|
315
315
|
|
|
316
316
|
### Testing
|
|
317
317
|
|
|
318
318
|
```bash
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
npm run test:watch # Watch mode
|
|
319
|
+
pnpm test # Run all tests
|
|
320
|
+
pnpm run test:watch # Watch mode
|
|
322
321
|
```
|
|
323
322
|
|
|
324
323
|
### Code Quality
|
|
325
324
|
|
|
326
325
|
```bash
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
326
|
+
pnpm run type-check # TypeScript check
|
|
327
|
+
pnpm run check:fix # Lint and format
|
|
328
|
+
pnpm run check:deps # Circular dependency check
|
|
329
|
+
pnpm run check:all # Full quality check
|
|
331
330
|
```
|
|
332
331
|
|
|
333
332
|
### Project Structure
|
|
@@ -349,8 +348,8 @@ src/
|
|
|
349
348
|
|
|
350
349
|
Contributions welcome. Before submitting a PR:
|
|
351
350
|
|
|
352
|
-
1. Run tests: `
|
|
353
|
-
2. Check quality: `
|
|
351
|
+
1. Run tests: `pnpm test`
|
|
352
|
+
2. Check quality: `pnpm run check:all`
|
|
354
353
|
3. Add tests for new features
|
|
355
354
|
4. Update docs if behavior changes
|
|
356
355
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-local-rag",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Local RAG MCP Server - Easy-to-setup document search with minimal configuration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -33,10 +33,6 @@
|
|
|
33
33
|
"watch": "tsx watch src/index.ts",
|
|
34
34
|
"type-check": "tsc --noEmit",
|
|
35
35
|
"test": "vitest run",
|
|
36
|
-
"test:coverage": "vitest run --coverage",
|
|
37
|
-
"test:coverage:summary": "node scripts/show-coverage.js",
|
|
38
|
-
"test:coverage:clean": "rm -rf coverage .vitest-cache",
|
|
39
|
-
"test:coverage:fresh": "npm run test:coverage:clean && npm run test:coverage",
|
|
40
36
|
"test:watch": "vitest",
|
|
41
37
|
"format": "biome format --write src",
|
|
42
38
|
"format:check": "biome format src",
|
|
@@ -48,23 +44,21 @@
|
|
|
48
44
|
"check:unused:all": "ts-prune --project tsconfig.json --ignore 'src/index.ts|__tests__|test|vitest'",
|
|
49
45
|
"check:deps": "madge --circular --extensions ts src",
|
|
50
46
|
"check:deps:graph": "madge --extensions ts --image graph.svg src",
|
|
51
|
-
"check:all": "
|
|
47
|
+
"check:all": "pnpm run check && pnpm run lint && pnpm run format:check && pnpm run check:unused && pnpm run check:deps && pnpm run build && pnpm run test",
|
|
52
48
|
"cleanup:processes": "bash ./scripts/cleanup-test-processes.sh",
|
|
53
|
-
"test:safe": "
|
|
49
|
+
"test:safe": "pnpm test && pnpm run cleanup:processes",
|
|
54
50
|
"prepare": "husky"
|
|
55
51
|
},
|
|
56
52
|
"dependencies": {
|
|
57
53
|
"@huggingface/transformers": "^3.7.6",
|
|
58
54
|
"@lancedb/lancedb": "^0.22.2",
|
|
59
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
55
|
+
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
60
56
|
"mammoth": "^1.11.0",
|
|
61
57
|
"unpdf": "^1.4.0"
|
|
62
58
|
},
|
|
63
59
|
"devDependencies": {
|
|
64
60
|
"@biomejs/biome": "^1.9.4",
|
|
65
61
|
"@types/node": "^20.0.0",
|
|
66
|
-
"@vitest/coverage-v8": "^3.2.4",
|
|
67
|
-
"c8": "^10.1.3",
|
|
68
62
|
"husky": "^9.1.7",
|
|
69
63
|
"jsdom": "^25.0.0",
|
|
70
64
|
"lint-staged": "^16.1.0",
|