Add Knowledgebase MCP server — persistent memory for Claude conversations
PostgreSQL-backed knowledge store with hybrid search: - Full-text search via tsvector (always available) - Semantic reranking via Voyage AI embeddings + Python cosine similarity - Tables: kb_memories, kb_sessions, kb_messages - Tools: store_memory, store_conversation, search, get_context, get_recent, stats Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,5 +10,7 @@
|
||||
- [Graph email import](project_graph_email_import.md) — import JNJ emailů do schránky vladimir.buzalka@buzalka.cz přes Graph API
|
||||
- [Memory sync přes Giteu](setup_memory_sync.md) — paměť je v `claude-memory/` v janssen repu, junction + git push synchronizuje mezi PC
|
||||
- [MCP soubory](project_mcp_soubory.md) — MCP server nad PG fulltextem + Mongo metadaty pro soubory studií (search/read/duplicates/by_author/...)
|
||||
- [Knowledgebase MCP](project_knowledgebase_mcp.md) — persistentní paměť konverzací/znalostí; PG+tsvector+cosine; nástroje: get_context/store_memory/store_conversation/search
|
||||
- [MCP emaily](project_mcp_emaily.md) — MCP server nad PG fulltextem + Mongo emailů z Graph importu (9 schránek, ~268k mailů; search/read_email/by_sender/conversation_thread/find_attachment/...)
|
||||
- [Python-runner pipeline](project_python_runner.md) — Docker kontejner na Unraidu, email pipeline 2×/den, auto-install deps, report z reports@buzalka.cz
|
||||
- [Claude Code learning path](project_claude_learning.md) — Level 2 Intermediate, mezery: Skills/Subagenty/Hooks/Print mode, tutoriál v `claude-howto/`
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
name: project-knowledgebase-mcp
|
||||
description: "Knowledgebase MCP server — persistentní paměť pro Claude konverzace a znalosti, PostgreSQL, Voyage AI embeddingy"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: project
|
||||
originSessionId: 31aa5741-7484-4b3c-b608-1a5833b91602
|
||||
---
|
||||
|
||||
Knowledgebase MCP server pro persistentní paměť konverzací a znalostí.
|
||||
|
||||
**Why:** Claude má statická file-based memories v claude-memory/, ale bez fulltextového/sémantického vyhledávání. Tento systém umožňuje efektivní retrospektivní dotazy přes všechny minulé konverzace a uložené znalosti.
|
||||
|
||||
**How to apply:** Na začátku relevantní konverzace zavolej `get_context("téma")` pro orientaci. Na konci konverzace zavolej `store_conversation(...)` se summary a `key_memories`. Fakta/rozhodnutí ukládej průběžně přes `store_memory(...)`.
|
||||
|
||||
## Technický stack
|
||||
|
||||
- **Server:** `U:/janssen/Knowledgebase/server.py` (FastMCP, stdio transport)
|
||||
- **DB:** PostgreSQL `knowledgebase` @ 192.168.1.76:5432
|
||||
- **Tabulky:** `kb_memories`, `kb_sessions`, `kb_messages`
|
||||
- **Vyhledávání:** Full-text (tsvector, vždy) + Python-side cosine similarity (pokud VOYAGE_API_KEY)
|
||||
- **Embeddingy:** Voyage AI voyage-3-lite (1024-dim) — volitelné, bez nich funguje FTS
|
||||
|
||||
## MCP nástroje
|
||||
|
||||
- `store_memory(content, mem_type, title, tags, project, importance)` — uloží fakt/rozhodnutí/preferenci
|
||||
- `store_conversation(messages, session_id, title, summary, project, key_memories)` — uloží celou konverzaci
|
||||
- `search(query, types, project, tags, limit)` — hybridní vyhledávání
|
||||
- `get_context(topic, project)` — kontext pro novou konverzaci (search + preferences)
|
||||
- `get_recent(limit, mem_type, project)` — nejnovější záznamy
|
||||
- `list_sessions(limit, project)` — přehled konverzací
|
||||
- `get_session(session_id)` — detail konverzace s messages
|
||||
- `update_memory(id, ...)` — aktualizace
|
||||
- `delete_memory(id)` — soft/hard delete
|
||||
- `stats()` — přehled obsahu DB
|
||||
|
||||
## mem_type hodnoty
|
||||
|
||||
fact | decision | preference | summary | document | email | project | person | other
|
||||
|
||||
## Konfigurace
|
||||
|
||||
MCP server je zaregistrován v `claude_desktop_config.json` jako `"knowledgebase"`.
|
||||
Pro Voyage AI embeddingy nastav `VOYAGE_API_KEY` v env sekci configu.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. `get_context("téma")` na začátku session
|
||||
2. `store_memory(...)` pro klíčová fakta/rozhodnutí průběžně
|
||||
3. `store_conversation(messages, session_id, summary, key_memories=[...])` na konci session
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
name: python-runner
|
||||
description: "Docker kontejner na Unraidu s email pipeline — architektura, závislosti, scheduling, hlášení"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: project
|
||||
originSessionId: ec13e72a-c0a8-4862-93d9-6da9b29b82f3
|
||||
---
|
||||
|
||||
Email pipeline běží v Docker kontejneru `python-runner` na Unraidu (192.168.1.76).
|
||||
Skripty jsou v `/mnt/user/Scripts/` (volume → `/scripts/`).
|
||||
|
||||
**Pipeline** spouštěna 2× denně cronem (`0 6,18 * * *`) přes `run_pipeline.sh`:
|
||||
- `1b` — Graph delta sync (nové/změněné emaily → MongoDB)
|
||||
- `3` — Download attachments
|
||||
- `4` — Unwrap S/MIME
|
||||
- `5` — Enrich fulltext → PostgreSQL
|
||||
|
||||
**Wrapper:** `0_run_pipeline_v1.0.py`
|
||||
- Na začátku auto-install: `pip install -q -r /scripts/requirements.txt` — odolné vůči recreate kontejneru
|
||||
- Na konci email report: HTML tabulka výsledků z `reports@buzalka.cz` → `vladimir.buzalka@buzalka.cz`; při chybě přiloží log selhavšího kroku
|
||||
|
||||
**Závislosti:** `requirements.txt` v `/scripts/` + v repo `Python-runner/requirements.txt`
|
||||
Klíčové: `msal`, `asn1crypto`, `pymongo`, `psycopg`, `extract-msg`, `beautifulsoup4`
|
||||
|
||||
**Incident 2026-06-05:** kontejner byl recreated → ztraceny balíčky → pipeline padala 24h (kroky 1b/3/4 FAIL s ModuleNotFoundError). Opraveno auto-installem.
|
||||
|
||||
**Knihovna pro odesílání emailů:** `Knihovny/EmailMessagingGraph.py` (kopie na serveru `/scripts/EmailMessagingGraph.py`)
|
||||
- SENDER: `reports@buzalka.cz`, tenant TrialHelp s.r.o.
|
||||
|
||||
**Logy:** `/mnt/user/Scripts/logs/pipeline_YYYYMMDD_HHMM.log`, symlink `pipeline_latest.log`, retence 30 dní.
|
||||
|
||||
Souvisí s [[graph-email-import]], [[project-mcp-emaily]].
|
||||
Reference in New Issue
Block a user