@ssmeo/mcp-local-rag 0.18.13 → 0.19.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.
- package/README.de.md +248 -215
- package/README.es.md +241 -215
- package/README.fr.md +249 -215
- package/README.md +207 -297
- package/README.pt-BR.md +236 -215
- package/README.zh-CN.md +133 -206
- package/dist/chunker/semantic-chunker.d.ts +23 -5
- package/dist/chunker/semantic-chunker.d.ts.map +1 -1
- package/dist/chunker/semantic-chunker.js +13 -5
- package/dist/chunker/semantic-chunker.js.map +1 -1
- package/dist/cli/common.d.ts +7 -0
- package/dist/cli/common.d.ts.map +1 -1
- package/dist/cli/common.js +26 -2
- package/dist/cli/common.js.map +1 -1
- package/dist/cli/delete.d.ts.map +1 -1
- package/dist/cli/delete.js +2 -0
- package/dist/cli/delete.js.map +1 -1
- package/dist/cli/download-model.d.ts +3 -0
- package/dist/cli/download-model.d.ts.map +1 -0
- package/dist/cli/download-model.js +21 -0
- package/dist/cli/download-model.js.map +1 -0
- package/dist/cli/file-collection.d.ts +2 -1
- package/dist/cli/file-collection.d.ts.map +1 -1
- package/dist/cli/file-collection.js +2 -2
- package/dist/cli/file-collection.js.map +1 -1
- package/dist/cli/ingest.d.ts +1 -0
- package/dist/cli/ingest.d.ts.map +1 -1
- package/dist/cli/ingest.js +45 -25
- package/dist/cli/ingest.js.map +1 -1
- package/dist/cli/list.d.ts.map +1 -1
- package/dist/cli/list.js +9 -13
- package/dist/cli/list.js.map +1 -1
- package/dist/cli/options.d.ts +8 -0
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +21 -0
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/query.d.ts.map +1 -1
- package/dist/cli/query.js +2 -1
- package/dist/cli/query.js.map +1 -1
- package/dist/cli/read-neighbors.d.ts.map +1 -1
- package/dist/cli/read-neighbors.js +1 -0
- package/dist/cli/read-neighbors.js.map +1 -1
- package/dist/cli/relocate.d.ts +3 -0
- package/dist/cli/relocate.d.ts.map +1 -0
- package/dist/cli/relocate.js +135 -0
- package/dist/cli/relocate.js.map +1 -0
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +17 -8
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli-main.d.ts +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli-main.js +5 -0
- package/dist/cli-main.js.map +1 -1
- package/dist/embedder/embedding-snapshot.d.ts +52 -0
- package/dist/embedder/embedding-snapshot.d.ts.map +1 -0
- package/dist/embedder/embedding-snapshot.js +413 -0
- package/dist/embedder/embedding-snapshot.js.map +1 -0
- package/dist/embedder/index.d.ts +36 -5
- package/dist/embedder/index.d.ts.map +1 -1
- package/dist/embedder/index.js +351 -24
- package/dist/embedder/index.js.map +1 -1
- package/dist/embedder/remote.d.ts +42 -4
- package/dist/embedder/remote.d.ts.map +1 -1
- package/dist/embedder/remote.js +113 -5
- package/dist/embedder/remote.js.map +1 -1
- package/dist/embedder/sentence-transformers-config.d.ts +24 -0
- package/dist/embedder/sentence-transformers-config.d.ts.map +1 -0
- package/dist/embedder/sentence-transformers-config.js +93 -0
- package/dist/embedder/sentence-transformers-config.js.map +1 -0
- package/dist/features/sync.js +1 -1
- package/dist/features/sync.js.map +1 -1
- package/dist/ingest/compute.d.ts +15 -7
- package/dist/ingest/compute.d.ts.map +1 -1
- package/dist/ingest/compute.js +74 -14
- package/dist/ingest/compute.js.map +1 -1
- package/dist/ingest/file.d.ts +3 -3
- package/dist/ingest/file.d.ts.map +1 -1
- package/dist/ingest/file.js +0 -5
- package/dist/ingest/file.js.map +1 -1
- package/dist/ingest/visual.d.ts +6 -2
- package/dist/ingest/visual.d.ts.map +1 -1
- package/dist/ingest/visual.js +20 -4
- package/dist/ingest/visual.js.map +1 -1
- package/dist/parser/docx-parser.d.ts +2 -0
- package/dist/parser/docx-parser.d.ts.map +1 -1
- package/dist/parser/docx-parser.js +12 -3
- package/dist/parser/docx-parser.js.map +1 -1
- package/dist/parser/index.d.ts +11 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +27 -11
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/pdf-extract.d.ts +2 -0
- package/dist/parser/pdf-extract.d.ts.map +1 -1
- package/dist/parser/pdf-extract.js +3 -0
- package/dist/parser/pdf-extract.js.map +1 -1
- package/dist/parser/pdf-filter.d.ts +2 -9
- package/dist/parser/pdf-filter.d.ts.map +1 -1
- package/dist/parser/pdf-filter.js +110 -144
- package/dist/parser/pdf-filter.js.map +1 -1
- package/dist/parser/pdf-headings.d.ts +6 -0
- package/dist/parser/pdf-headings.d.ts.map +1 -0
- package/dist/parser/pdf-headings.js +166 -0
- package/dist/parser/pdf-headings.js.map +1 -0
- package/dist/parser/text-source-map.d.ts +3 -0
- package/dist/parser/text-source-map.d.ts.map +1 -0
- package/dist/parser/text-source-map.js +33 -0
- package/dist/parser/text-source-map.js.map +1 -0
- package/dist/pdf-visual/captioner.d.ts.map +1 -1
- package/dist/pdf-visual/captioner.js +7 -4
- package/dist/pdf-visual/captioner.js.map +1 -1
- package/dist/pdf-visual/detector.js +3 -3
- package/dist/pdf-visual/detector.js.map +1 -1
- package/dist/rerank/command.d.ts +10 -7
- package/dist/rerank/command.d.ts.map +1 -1
- package/dist/rerank/command.js +51 -10
- package/dist/rerank/command.js.map +1 -1
- package/dist/rerank/index.d.ts +3 -3
- package/dist/rerank/index.d.ts.map +1 -1
- package/dist/rerank/index.js +3 -3
- package/dist/rerank/index.js.map +1 -1
- package/dist/server/index.d.ts +8 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +129 -81
- package/dist/server/index.js.map +1 -1
- package/dist/server/list-scanner.d.ts +2 -1
- package/dist/server/list-scanner.d.ts.map +1 -1
- package/dist/server/list-scanner.js +2 -2
- package/dist/server/list-scanner.js.map +1 -1
- package/dist/server/tool-definitions.js +2 -2
- package/dist/server/tool-definitions.js.map +1 -1
- package/dist/server/types.d.ts +9 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server-main.d.ts +2 -2
- package/dist/server-main.d.ts.map +1 -1
- package/dist/server-main.js +22 -20
- package/dist/server-main.js.map +1 -1
- package/dist/utils/base-dirs.d.ts +9 -10
- package/dist/utils/base-dirs.d.ts.map +1 -1
- package/dist/utils/base-dirs.js +28 -30
- package/dist/utils/base-dirs.js.map +1 -1
- package/dist/utils/scan.d.ts +25 -5
- package/dist/utils/scan.d.ts.map +1 -1
- package/dist/utils/scan.js +40 -10
- package/dist/utils/scan.js.map +1 -1
- package/dist/utils/source-context.d.ts +29 -0
- package/dist/utils/source-context.d.ts.map +1 -0
- package/dist/utils/source-context.js +86 -0
- package/dist/utils/source-context.js.map +1 -0
- package/dist/utils/sync-path-key.d.ts +1 -1
- package/dist/utils/sync-path-key.d.ts.map +1 -1
- package/dist/utils/sync-path-key.js +1 -1
- package/dist/utils/sync-path-key.js.map +1 -1
- package/dist/vectordb/index.d.ts +4 -2
- package/dist/vectordb/index.d.ts.map +1 -1
- package/dist/vectordb/index.js +33 -8
- package/dist/vectordb/index.js.map +1 -1
- package/dist/vectordb/relocate.d.ts +18 -0
- package/dist/vectordb/relocate.d.ts.map +1 -0
- package/dist/vectordb/relocate.js +179 -0
- package/dist/vectordb/relocate.js.map +1 -0
- package/dist/vectordb/types.d.ts +10 -23
- package/dist/vectordb/types.d.ts.map +1 -1
- package/dist/vectordb/types.js +14 -23
- package/dist/vectordb/types.js.map +1 -1
- package/package.json +14 -14
package/README.de.md
CHANGED
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
# MCP Local RAG
|
|
6
6
|
|
|
7
|
-
[](https://github.com/shinpr/mcp-local-rag)
|
|
9
|
+
[](https://www.npmjs.com/package/mcp-local-rag)
|
|
11
|
+
[](https://opensource.org/licenses/MIT)
|
|
13
|
+
[](https://registry.modelcontextprotocol.io/)
|
|
11
15
|
|
|
12
16
|
<p align="center">
|
|
13
17
|
<a href="README.md">English</a> |
|
|
@@ -18,41 +22,53 @@
|
|
|
18
22
|
<a href="README.fr.md">Français</a>
|
|
19
23
|
</p>
|
|
20
24
|
|
|
21
|
-
Durchsuche vertrauliche Dokumente über einen MCP-Client oder das Terminal, ohne sie an eine
|
|
25
|
+
Durchsuche vertrauliche Dokumente über einen MCP-Client oder das Terminal, ohne sie an eine
|
|
26
|
+
Embedding-API zu senden.
|
|
22
27
|
|
|
23
|
-
mcp-local-rag indexiert PDF-, DOCX-, Markdown- und Textdateien direkt auf deinem Rechner. Die
|
|
28
|
+
mcp-local-rag indexiert PDF-, DOCX-, Markdown- und Textdateien direkt auf deinem Rechner. Die
|
|
29
|
+
Suche verbindet semantische Ähnlichkeit mit Stichwortsuche. Dadurch findet sie sowohl
|
|
30
|
+
inhaltlich verwandte Inhalte als auch exakte technische Begriffe wie API-Namen, Klassennamen
|
|
31
|
+
und Fehlercodes. Die Treffer enthalten Textstellen aus der Quelle und, sofern verfügbar,
|
|
32
|
+
Überschriften, Zeilen- oder Seitenzahlen. So kannst du im Original nachlesen und die Fundstelle
|
|
33
|
+
zitieren.
|
|
24
34
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- **Läuft lokal:** Dokument-Parsing, Embeddings, Speicherung und Suche finden auf deinem Rechner statt. Nach dem ersten Modelldownload funktionieren Textimport und Suche offline.
|
|
28
|
-
- **Hybride Suche:** Die semantische Suche findet verwandte Konzepte, während die Stichwortsuche exakte Fachbegriffe höher gewichtet.
|
|
29
|
-
- **Konfigurierbare Embeddings:** Wähle ein Hugging-Face-Embedding-Modell, das zur Sprache und zum Fachgebiet deiner Dokumente passt.
|
|
30
|
-
- **Semantische Aufteilung:** Dokumente werden an Themenwechseln statt nach einer festen Zeichenzahl geteilt. Markdown-Codeblöcke bleiben erhalten.
|
|
31
|
-
- **MCP und CLI:** KI-Programmierwerkzeuge und Terminal greifen auf denselben Index zu.
|
|
32
|
-
|
|
33
|
-
Es werden weder API-Schlüssel noch Docker, Python oder eine externe Datenbank benötigt.
|
|
35
|
+
Es werden weder API-Schlüssel noch Docker, Python oder eine externe Datenbank benötigt. Nach
|
|
36
|
+
dem ersten Modelldownload funktionieren Textimport und Suche offline.
|
|
34
37
|
|
|
35
38
|
## Schnellstart
|
|
36
39
|
|
|
37
40
|
### Voraussetzungen
|
|
38
41
|
|
|
39
|
-
- Node.js 22 oder neuer
|
|
42
|
+
- Node.js 22.20 oder neuer
|
|
40
43
|
- Internetzugang beim ersten Start, um das npm-Paket und das Embedding-Modell herunterzuladen
|
|
41
44
|
- Ein Verzeichnis mit den zu durchsuchenden Dokumenten
|
|
42
45
|
|
|
43
|
-
Setze `BASE_DIR` auf dieses Verzeichnis. Es bildet zugleich die Sicherheitsgrenze für
|
|
46
|
+
Setze `BASE_DIR` auf dieses Verzeichnis. Es bildet zugleich die Sicherheitsgrenze für
|
|
47
|
+
Dateizugriffe. Ersetze `/absolute/path/to/your/documents` in den folgenden Beispielen durch den
|
|
48
|
+
absoluten Pfad zu deinen Dokumenten.
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
Nutze eines der folgenden Beispiele oder registriere `npx -y mcp-local-rag` im
|
|
51
|
+
Konfigurationsformat deines Clients und setze dort `BASE_DIR`.
|
|
46
52
|
|
|
47
|
-
|
|
53
|
+
Setze auch `DB_PATH` und `CACHE_DIR` auf absolute Pfade. Relative Pfade beziehen sich auf das
|
|
54
|
+
Arbeitsverzeichnis des Servers. Wird er aus verschiedenen Projekten gestartet, entstehen
|
|
55
|
+
jeweils ein eigener Index und Modellcache.
|
|
48
56
|
|
|
49
|
-
|
|
57
|
+
<details>
|
|
58
|
+
<summary>Claude Code</summary>
|
|
59
|
+
|
|
60
|
+
Führe diesen Befehl aus:
|
|
50
61
|
|
|
51
62
|
```bash
|
|
52
63
|
claude mcp add local-rag --scope user --env BASE_DIR=/absolute/path/to/your/documents -- npx -y mcp-local-rag
|
|
53
64
|
```
|
|
54
65
|
|
|
55
|
-
|
|
66
|
+
</details>
|
|
67
|
+
|
|
68
|
+
<details>
|
|
69
|
+
<summary>Codex</summary>
|
|
70
|
+
|
|
71
|
+
Ergänze `~/.codex/config.toml`:
|
|
56
72
|
|
|
57
73
|
```toml
|
|
58
74
|
[mcp_servers.local-rag]
|
|
@@ -63,7 +79,12 @@ args = ["-y", "mcp-local-rag"]
|
|
|
63
79
|
BASE_DIR = "/absolute/path/to/your/documents"
|
|
64
80
|
```
|
|
65
81
|
|
|
66
|
-
|
|
82
|
+
</details>
|
|
83
|
+
|
|
84
|
+
<details>
|
|
85
|
+
<summary>OpenCode</summary>
|
|
86
|
+
|
|
87
|
+
Ergänze `~/.config/opencode/opencode.json` (oder `opencode.jsonc`):
|
|
67
88
|
|
|
68
89
|
```json
|
|
69
90
|
{
|
|
@@ -80,7 +101,12 @@ BASE_DIR = "/absolute/path/to/your/documents"
|
|
|
80
101
|
}
|
|
81
102
|
```
|
|
82
103
|
|
|
83
|
-
|
|
104
|
+
</details>
|
|
105
|
+
|
|
106
|
+
<details>
|
|
107
|
+
<summary>Cursor</summary>
|
|
108
|
+
|
|
109
|
+
Ergänze `~/.cursor/mcp.json`:
|
|
84
110
|
|
|
85
111
|
```json
|
|
86
112
|
{
|
|
@@ -96,13 +122,17 @@ BASE_DIR = "/absolute/path/to/your/documents"
|
|
|
96
122
|
}
|
|
97
123
|
```
|
|
98
124
|
|
|
125
|
+
</details>
|
|
126
|
+
|
|
99
127
|
Starte den Client neu und lass ihn anschließend den Index aufbauen:
|
|
100
128
|
|
|
101
129
|
```text
|
|
102
130
|
Synchronisiere alle Dokumente im konfigurierten Stammverzeichnis und warte, bis der Vorgang abgeschlossen ist.
|
|
103
131
|
```
|
|
104
132
|
|
|
105
|
-
Bei der ersten Synchronisierung wird das Standard-Embedding-Modell heruntergeladen (etwa 90
|
|
133
|
+
Bei der ersten Synchronisierung wird das Standard-Embedding-Modell heruntergeladen (etwa 90
|
|
134
|
+
MB). Bis der Import beginnt, können 1–2 Minuten vergehen. Spätere Durchläufe verwenden den
|
|
135
|
+
lokalen Cache.
|
|
106
136
|
|
|
107
137
|
Nach Abschluss der Synchronisierung kannst du zum Beispiel fragen:
|
|
108
138
|
|
|
@@ -119,27 +149,45 @@ npx mcp-local-rag ingest ./docs/
|
|
|
119
149
|
npx mcp-local-rag query "Authentifizierungs-API"
|
|
120
150
|
```
|
|
121
151
|
|
|
122
|
-
Die CLI verwendet standardmäßig das aktuelle Verzeichnis als
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Manche Dokumentensammlungen dürfen aus Vertraulichkeitsgründen oder aufgrund interner Richtlinien nicht an gehostete Embedding-Dienste gesendet werden. Mit einem lokalen Index bleiben sie durchsuchbar, ohne dass pro Anfrage API-Kosten entstehen.
|
|
127
|
-
|
|
128
|
-
Eine rein semantische Suche kann exakte Bezeichner übersehen, die in technischer Dokumentation wichtig sind. Die Stichwortgewichtung hält diese Treffer sichtbar, ohne auf natürlichsprachliche Suche zu verzichten.
|
|
152
|
+
Die CLI verwendet standardmäßig das aktuelle Verzeichnis als Stammverzeichnis. Führe beide
|
|
153
|
+
Befehle im selben Verzeichnis aus, damit sie denselben Standardindex verwenden, oder setze
|
|
154
|
+
`BASE_DIR` und `DB_PATH` ausdrücklich.
|
|
129
155
|
|
|
130
156
|
## Unterstützte Inhalte
|
|
131
157
|
|
|
132
158
|
| Eingabe | Import |
|
|
133
159
|
|---|---|
|
|
134
160
|
| PDF, DOCX, TXT, Markdown | Einzelne Datei importieren oder Verzeichnis synchronisieren |
|
|
135
|
-
| Bereits vom Client abgerufenes HTML |
|
|
161
|
+
| Bereits vom Client abgerufenes HTML | `ingest_data` |
|
|
136
162
|
| Im Speicher vorliegender Klartext oder Markdown | Mit `ingest_data` und einer stabilen Quellkennung |
|
|
137
163
|
|
|
138
|
-
Der Server ruft HTML nicht selbst ab. Ein MCP-Client kann eine Seite laden und ihr HTML an
|
|
164
|
+
Der Server ruft HTML nicht selbst ab. Ein MCP-Client kann eine Seite laden und ihr HTML an
|
|
165
|
+
`ingest_data` übergeben.
|
|
166
|
+
|
|
167
|
+
Excel, PowerPoint, einzelne Bilddateien und Quellcodedateien werden beim Dateiimport nicht
|
|
168
|
+
unterstützt. Für Abbildungen in PDFs kann optional ein lokales Vision-Modell verwendet werden.
|
|
169
|
+
Das ist weder OCR noch Bildsuche.
|
|
170
|
+
|
|
171
|
+
## Mit dem Index arbeiten
|
|
172
|
+
|
|
173
|
+
Synchronisiere den Index, nachdem du Dokumente hinzugefügt, geändert oder entfernt hast. Für
|
|
174
|
+
die Suche und das Nachlesen kannst du deinen MCP-Client zum Beispiel bitten:
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
Suche in der Dokumentation nach dem Verhalten bei ERR_CONNECTION_REFUSED.
|
|
178
|
+
Lies auch die Abschnitte vor und nach diesem Treffer.
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Du kannst auch einzelne Dateien oder bereits vom Client abgerufenes HTML importieren. Um einen
|
|
182
|
+
vorhandenen Eintrag neu aufzubauen, importiere das Dokument erneut mit demselben Pfad oder
|
|
183
|
+
derselben Quellkennung. `sync` überspringt unveränderte Dateien. MCP-Dateipfade müssen absolut
|
|
184
|
+
sein und innerhalb eines konfigurierten Stammverzeichnisses liegen.
|
|
139
185
|
|
|
140
|
-
|
|
186
|
+
Bei PDFs können die erkannten Abschnittsüberschriften fehlerhaft sein. Wenn du die genaue
|
|
187
|
+
Überschrift brauchst, prüfe sie auf der Originalseite.
|
|
141
188
|
|
|
142
|
-
|
|
189
|
+
<details>
|
|
190
|
+
<summary>MCP-Werkzeuge</summary>
|
|
143
191
|
|
|
144
192
|
| Werkzeug | Zweck |
|
|
145
193
|
|---|---|
|
|
@@ -153,131 +201,142 @@ Excel, PowerPoint, einzelne Bilddateien und Quellcodedateien werden beim Dateiim
|
|
|
153
201
|
| `delete_file` | Eine indexierte Datei oder einen `ingest_data`-Eintrag löschen |
|
|
154
202
|
| `status` | Status von Index und Suche anzeigen |
|
|
155
203
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
`sync_start` importiert neue und geänderte Dateien, überspringt bytegleiche Dateien und entfernt Indexeinträge für Dateien, die nicht mehr vorhanden sind:
|
|
159
|
-
|
|
160
|
-
```text
|
|
161
|
-
Synchronisiere alle Inhalte in den konfigurierten Dokumentenstämmen und warte auf den Abschluss.
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Das Werkzeug gibt sofort eine `jobId` zurück. Clients sollten `sync_status` abfragen, bis der Status `succeeded` oder `failed` lautet. Ein geändertes PDF behält das visuelle Profil, mit dem es indexiert wurde; ein PDF ohne gespeichertes Profil bleibt reiner Text. `sync_start` kann das Profil nicht ändern.
|
|
165
|
-
|
|
166
|
-
Der Serverprozess speichert nur einen Synchronisierungsauftrag. Ein neuer Auftrag ersetzt den Eintrag eines abgeschlossenen Auftrags. Beim Neustart des Servers geht der Eintrag verloren.
|
|
167
|
-
|
|
168
|
-
### Einzelne Datei importieren
|
|
169
|
-
|
|
170
|
-
`ingest_file` unterstützt PDF, DOCX, TXT und Markdown. MCP-Dateipfade müssen absolut sein und innerhalb eines konfigurierten Dokumentenstamms liegen:
|
|
171
|
-
|
|
172
|
-
```text
|
|
173
|
-
Importiere das Dokument /Users/me/docs/api-spec.pdf.
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Ein erneuter Import desselben Pfads ersetzt die vorhandenen Abschnitte.
|
|
177
|
-
|
|
178
|
-
### Suchen und weiteren Kontext lesen
|
|
204
|
+
</details>
|
|
179
205
|
|
|
180
|
-
|
|
181
|
-
Was steht in der API-Dokumentation zur Authentifizierung?
|
|
182
|
-
Finde das dokumentierte Verhalten von ERR_CONNECTION_REFUSED.
|
|
183
|
-
```
|
|
206
|
+
## CLI
|
|
184
207
|
|
|
185
|
-
|
|
208
|
+
Mit der CLI kannst du den Index aktualisieren, die Suche eingrenzen oder indexierte Inhalte
|
|
209
|
+
entfernen:
|
|
186
210
|
|
|
187
|
-
```
|
|
188
|
-
|
|
211
|
+
```bash
|
|
212
|
+
npx mcp-local-rag sync ./docs/
|
|
213
|
+
npx mcp-local-rag query "Authentifizierung" --scope /docs/api --scope /docs/guide
|
|
214
|
+
npx mcp-local-rag read-neighbors --file-path /abs/path.md --chunk-index 5
|
|
215
|
+
npx mcp-local-rag list
|
|
216
|
+
npx mcp-local-rag status
|
|
217
|
+
npx mcp-local-rag delete ./docs/old.pdf
|
|
218
|
+
npx mcp-local-rag delete --source "https://example.com/docs"
|
|
189
219
|
```
|
|
190
220
|
|
|
191
|
-
`
|
|
221
|
+
`ingest` importiert die ausgewählten Dateien. `sync` entfernt zusätzlich Einträge gelöschter
|
|
222
|
+
Dateien und überspringt unveränderte Dateien. Mit `--scope` beschränkst du Treffer auf ein
|
|
223
|
+
Pfadpräfix; wiederhole die Option, um mehrere Präfixe einzubeziehen.
|
|
192
224
|
|
|
193
|
-
|
|
225
|
+
Globale Optionen wie `--db-path`, `--cache-dir` und `--model-name` stehen vor dem Unterbefehl.
|
|
226
|
+
Optionen des Unterbefehls stehen dahinter:
|
|
194
227
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
```text
|
|
198
|
-
Rufe https://example.com/docs ab und importiere das HTML.
|
|
228
|
+
```bash
|
|
229
|
+
npx mcp-local-rag --db-path ./my-db query "Authentifizierung"
|
|
199
230
|
```
|
|
200
231
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
Beachte beim Indexieren externer Inhalte die Nutzungsbedingungen und das Urheberrecht der Quelle.
|
|
204
|
-
|
|
205
|
-
### Abbildungen in PDFs
|
|
232
|
+
`npx mcp-local-rag --help` zeigt die vollständige Befehlsreferenz.
|
|
206
233
|
|
|
207
|
-
|
|
234
|
+
`query` schreibt seine Ergebnisse als JSON nach stdout, den besten Treffer zuerst, sodass sie
|
|
235
|
+
sich per Pipe an ein anderes Werkzeug übergeben lassen. Die Definition der einzelnen Felder
|
|
236
|
+
steht in [`docs/schema/query-output.schema.json`](docs/schema/query-output.schema.json).
|
|
208
237
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
238
|
+
Wenn du ein Projekt verschieben und seinen Index behalten möchtest, beende zuerst den
|
|
239
|
+
MCP-Server und andere Schreibprozesse. Verschiebe die Dateien und die Datenbank zusammen, ohne
|
|
240
|
+
die Verzeichnisstruktur zu ändern, und führe dann diesen Befehl aus:
|
|
212
241
|
|
|
213
242
|
```bash
|
|
214
|
-
npx mcp-local-rag
|
|
243
|
+
npx mcp-local-rag --db-path /new/project/lancedb relocate --from /old/project --to /new/project
|
|
215
244
|
```
|
|
216
245
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
| `fast` (Standard) | etwa 250 MB | Leichtgewichtige visuelle Indexierung |
|
|
220
|
-
| `quality` | etwa 1,7 GB | Abbildungen mit Beschriftungen, Anmerkungen oder anderem Text im Bild |
|
|
246
|
+
Passe `BASE_DIR`/`BASE_DIRS`, `DB_PATH` und weitere betroffene Pfade in deiner MCP-Konfiguration
|
|
247
|
+
an und starte den Client neu.
|
|
221
248
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
#### Bestehende `quality`-Bildbeschreibungen aktualisieren
|
|
249
|
+
## Agent Skills
|
|
225
250
|
|
|
226
|
-
|
|
251
|
+
[Agent Skills](https://agentskills.io/) geben KI-Assistenten Hinweise für Abfragen und Importe:
|
|
227
252
|
|
|
228
253
|
```bash
|
|
229
|
-
npx mcp-local-rag
|
|
254
|
+
npx mcp-local-rag skills install --claude-code
|
|
255
|
+
npx mcp-local-rag skills install --claude-code --global
|
|
256
|
+
npx mcp-local-rag skills install --codex
|
|
230
257
|
```
|
|
231
258
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
259
|
+
Die installierten Skills behandeln Abfrageformulierung, Trefferverfeinerung und HTML-Import.
|
|
260
|
+
Falls ein Skill nicht automatisch aktiviert wird, bitte den Assistenten ausdrücklich darum, den
|
|
261
|
+
mcp-local-rag-Skill zu verwenden.
|
|
235
262
|
|
|
236
|
-
|
|
263
|
+
## Erweiterte Optionen
|
|
237
264
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
npx mcp-local-rag sync ./docs/ --visual --visual-quality quality
|
|
242
|
-
```
|
|
265
|
+
Beginne mit den Standardeinstellungen. Die folgenden Abschnitte helfen dir, wenn du mehrere
|
|
266
|
+
Stammverzeichnisse brauchst, die Suche an deinen Bestand anpassen oder PDF-Abbildungen
|
|
267
|
+
durchsuchbar machen möchtest.
|
|
243
268
|
|
|
244
|
-
|
|
269
|
+
<details>
|
|
270
|
+
<summary>Speicher und Stammverzeichnisse</summary>
|
|
245
271
|
|
|
246
|
-
|
|
272
|
+
Der MCP-Server liest Umgebungsvariablen. Die CLI unterstützt die aufgeführten Variablen und
|
|
273
|
+
Optionen. Verwende denselben `DB_PATH`, wenn mehrere Befehle denselben Index nutzen sollen.
|
|
247
274
|
|
|
248
|
-
|
|
275
|
+
| Umgebungsvariable | CLI-Option | Standard | Beschreibung |
|
|
276
|
+
|---------------------|----------|---------|-------------|
|
|
277
|
+
| `BASE_DIR` | `--base-dir` | Aktuelles Verzeichnis | Ein Stammverzeichnis; die CLI-Option kann bei `ingest`, `list` und `sync` mehrfach verwendet werden |
|
|
278
|
+
| `BASE_DIRS` | – | nicht gesetzt | JSON-Array mit Stammverzeichnissen; hat Vorrang vor `BASE_DIR` |
|
|
279
|
+
| `IGNORE_PATHS` | – | nicht gesetzt | JSON-Array mit Glob-Mustern für Dateien, die nicht in den Index sollen |
|
|
280
|
+
| `DB_PATH` | `--db-path` | `./lancedb/` | Pfad zur Vektordatenbank |
|
|
281
|
+
| `CACHE_DIR` | `--cache-dir` | `./models/` | Verzeichnis für den Modellcache |
|
|
282
|
+
| `HF_ENDPOINT` | – | `https://huggingface.co` | Endpunkt für Hugging-Face-Modelldownloads; bei blockierten Direktdownloads die URL eines Mirrors verwenden |
|
|
283
|
+
| `MAX_FILE_SIZE` | `--max-file-size` | `104857600` (100 MB) | Maximale Dateigröße in Byte |
|
|
249
284
|
|
|
250
|
-
|
|
285
|
+
Dateizugriffe bleiben auf die konfigurierten Stammverzeichnisse beschränkt. Für mehrere
|
|
286
|
+
Verzeichnisse setze `BASE_DIRS='["/absolute/docs","/absolute/specs"]'` oder wiederhole die
|
|
287
|
+
CLI-Option `--base-dir`. Es gilt: CLI-Stammverzeichnisse vor `BASE_DIRS`, vor `BASE_DIR`, vor
|
|
288
|
+
dem aktuellen Verzeichnis. Es zählt nur die Angabe mit der höchsten Priorität; die
|
|
289
|
+
Stammverzeichnisse aus verschiedenen Quellen werden nicht zusammengeführt. Ungültiges
|
|
290
|
+
`BASE_DIRS` führt zu einem Fehler. Relative Werte für `DB_PATH` und `CACHE_DIR` beziehen sich
|
|
291
|
+
auf das Arbeitsverzeichnis.
|
|
292
|
+
|
|
293
|
+
Um Dateien aus dem Index herauszuhalten, setze `IGNORE_PATHS` auf ein JSON-Array mit
|
|
294
|
+
Glob-Mustern, zum Beispiel `IGNORE_PATHS='["plugs/**","**/*.draft.md"]'`. Jedes Muster wird mit
|
|
295
|
+
dem Pfad der Datei relativ zu ihrem Stammverzeichnis verglichen, auf jedem Betriebssystem mit
|
|
296
|
+
`/` geschrieben. `*` und `**` erfassen keine Namen, die mit `.` beginnen. Schreibe solche
|
|
297
|
+
Verzeichnisse aus, etwa `".obsidian/**"`. Wenn `ingest`, `list` und `sync` ein Verzeichnis
|
|
298
|
+
verarbeiten, überspringen sie passende Dateien, und `sync` entfernt bereits indexierte Dateien
|
|
299
|
+
wieder aus dem Index. Ungültiges `IGNORE_PATHS` führt zu einem Fehler.
|
|
251
300
|
|
|
252
|
-
|
|
301
|
+
</details>
|
|
253
302
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
npx mcp-local-rag sync ./docs/
|
|
257
|
-
npx mcp-local-rag query "Authentifizierungs-API"
|
|
258
|
-
npx mcp-local-rag query "Authentifizierung" --scope /docs/api --scope /docs/guide
|
|
259
|
-
npx mcp-local-rag read-neighbors --file-path /abs/path.md --chunk-index 5
|
|
260
|
-
npx mcp-local-rag list
|
|
261
|
-
npx mcp-local-rag status
|
|
262
|
-
npx mcp-local-rag delete ./docs/old.pdf
|
|
263
|
-
npx mcp-local-rag delete --source "https://example.com/docs"
|
|
264
|
-
```
|
|
303
|
+
<details>
|
|
304
|
+
<summary>Modelle und Suchparameter</summary>
|
|
265
305
|
|
|
266
|
-
|
|
306
|
+
Wähle ein Embedding-Modell passend zur Sprache und zum Fachgebiet deiner Dokumente. Vergleiche
|
|
307
|
+
Einstellungen mit deinen tatsächlichen Fragen und prüfe, welche Textstellen gefunden werden.
|
|
308
|
+
Das Modell muss Mean Pooling und L2-Normalisierung unterstützen, da das Werkzeug damit die
|
|
309
|
+
Embeddings berechnet.
|
|
267
310
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
311
|
+
| Umgebungsvariable | CLI-Option | Standard | Beschreibung |
|
|
312
|
+
|---------------------|----------|---------|-------------|
|
|
313
|
+
| `MODEL_NAME` | `--model-name` | `Xenova/all-MiniLM-L6-v2` | Hugging-Face-Embedding-Modell |
|
|
314
|
+
| `CHUNK_MIN_LENGTH` | `--chunk-min-length` | `50` | Mindestlänge eines gewöhnlichen Abschnitts in Zeichen (1–10000); ein Teilstück, das beim Teilen für das Token-Limit des Modells entsteht, darf kürzer sein |
|
|
315
|
+
| `EMBED_TITLE_PREFIX` | – | `false` | Ergänzt die Embedding-Eingabe jedes Abschnitts um den Dokumenttitel |
|
|
316
|
+
| `EMBED_HEADING_PREFIX` | – | `false` | Ergänzt die Embedding-Eingabe jedes Abschnitts um die Überschriftenhierarchie, sofern sie hineinpasst |
|
|
317
|
+
| `RAG_DEVICE` | – | `cpu` | ONNX-Runtime-Ausführungsgerät |
|
|
318
|
+
| `RAG_DTYPE` | – | `fp32` | An das ausgewählte Modell übergebener Embedding-Datentyp |
|
|
271
319
|
|
|
272
|
-
|
|
320
|
+
Beide Präfixoptionen sind standardmäßig `false` und unabhängig voneinander nutzbar. Probiere
|
|
321
|
+
`EMBED_TITLE_PREFIX`, wenn einem Abschnitt das übergeordnete Dokumentthema fehlt, oder
|
|
322
|
+
`EMBED_HEADING_PREFIX`, wenn er das Thema seines Kapitels braucht. Beide zusammen liefern nicht
|
|
323
|
+
immer bessere Treffer. Sie beeinflussen die Embeddings, nicht den zurückgegebenen Text oder den
|
|
324
|
+
Stichwortindex; Überschriftenkontext entfällt, wenn er das Eingabelimit überschreiten würde.
|
|
273
325
|
|
|
274
|
-
|
|
326
|
+
Erstelle bei einem Wechsel des Embedding-Modells einen neuen Index unter einem neuen `DB_PATH`.
|
|
327
|
+
Vektoren verschiedener Modelle sind auch bei gleicher Dimension nicht vergleichbar. Nach einer
|
|
328
|
+
Änderung von `RAG_DTYPE` oder einer Präfixoption musst du alle indexierten Dokumente erneut
|
|
329
|
+
importieren, bevor du suchst. `sync` überspringt unveränderte Dateien.
|
|
275
330
|
|
|
276
|
-
|
|
331
|
+
Die CLI liest keine MCP-Client-Konfiguration. Verwende bei einem gemeinsamen Index dasselbe
|
|
332
|
+
Modell, denselben `RAG_DTYPE` und dieselben Präfixeinstellungen für Import und Suche. Ein
|
|
333
|
+
Wechsel von `RAG_DEVICE` allein erfordert keinen neuen Index.
|
|
277
334
|
|
|
278
|
-
|
|
335
|
+
### Suchparameter
|
|
279
336
|
|
|
280
|
-
Die
|
|
337
|
+
Die ersten vier Einstellungen in der Tabelle gelten für MCP und CLI. Wenn exakte Begriffe
|
|
338
|
+
stärker zählen sollen, erhöhe versuchsweise `RAG_HYBRID_WEIGHT` und vergleiche die Treffer
|
|
339
|
+
anhand deiner eigenen Fragen. Das externe Neuordnen ist nur über MCP verfügbar.
|
|
281
340
|
|
|
282
341
|
| Variable | Standard | Beschreibung |
|
|
283
342
|
|----------|---------|-------------|
|
|
@@ -285,125 +344,89 @@ Die Stichwortgewichtung ist standardmäßig aktiv. Für Korpora, die eine streng
|
|
|
285
344
|
| `RAG_GROUPING` | nicht gesetzt | `similar` behält die erste Relevanzgruppe; `related` behält bis zu zwei Gruppen und trennt sie an deutlichen Sprüngen der Vektordistanz. |
|
|
286
345
|
| `RAG_MAX_DISTANCE` | nicht gesetzt | Filtert wenig relevante Treffer heraus, zum Beispiel mit `0.5`. |
|
|
287
346
|
| `RAG_MAX_FILES` | nicht gesetzt | Beschränkt die Treffer auf die besten N Dateien, zum Beispiel mit `1` auf die beste Datei. |
|
|
288
|
-
| `RAG_RERANK_CMD` | nicht gesetzt | Nur MCP
|
|
347
|
+
| `RAG_RERANK_CMD` | nicht gesetzt | Nur MCP: externer Befehl; `{query}` übergibt die Suchanfrage, `{top}` die angeforderte Trefferzahl. |
|
|
289
348
|
| `RAG_RERANK_TIMEOUT_MS` | `10000` | Zeitbudget pro Neuordnung in Millisekunden (100–600000). |
|
|
290
349
|
|
|
291
|
-
Bei API-Spezifikationen und anderen Dokumenten mit vielen Bezeichnern kann ein höheres Stichwortgewicht die Rangfolge exakter Treffer verbessern:
|
|
292
|
-
|
|
293
|
-
```json
|
|
294
|
-
"env": {
|
|
295
|
-
"RAG_HYBRID_WEIGHT": "0.7"
|
|
296
|
-
}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
- `0.7`: etwas stärkere Gewichtung exakter Begriffe als in der Standardeinstellung
|
|
300
|
-
- `1.0`: höchste Stichwortgewichtung
|
|
301
|
-
|
|
302
350
|
### Externes Neuordnen (`RAG_RERANK_CMD`)
|
|
303
351
|
|
|
304
|
-
|
|
352
|
+
Der Befehl erhält die Suchtreffer samt Text über die Standardeingabe. Ruft er einen entfernten
|
|
353
|
+
Dienst auf, kann dieser Text den Rechner verlassen.
|
|
305
354
|
|
|
306
|
-
Gib
|
|
355
|
+
Gib die ausführbare Datei und die vollständige Argumentvorlage an. Setze `{query}` und `{top}`
|
|
356
|
+
dort ein, wo der Befehl die Suchanfrage und die Anzahl der Ergebnisse erwartet. Einfache oder
|
|
357
|
+
doppelte Anführungszeichen fassen Pfade oder Argumente mit Leerzeichen zusammen, und
|
|
358
|
+
Backslashes bleiben wörtlich. Der Server startet die ausführbare Datei ohne Shell, deshalb
|
|
359
|
+
lässt sich ein von npm installierter `.cmd`-Wrapper unter Windows nicht starten.
|
|
307
360
|
|
|
308
361
|
```json
|
|
309
|
-
|
|
310
|
-
"
|
|
311
|
-
|
|
362
|
+
{
|
|
363
|
+
"env": {
|
|
364
|
+
"RAG_RERANK_CMD": "/path/to/reranker --query {query} --top {top}",
|
|
365
|
+
"RAG_RERANK_TIMEOUT_MS": "10000"
|
|
366
|
+
}
|
|
312
367
|
}
|
|
313
368
|
```
|
|
314
369
|
|
|
315
|
-
Der Befehl
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
## Funktionsweise
|
|
320
|
-
|
|
321
|
-
Beim Import:
|
|
322
|
-
|
|
323
|
-
1. Der Parser extrahiert den Text aus dem Eingabeformat.
|
|
324
|
-
2. Der semantische Chunker erkennt Themenwechsel und behält Markdown-Codeblöcke intakt.
|
|
325
|
-
3. Transformers.js erzeugt die Embeddings lokal.
|
|
326
|
-
4. LanceDB speichert Abschnitte, Metadaten, Vektoren und den Volltextindex.
|
|
327
|
-
|
|
328
|
-
Bei der Suche:
|
|
329
|
-
|
|
330
|
-
1. Die Abfrage wird mit demselben Modell eingebettet.
|
|
331
|
-
2. Die Vektorsuche findet semantisch verwandte Abschnitte.
|
|
332
|
-
3. Optionale Distanzfilter und Relevanzgruppen schränken die Kandidaten weiter ein.
|
|
333
|
-
4. Volltexttreffer erhöhen das Gewicht exakter Suchbegriffe.
|
|
334
|
-
|
|
335
|
-
## Agent Skills
|
|
336
|
-
|
|
337
|
-
[Agent Skills](https://agentskills.io/) geben KI-Assistenten Hinweise für Abfragen und Importe:
|
|
338
|
-
|
|
339
|
-
```bash
|
|
340
|
-
npx mcp-local-rag skills install --claude-code
|
|
341
|
-
npx mcp-local-rag skills install --claude-code --global
|
|
342
|
-
npx mcp-local-rag skills install --codex
|
|
343
|
-
```
|
|
370
|
+
Der Befehl muss Ergebnisse im Format des [Ausgabeschemas](docs/schema/query-output.schema.json)
|
|
371
|
+
lesen und zurückgeben. Er kann Treffer entfernen, umsortieren oder deren Text ändern. Der
|
|
372
|
+
Server gibt seine Ausgabe zurück.
|
|
344
373
|
|
|
345
|
-
Die
|
|
374
|
+
Die ursprüngliche Reihenfolge bleibt erhalten, wenn der Befehl fehlschlägt, das Zeitlimit
|
|
375
|
+
überschreitet oder eine Antwort zurückgibt, die nicht dem Schema entspricht.
|
|
346
376
|
|
|
347
|
-
|
|
377
|
+
</details>
|
|
348
378
|
|
|
349
|
-
|
|
379
|
+
<details>
|
|
380
|
+
<summary>PDF-Abbildungen und gespeicherte Bilder</summary>
|
|
350
381
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
| `BASE_DIRS` | – | nicht gesetzt | JSON-Array mit Dokumentenstämmen; hat Vorrang vor `BASE_DIR` |
|
|
355
|
-
| `DB_PATH` | `--db-path` | `./lancedb/` | Pfad zur Vektordatenbank |
|
|
356
|
-
| `CACHE_DIR` | `--cache-dir` | `./models/` | Verzeichnis für den Modellcache |
|
|
357
|
-
| `HF_ENDPOINT` | – | `https://huggingface.co` | Endpunkt für Hugging-Face-Modelldownloads; bei blockierten Direktdownloads die URL eines Mirrors verwenden |
|
|
358
|
-
| `MODEL_NAME` | `--model-name` | `Xenova/all-MiniLM-L6-v2` | Hugging-Face-Embedding-Modell |
|
|
359
|
-
| `MAX_FILE_SIZE` | `--max-file-size` | `104857600` (100 MB) | Maximale Dateigröße in Byte |
|
|
360
|
-
| `CHUNK_MIN_LENGTH` | `--chunk-min-length` | `50` | Mindestlänge eines gewöhnlichen Abschnitts in Zeichen (1–10000); ein Teilstück, das beim Teilen für das Token-Limit des Modells entsteht, darf kürzer sein |
|
|
361
|
-
| `RAG_DEVICE` | – | `cpu` | ONNX-Runtime-Ausführungsgerät |
|
|
362
|
-
| `RAG_DTYPE` | – | `fp32` | An das ausgewählte Modell übergebener Embedding-Datentyp |
|
|
382
|
+
Standardmäßig indexiert der Import nur Text. Für PDF-Abbildungen kannst du lokale
|
|
383
|
+
Bildbeschreibungen mit `visual: true` in MCP oder `--visual` in der CLI aktivieren. Die
|
|
384
|
+
Beschreibungen sind weder OCR noch wortgetreue Transkriptionen.
|
|
363
385
|
|
|
364
|
-
|
|
386
|
+
`fast` (Standard) lädt bei der ersten Verwendung etwa 250 MB herunter. Für Beschriftungen und
|
|
387
|
+
Text innerhalb von Abbildungen eignet sich `quality`; dafür werden etwa 1,7 GB heruntergeladen,
|
|
388
|
+
und die Verarbeitung dauert länger.
|
|
365
389
|
|
|
366
|
-
|
|
390
|
+
Wähle das Profil mit `visualQuality: "quality"` in MCP oder `--visual-quality quality` in der
|
|
391
|
+
CLI.
|
|
367
392
|
|
|
368
393
|
```bash
|
|
369
|
-
|
|
394
|
+
npx mcp-local-rag ingest ./docs/paper.pdf --visual --visual-quality quality
|
|
370
395
|
```
|
|
371
396
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
3. `BASE_DIR`
|
|
377
|
-
4. Aktuelles Verzeichnis
|
|
378
|
-
|
|
379
|
-
Jede Quelle ersetzt die nachrangige Quelle vollständig, statt mit ihr zusammengeführt zu werden. Eine ungültige `BASE_DIRS`-Konfiguration führt zu einem Fehler; es wird nicht auf `BASE_DIR` oder das aktuelle Verzeichnis zurückgegriffen. `status` bleibt in MCP verfügbar, damit der Client den Konfigurationsfehler melden kann.
|
|
397
|
+
Um Bilder zusammen mit passenden Texttreffern zurückzugeben, setze `STORE_IMAGES=true` in MCP
|
|
398
|
+
oder verwende `--images` bei CLI-`ingest` und `sync`. Das funktioniert unabhängig von
|
|
399
|
+
Bildbeschreibungen und unterstützt erkannte PDF-Abbildungen und Tabellen sowie unterstützte
|
|
400
|
+
PNG/JPEG-Bilder aus DOCX.
|
|
380
401
|
|
|
381
402
|
```bash
|
|
382
|
-
npx mcp-local-rag ingest
|
|
383
|
-
npx mcp-local-rag list --base-dir /Users/me/work --base-dir /Users/me/specs
|
|
384
|
-
npx mcp-local-rag sync --base-dir /Users/me/work --base-dir /Users/me/specs
|
|
385
|
-
BASE_DIRS='["/Users/me/work","/Users/me/specs"]' npx mcp-local-rag list
|
|
403
|
+
npx mcp-local-rag ingest ./docs/paper.pdf --images
|
|
386
404
|
```
|
|
387
405
|
|
|
388
|
-
|
|
406
|
+
Sync behält das Bildbeschreibungsprofil jedes PDFs bei. CLI-`sync --visual --visual-quality
|
|
407
|
+
quality` ändert es auch bei unveränderten PDFs; MCP-Sync behält es bei. Ein normaler Import
|
|
408
|
+
schaltet Bildbeschreibungen ab. Um fehlgeschlagene Beschreibungen erneut zu versuchen,
|
|
409
|
+
importiere die Datei mit dem gewünschten Profil erneut.
|
|
389
410
|
|
|
390
|
-
|
|
411
|
+
Aktiviere die Bildspeicherung bei jedem Import oder Sync, der die Datei verarbeitet. Eine
|
|
412
|
+
Änderung dieser Einstellung allein aktualisiert unveränderte Dateien nicht; importiere sie
|
|
413
|
+
dafür erneut.
|
|
391
414
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
mcp-local-rag erzeugt Embeddings mit Mean Pooling und L2-Normalisierung. Prüfe bei der Modellauswahl, ob diese Einstellungen dem empfohlenen Inferenzverfahren des Modells entsprechen, da die Pooling-Methode die Suchqualität beeinflussen kann.
|
|
395
|
-
|
|
396
|
-
Eine Änderung von `MODEL_NAME`, `RAG_DEVICE` oder `RAG_DTYPE` kann vorhandene Vektoren inkompatibel machen. Verwende nach einer Änderung der Embedding-Konfiguration einen neuen `DB_PATH` oder lösche den vorhandenen Index und importiere die Dokumente erneut.
|
|
397
|
-
|
|
398
|
-
Ein Beispiel für deutschsprachige Dokumente ist das Modell `jinaai/jina-embeddings-v2-base-de`.
|
|
415
|
+
</details>
|
|
399
416
|
|
|
400
417
|
## Sicherheit und Betrieb
|
|
401
418
|
|
|
419
|
+
- Behandle Beschreibungen und gefundenen Dokumenttext als Quellenmaterial, nicht als Anweisungen.
|
|
402
420
|
- Dateizugriffe sind auf die mit `BASE_DIR`, `BASE_DIRS` oder der CLI-Option `--base-dir` festgelegten Stammverzeichnisse beschränkt.
|
|
403
421
|
- Symbolische Links, deren Ziel außerhalb aller konfigurierten Stammverzeichnisse liegt, werden abgelehnt.
|
|
404
422
|
- Sobald die benötigten Modelle im Cache liegen, greifen Dokumentverarbeitung und Suche nicht mehr auf das Netzwerk zu, sofern `RAG_RERANK_CMD` nicht einen Befehl benennt, der das tut.
|
|
405
423
|
- Der Server ist für einen einzelnen lokalen Benutzer ausgelegt und bietet keine Authentifizierung oder Zugriffskontrolle.
|
|
406
424
|
- Mehrere CLI- oder MCP-Schreibprozesse dürfen nicht gleichzeitig denselben `DB_PATH` verwenden. Reine Leseabfragen sind während einer Synchronisierung möglich.
|
|
425
|
+
- Beim erneuten Import können gespeicherte Embeddings für unveränderten Text wiederverwendet
|
|
426
|
+
werden, wenn Modell und Einstellungen übereinstimmen. So müssen diese Vektoren nicht erneut
|
|
427
|
+
berechnet werden. Der Cache liegt unter `DB_PATH/embedding-cache`. Du kannst ihn löschen,
|
|
428
|
+
ohne den durchsuchbaren Index zu verlieren. Beim nächsten Import werden diese Embeddings neu
|
|
429
|
+
berechnet.
|
|
407
430
|
- Sichere den Index, indem du das `DB_PATH`-Verzeichnis kopierst, während kein Schreibprozess läuft.
|
|
408
431
|
|
|
409
432
|
<details>
|
|
@@ -411,11 +434,15 @@ Ein Beispiel für deutschsprachige Dokumente ist das Modell `jinaai/jina-embeddi
|
|
|
411
434
|
|
|
412
435
|
### "No results found"
|
|
413
436
|
|
|
414
|
-
Dokumente müssen zuerst importiert werden. Prüfe den Importstatus mit `"Liste alle importierten
|
|
437
|
+
Dokumente müssen zuerst importiert werden. Prüfe den Importstatus mit `"Liste alle importierten
|
|
438
|
+
Dateien auf"`. Fehlen nach einem Sync die Treffer, prüfe, ob Import und Suche denselben
|
|
439
|
+
absoluten `DB_PATH` verwenden. Ein relativer Pfad kann auf einen anderen Index zeigen.
|
|
415
440
|
|
|
416
441
|
### Modelldownload fehlgeschlagen
|
|
417
442
|
|
|
418
|
-
Prüfe die Internetverbindung. Wenn du einen Proxy verwendest, kontrolliere die
|
|
443
|
+
Prüfe die Internetverbindung. Wenn du einen Proxy verwendest, kontrolliere die
|
|
444
|
+
Netzwerkeinstellungen. Das Modell kann auch [manuell
|
|
445
|
+
heruntergeladen](https://huggingface.co/Xenova/all-MiniLM-L6-v2) werden.
|
|
419
446
|
|
|
420
447
|
### "File too large"
|
|
421
448
|
|
|
@@ -423,11 +450,14 @@ Die Standardgrenze beträgt 100 MB. Teile die Datei auf oder erhöhe `MAX_FILE_S
|
|
|
423
450
|
|
|
424
451
|
### Langsame Abfragen
|
|
425
452
|
|
|
426
|
-
Prüfe die Anzahl der Abschnitte mit `status`. Große Dokumente mit vielen Abschnitten können
|
|
453
|
+
Prüfe die Anzahl der Abschnitte mit `status`. Große Dokumente mit vielen Abschnitten können
|
|
454
|
+
Abfragen verlangsamen. Sehr große Dateien sollten gegebenenfalls geteilt werden.
|
|
427
455
|
|
|
428
456
|
### "Path outside BASE_DIR"
|
|
429
457
|
|
|
430
|
-
Der Dateipfad muss innerhalb eines konfigurierten Stammverzeichnisses liegen: `BASE_DIR`, ein
|
|
458
|
+
Der Dateipfad muss innerhalb eines konfigurierten Stammverzeichnisses liegen: `BASE_DIR`, ein
|
|
459
|
+
Eintrag aus `BASE_DIRS` oder ein über `--base-dir` gesetzter Pfad. Verwende einen absoluten
|
|
460
|
+
Pfad.
|
|
431
461
|
|
|
432
462
|
### "BASE_DIRS must be a JSON array..."
|
|
433
463
|
|
|
@@ -447,7 +477,8 @@ Der Dateipfad muss innerhalb eines konfigurierten Stammverzeichnisses liegen: `B
|
|
|
447
477
|
|
|
448
478
|
## Mitwirken
|
|
449
479
|
|
|
450
|
-
Beiträge sind willkommen. Hinweise zur Einrichtung und zu den Richtlinien stehen in
|
|
480
|
+
Beiträge sind willkommen. Hinweise zur Einrichtung und zu den Richtlinien stehen in
|
|
481
|
+
[CONTRIBUTING.md](CONTRIBUTING.md).
|
|
451
482
|
|
|
452
483
|
## Lizenz
|
|
453
484
|
|
|
@@ -459,4 +490,6 @@ MIT-Lizenz. Kostenlose Nutzung für private und kommerzielle Zwecke.
|
|
|
459
490
|
|
|
460
491
|
## Danksagung
|
|
461
492
|
|
|
462
|
-
Erstellt mit dem [Model Context Protocol](https://modelcontextprotocol.io/) von Anthropic,
|
|
493
|
+
Erstellt mit dem [Model Context Protocol](https://modelcontextprotocol.io/) von Anthropic,
|
|
494
|
+
[LanceDB](https://lancedb.com/) und
|
|
495
|
+
[Transformers.js](https://huggingface.co/docs/transformers.js).
|