The interesting design choice is forgetting: notes you stop reading get compressed rather than kept at full length, which is what stops a growing library from eating a growing share of every context window. Everything stays plain Markdown, so leaving costs you nothing. One practical note from the README itself — PyPI lags the source tree, so the newest build comes from the repository rather than from `pip install`.
A local knowledge base an AI agent can read, write and maintain. Notes are plain Markdown on your disk — syncable over Drive, iCloud or git, portable between agents — with a rebuildable index alongside them for search. The vault is the source of truth; the index can be regenerated at any time.
- One command that ingests anything: `save_article` takes a URL or a PDF, converts it to Markdown, OCRs every figure, embeds it, and auto-links it to related notes
- Search over both text and images — hybrid BM25 plus semantic over note text, and a separate figure search that returns the exact panel across the whole library — `search_notes`, `search_figures`
- Note authoring that files itself: create, update or append, with filing, indexing and wikilinking handled for you — `new_note`, `update_note`, `append_to_note`
- A session-start call that reloads goals, top-ranked notes and accumulated rules, so a new conversation begins from a dense checkpoint rather than blank — `get_context`
- Compression that runs on the vault itself: Ebbinghaus ranking pushes stale notes down and `vault_sleep` compresses the low-activity ones, keeping recall cheap as the library grows
- A filing manual served to any agent on request, so every agent files things the same way without being taught again — `get_agent_instructions`
- Setup and maintenance calls: `init_vault` to verify a fresh install, `sync_index` to rebuild the index from the Markdown
- The README names these as core; it points at a full reference covering 30+ tools
No account and no key for the default setup. Python ≥ 3.11. Install `mcp-second-brain` from PyPI, then `playwright install chromium` for the page fetching, and point `SECOND_BRAIN_PATH` at the directory you want the vault in — it and the templates are created on first run. The module launches as `python -m mcp_second_brain` over stdio (0.2.0 in pyproject). The index is DuckDB by default and entirely offline; Postgres with pgvector is the alternative when you want one central vault across machines. Figure OCR uses Claude Vision, and search falls back to BM25 when nothing external is reachable.
One command — pip install mcp-second-brain
