Git Repository
Personal RAG
Personal RAG speichert Texte und strukturierte Fakten lokal in SQLite, durchsucht sie mit FTS5 und stellt sie über MCP per stdio oder Streamable HTTP bereit.
https://zanvex.de/git/personal-rag.gitpersonal-rag
Tiny writable personal knowledge base exposed through MCP.
Features
- Single Go process
- SQLite database (
knowledge.db) - SQLite FTS5 full-text search
- MCP over stdio
- Separate raw text and structured facts
- No embeddings, vector DB, Docker, Redis or external services
MCP tools
knowledge_add_textknowledge_add_factknowledge_searchknowledge_update(Titel, Inhalt und Tags eines Texteintrags per ID ändern)knowledge_deleteknowledge_stats
The write tools explicitly say they should only be used when the user asks to persist knowledge.
Build
.\build.ps1
Das Skript führt die Tests aus und erzeugt ZIP-Archive für Windows, Linux und
macOS auf amd64 und arm64 unter dist/.
Project structure
cmd/personal-rag/ Application source and tests
go.mod Go module definition
README.md Usage documentation
LICENSE MIT license
Run
Expand-Archive .\dist\personal-rag-windows-amd64.zip -DestinationPath .\dist\windows-amd64
.\dist\windows-amd64\personal-rag-windows-amd64.exe
The server talks MCP on stdin/stdout. Do not type into it manually; configure it as a local MCP command in your client.
Optional kann MCP über Streamable HTTP bereitgestellt werden:
./personal-rag --http 0.0.0.0:8080 --db-path /data --auth-token 'change-me'
Alternativ kann das Token über die Umgebung gesetzt werden:
export PERSONAL_RAG_AUTH_TOKEN='change-me'
./personal-rag --http 0.0.0.0:8080 --db-path /data
HTTP-Anfragen müssen Authorization: Bearer <token> mitsenden. Ohne Token startet
der HTTP-Modus nicht. Ohne --http verwendet der Server weiterhin stdio und
benötigt kein Token. TLS und Reverse Proxy werden bei Bedarf extern bereitgestellt.
Für Clients, die keine eigenen Header setzen können, wird alternativ ein exakt passender Token-Pfad akzeptiert:
https://rag.example.com/token=<token>
Der Header ist vorzuziehen, weil URLs von Reverse Proxies und anderen Systemen protokolliert werden können.
By default the DB is knowledge.db in the process working directory. Override it with:
.\dist\windows-amd64\personal-rag-windows-amd64.exe --db-path C:\Users\you\Knowledge
--db-path bezeichnet das Verzeichnis, das knowledge.db enthält. Ein fehlendes
Verzeichnis wird automatisch angelegt. Die bisherige Umgebungsvariable
PERSONAL_RAG_DB (vollständiger Dateipfad) bleibt als Fallback kompatibel.
Beim Hinzufügen wird ein Eintrag mit exakt gleichem Inhalt nicht dupliziert;
stattdessen liefert das Tool die vorhandene ID und already_exists: true zurück.
Suggested MCP policy
- Search freely when personal context could help.
- Write only after an explicit user request such as “merken”, “speichern”, or “ins RAG”.
- Prefer
knowledge_add_factfor stable atomic facts. - Prefer
knowledge_add_textfor notes, project summaries and longer context.
License
MIT
34a1b6ed570c1b2ca3c35460de7a34390ba