- Update assistant lists (added Shawn, Watson, David, CASE, AWS SA; modified Scotty/Harper roles) - Reflect new architecture layers: Tool Prompt Snippets and Shared Context - Align repository structure diagram with current filesystem layout
2.9 KiB
2.9 KiB
Mnemosyne
Multimodal personal knowledge base — text, images, and graph-structured content.
- MCP server name:
mnemosyne(runs in the lab; FastMCP at/mcpon its own host) - Prompt snippet: prompts/tools/mnemosyne.md
- Project repo:
/home/robert/git/mnemosyne(full README, architecture docs)
What It Is
Mnemosyne is "the memory of everything you know" — a content-type-aware multimodal knowledge management system built on Neo4j vectors and Qwen3-VL embeddings. Unlike a generic vector store, Mnemosyne knows what kind of thing a document is (a novel, a textbook, an album, a journal entry, a business proposal) and adjusts chunking, embedding, and retrieval accordingly.
It is a retrieval engine, not a synthesis engine. It returns ranked chunks plus metadata; the calling agent does its own synthesis. Architecturally this is intentional — letting the LLM see chunks and pivot mid-search beats pre-digesting answers server-side.
What It's Good For
- Searching the user's personal knowledge base across libraries (fiction, nonfiction, technical, music, film, art, journal, business, finance)
- Multimodal queries — find a book cover, an album sleeve, a screenshot, alongside text
- "Did I read something about X" / "what did I write about Y on what date"
- Pulling source material the user has actually curated, rather than guessing from training data
- Following graph relationships (Author → Book → Topic; Artist → Album → Track)
What It's Not Good For
- General web knowledge — that's Argos
- Anything not already in the KB — Mnemosyne only knows what's been ingested
- Synthesis or "give me the answer" — Mnemosyne returns chunks; the calling agent synthesizes
- Real-time information (status, news) — content is ingested, not live
MCP Tools Exposed
| Tool | Purpose |
|---|---|
search |
Hybrid search (vector + graph + full-text), re-ranked |
get_chunk |
Retrieve the full text of a chunk by ID |
list_libraries |
What libraries exist (fiction, technical, etc.) |
list_collections |
Collections within a library |
list_items |
Items within a collection |
get_health |
Service health probe |
Known Gotchas
- It's retrieval, not answers. A
searchcall returns chunks; the agent then has to read them and form the answer. Don't expect Mnemosyne to "tell you" something. - Library type matters. Searching the fiction library for technical content returns nothing useful. Use
list_librariesfirst if uncertain. - Citations should be preserved. Mnemosyne returns chunk IDs and source metadata — when synthesizing, cite back to the chunk so the user can verify and trace.
- Empty results may mean the index isn't ready. If
setup_neo4j_indexeshasn't been run for a given environment, vector search returns empty results and the app logs a readiness warning. Surface that, don't silently confabulate.