Project Zurvan
Project Zurvan is a local-first LLM knowledge engine that turns raw documents into a linked, searchable, git-friendly wiki, then exposes that wiki to AI agents via a Model Context Protocol (MCP) server. Inspired by Andrej Karpathy's personal knowledge management gist, Zurvan is designed for researchers, engineers, and agents that need structured long-term memory without cloud lock-in.
The source repository is private. Contact me to request access.
01 / Overview
Knowledge and retrieval
Follow a typed idea from source to agent context
Select a knowledge type to trace its schematic relationship from a source document through retrieval. The labels below describe architecture, not a private-corpus example.
Illustrative schema · no corpus records or retrieval results shownextracted from source material; links accumulate across sources
Claim: retrieved by hybrid search; graph neighbours can add related context
What the selected type means
- Claim
A claim node preserves a statement as structured knowledge linked back to source material.
- Concept
A concept node connects a topic to related knowledge across the local wiki.
- Entity
An entity node represents a named subject that can connect claims and concepts.
- Decision
A decision node records a decision as a typed item that can be retrieved with related context.
This schematic does not claim complete source fidelity, provenance coverage, or retrieval recall. It shows the documented data model and retrieval stages only.
Zurvan’s repository is private; this public-facing schema uses generic labels and contains no corpus records.
Problem
LLM agents lack persistent, structured memory that survives between sessions. Existing RAG pipelines either require cloud infrastructure or lose the relational structure of knowledge: which claim supports which decision, which concept contradicts another. A local-first solution needs to ingest arbitrary documents, preserve knowledge relationships as a graph, and present the result to agents in a queryable, privacy-preserving format.
Solution Overview
- Built a local document ingestion pipeline (MD, PDF, TXT, images) feeding a SQLite-backed knowledge store
- The LLM extraction layer produces typed nodes for claims, concepts, entities, and decisions. The knowledge set grows as the corpus grows
- Hybrid FTS5 + semantic search with graph-neighbour expansion surfaces deep context bundles for agent prompts
- MCP stdio server exposes zurvan_search, zurvan_context, zurvan_remember, zurvan_decision_add, and graph tools to Claude Code and Cursor
- Multi-project federation manages independent vaults with cross-vault search, contradiction detection, and policy drift radar
02 / Evidence
Proof & Verification
- 218 tests passing across 18 completed development phases
- MCP server verified with Claude Code and Cursor client setup guides
- Obsidian vault integration with colour-coded 7-type knowledge graph (claims, concepts, entities, decisions, sessions, contradictions, syntheses)
- Evidence pack → report → review → publish pipeline runs fully offline
- Agent workflow orchestration (preflight / postedit / session close) documented for Claude Code and Codex
03 / Methods
Build
Tech Stack
- Python 3.10+
- SQLite FTS5 (hybrid search)
- MCP stdio server
- OpenAI / Anthropic / Mock LLM providers
- Obsidian-compatible vault layout
- Ingests Markdown, PDF, TXT, and images into a linked, searchable, git-friendly wiki
- The LLM extraction layer produces typed knowledge nodes: claims, concepts, entities, and decisions. The knowledge set grows as sources are added
- Hybrid FTS5 + semantic search with graph-neighbour expansion surfaces dense context bundles for agent prompts
- MCP stdio server exposes zurvan_search, zurvan_context, zurvan_remember, zurvan_decision_add, and graph tools to Claude Code and Cursor
- Multi-project federation supports cross-vault search, contradiction detection, and policy monitoring across independent vaults
- 218 tests passing across 18 completed phases
Secure
- Document content stays in local storage and is not sent to cloud services
- MCP server is read-only by default; write mode requires explicit opt-in flag
- Project paths are stored in ~/.zurvan/projects.json and are never committed to version control
- Mock LLM provider available for safe dev/test without API key exposure
- Agent memory isolated per vault; cross-vault federation requires explicit registration