Durable agent memory over a markdown vault: bitemporal facts, timelines, hybrid graph search.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A temporal knowledge engine for markdown vaults.
It indexes, links, remembers, forgets, and dreams β locally, over files you own.
Quickstart Β· What it does Β· CLI Β· Agent memory Β· Benchmarks Β· How it works Β· Research
Most knowledge tools are write-only. You capture diligently, the vault grows, and six months later you can't find the thing you know you wrote β because retrieval is keyword search over prose, nothing ever resurfaces on its own, and nothing notices when what you wrote last year stopped being true.
Loreweave is the layer that fixes that. Point it at a folder of markdown (Obsidian or plain) and it builds a knowledge graph, a bitemporal fact store, and a memory model over your notes β then hands them to you through a CLI and to your AI agents through MCP.
Three guarantees, enforced by the code rather than promised:
lore/. The vault is the source of truth β the index is a cache you can
delete at any time and rebuild identically (there's a test for that).git diff.Zero configuration and no network: out of the box it runs on BM25 + knowledge-graph spreading activation. Add local embeddings when you want them:
Pick mxbai-embed-large (670 MB) for quality or nomic-embed-text (274 MB) when disk
and indexing speed matter more β required task prefixes are applied automatically for
both, and for the E5, BGE and Arctic families. The measured difference between the two
is in Benchmarks. No embedding provider means lexical + graph retrieval,
still fully functional.
Works with non-English vaults: Chinese, Japanese and Korean text is segmented per character so it is searchable at all, and other scripts index as written.
1. Knowledge that has a timeline. Facts are bitemporal: when they were true in the
world (valid_from/valid_until) and when the system learned them (recorded_at).
Contradictions supersede rather than overwrite, so history stays queryable.
(lore and loreweave are the same binary β npm i -g loreweave gives you both;
npx loreweave works without installing.)
Both time axes are queryable, which is what makes it bitemporal rather than merely
historical. --as-of asks what was true then; --as-known-at asks what was
believed then. They disagree exactly when you learn something after the fact β which
is when you most need to reconstruct what a past decision was actually based on:
Which fact wins is decided deterministically (newest valid-time, provenance as tiebreak) β never by asking a language model which one looks fresher. And the whole history of anything is one command β every value change merged chronologically with the dated prose that mentions it:
Temporal-graph systems build this by running an LLM over every document at ingestion. Here the supersede chain has been maintained all along, so it is a read-side join: no LLM, no network, same answer every time.
2. Retrieval that follows connections, not just words. Queries fuse BM25, dense similarity (when configured), and Personalized PageRank over the vault's own graph β wiki-links, shared entities, tags, co-occurrence. Two-hop neighbors surface even when they share no vocabulary with your query, and every result tells you why:
3. Memory with dynamics. Every passage carries FSRS-style stability and retrievability β a power-law forgetting curve. Passages that actually get used (not merely retrieved) decay slower; important-but-fading knowledge gets surfaced for review instead of silently rotting. Nothing is ever deleted.
4. It dreams. lore dream is an idle-time consolidation pass that reviews the vault
and reports duplicate passages, contradicted facts, stale knowledge, missing links
between notes that clearly belong together, and orphans. With --apply it writes a
digest and a review queue β append-only, under lore/. It never rewrites your prose:
LLM-driven whole-file rewriting is a documented failure mode β each rewrite quietly
drops details until the file collapses to mush β so the architecture forbids it.
5. Questions retrieval can't answer. Counting, grouping, and date-range queries run as deterministic SQL over the fact store, not as vibes over embeddings:
6. Facts come from your notes, not from a form. Nobody hand-writes
- [fact] X :: y :: z, so the extractor mines the conventions vaults already use:
Only unambiguous field syntax is accepted automatically. Prose formatting like
- **Owner:** Priya is precise on entity notes and noisy on report notes, so it is
opt-in (facts.extract: "all") β or an agent can review candidates via
lore_propose_facts and assert the real ones. Judgement stays out of the index.
7. Time means when it happened, not when you saved the file. --since and
--until filter on content time β frontmatter dates, dated filenames
(2025-03-14-standup.md), or dates in the text β falling back to file mtime only when
a note carries no date of its own. lore watch keeps the index current so you never
have to remember to reindex.
8. Built for agents. An MCP server exposes 15 typed tools so Claude Code, Cursor,
or any MCP client can use your vault as durable memory. Session continuity is a query,
not a paraphrase β lore resume returns exactly what changed since the agent last
connected, computed from record time:
Alternatives that summarize the previous session with an LLM inject a paraphrase; this is a deterministic diff. Full setup in Agent memory.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/loreweave)<a href="https://allmcps.com/mcp/loreweave"><img src="https://allmcps.com/api/badge/loreweave?style=directory" alt="Loreweave on AllMCPs" /></a>