mnemex

mnemex

An MCP server that ingests books into a structured, cross-linked wiki of sources, entities, concepts, and syntheses, managed by an LLM.

Category
Visit Server

README

<div align="center">

🧠 mnemex

Your second brain, curated by an LLM. Books in, structured wiki out.

License: MIT Node MCP

<br>

mnemex demo

</div>


mnemex is a personal knowledge system. You tell an LLM "ingest this book", and it reads the whole thing and files it into a structured, cross-linked wiki of:

  • Sources — books, articles, papers (metadata + chapter summaries + extracted claims)
  • Entities — the people, companies, and tools mentioned
  • Concepts — ideas and frameworks, each with When to use / When NOT to use, cross-links, and a source count
  • Syntheses — multi-source theories you derive ("how do these five books on negotiation actually fit together?")

Everything is plain Markdown, version-controlled, locally hosted, and LLM-readable. It's the opposite of RAG: instead of re-discovering knowledge on every query, the wiki compiles knowledge once and keeps it current. Every ingest makes it richer.

Inspired by Karpathy's LLM Wiki idea — made real and turnkey.


Quick start (≈5 minutes)

curl -fsSL https://raw.githubusercontent.com/Daniil-Sokolskiy/mnemex/main/install.sh | bash

This installs the MCP servers + CLI, scaffolds a wiki at ~/mnemex, and prints setup instructions for your client — Claude Desktop (paste a config block) or Claude Code (run two claude mcp add commands). These are local servers, so the web app (claude.ai) can't use them directly. Wire up your client, then say:

"help me ingest my first book — Meditations by Marcus Aurelius"

Watch index.md grow as the agent reads the book and files it.

<details> <summary>Manual install</summary>

npm install -g @mnemex/library-mcp @mnemex/cli
npx playwright install chromium          # for Anna's Archive search
mnemex init ~/mnemex                  # scaffold the wiki
mnemex doctor                           # verify deps
mnemex mcp install --wiki ~/mnemex    # print setup for Desktop + Claude Code

mnemex mcp install prints copy-paste setup for both Claude Desktop and Claude Code and never edits any config file silently.

</details>


What's in the box

Package What it is
@mnemex/library-mcp MCP server to search + download books from Project Gutenberg and Anna's Archive into your wiki. Includes a Playwright-based Anna's search that works against their current client-side-rendered pages (plain HTTP scraping no longer returns results).
@mnemex/cli mnemex init / doctor / mcp install — scaffold a wiki and wire up the servers.
apps/wiki-template The starter wiki: CLAUDE.md operating manual, page templates, ingest scripts, empty structure.
search via qmd mnemex wires up qmd (local BM25 + vector engine) as the mnemex-search MCP server over your wiki. mnemex setup-search installs + indexes it; the agent then has brain.query for hybrid retrieval.

Downloading from Anna's: free vs paid

Search always works and needs no account. Downloading has two paths:

How Needs
Free The search result includes a download_page_url. Open it in your browser and use Anna's free "slow download" (a short wait timer, sometimes a check). nothing
Automated library_annas_download fetches the file directly into your wiki, no browser. a paid Anna's membership — set ANNAS_ARCHIVE_KEY (your account's secret key)

The automated path uses Anna's fast_download API, which requires a membership key — that's Anna's restriction, not mnemex's. Free downloads exist but go through the browser slow-download page (mnemex can't fully automate that: there's a wait timer and occasionally a check, and bypassing checks is out of scope). So without a key you still get every search result plus a one-click link to grab the file for free.

Project Gutenberg downloads are always free and fully automated — no key, no browser.


How it works

  you: "ingest Atomic Habits"
        │
        ▼
  library-mcp ──► search Gutenberg + Anna's ──► download ──► raw/books/<slug>/book.md
        │
        ▼
  the LLM agent reads CLAUDE.md, then the book, then:
        ├─ writes wiki/sources/Atomic-Habits-Clear-2018.md
        ├─ creates/updates wiki/entities/  (James-Clear, etc.)
        ├─ creates/updates wiki/concepts/  (Habit-Loop, Identity-Based-Habits, …)
        ├─ updates index.md  (counts + catalog)
        └─ appends log.md

The CLAUDE.md in your wiki root is the agent's operating manual — naming conventions, frontmatter schema, the ingest/query/lint workflows, and the relationship vocabulary (Builds on / Subsumes / Contrasted with …).

Methodology

The wiki structure is opinionated. The patterns that make it scale:

  • Two-phase ingest — split content writing (sub-agent) from bookkeeping (parent) to avoid timeouts on big books.
  • Cluster ingest — ingest 5 themed books together with cross-link "sibling hooks" so concepts mature fast.
  • Status lifecyclestubdraftmature (3+ sources, reviewed).

Requirements

  • Node.js ≥ 20
  • pandoc (epub/pdf → markdown)
  • Chromium via Playwright (for Anna's search)
  • An MCP-capable LLM client (Claude Desktop, Claude Code, Cowork, …)

⚠️ Legal

library-mcp includes a client for Anna's Archive, which is subject to ongoing legal action. This project hosts and distributes nothing; you are responsible for compliance with copyright law in your jurisdiction. See docs/annas-disclaimer.md. For a fully copyright-clean workflow, use only the Project Gutenberg tools (~70,000 public-domain texts).

Contributing

PRs welcome — see docs/contributing.md. The Anna's DOM parser in packages/library-mcp/src/annas.ts needs occasional updates when Anna's changes its markup; that's the most common maintenance task.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured