MEMO MCP Server
The memo server provides a local-first semantic memory system for AI agents, offering persistent, searchable, and versioned knowledge management via MCP tools. Key capabilities include:
Core Memory Operations
Save memories as Markdown files with optional title, tags, type, and scope
Search with hybrid vector + full-text search, filters by type, date range, and source
Retrieve, list, update, rename, delete, forget, and unforget memories
Search & Retrieval Intelligence
RAG-style Q&A (
memo_ask) — question answering over the corpus with cited sourcesConversational Q&A — multi-turn chat with memory context
Rerank search results using a cross-encoder; embed queries or batches of text
Search tracing for debugging queries
Knowledge Graph
Navigate entity relationships: find paths, explore neighbors, explain connections, and discover communities (optionally includes a code-structure layer)
Session, History & Provenance
Start and track sessions; list/get past sessions
View audit history, record diffs, and memory provenance (version lineage)
Time-travel: query the corpus as it existed at any past date
Automation & Maintenance
Unified briefing: context-rich session-start summary surfacing open loops and crash recovery
Consolidation: detect near-duplicate clusters and propose merges
Autonomous synthesis: a "dream" pipeline for cross-cluster insights, conflict resolution, pruning, and corpus optimization
Contradiction detection: automatically detect and triage conflicting facts
Idle capture: auto-extract insights after inactivity; pop notifications to surface them
Offload bulky payloads (logs, tool outputs) to a reference tier to save context window
Reindex the corpus from Markdown files; lint for quality issues
Advanced Features
Multi-modal ingestion: images and audio made searchable via OCR, VLM captions, and Whisper transcripts
Cross-machine sync via serverless Git; Obsidian vault integration
Token efficiency: compact recall formats, trivial prompt gating, and context compression
Introspection: server version, corpus stats, and embedder profile info

memo
Your coding agent starts every session with amnesia. memo fixes that — 100% on your own machine.
Persistent, searchable memory for Claude Code, Codex, Cursor, Cline, Devin, and OpenCode. No cloud, no API keys, no Ollama, no vector DB to run. And it spends fewer tokens, not more.

Install
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.5.0/install.sh | bashPrefer a package manager? uv tool install mlx-memo · pipx install mlx-memo · brew tap jagoff/memo && brew install mlx-memo
Then:
memo doctor # self-check
memo save 'we use Postgres, not Mongo' # save a decision
memo search 'what database did we pick?' # search by meaningThat's it. Your agents pick it up over MCP automatically — the installer wires every client it finds.
New Mac:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.5.0/install.sh | bash
memo sync bootstrap git@github.com:yourname/memo-sync.gitAgent-managed setup:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.5.0/install.sh | bash
memo doctor --strict-runtimeOn Linux or just want to look around first?
docker run --rm ghcr.io/jagoff/memo:latest memo doctorRelated MCP server: neuromcp
Why this saves you money
Most memory servers add context. memo is built to remove it.
Profile | Tools | Schema tokens |
| 38 | ~3.8k |
| 55 | ~5.0k |
| 159 | ~18k |
The default MCP surface is 38 tools, not 159: about 79% fewer tool schemas. It exposes 38 tools / ~3.8k schema tokens versus 159 tools / ~18k tokens on the full surface — overhead paid every session, in every client.
Ambient recall injects one relevant memory before the model answers. The bundled Claude Code hook caps that injection at ~160 tokens. memo roi reads the real grounding and re-ask ledgers, then estimates accumulated savings with disclosed defaults (350 tokens per grounded recall and 900 per avoided re-ask).
memo roi # value from grounded recalls and avoided re-asks
memo tokens # usage-savings ledgerThree things nothing else does
🕰️ Time-machine — query your knowledge as it was
memo as-of ask "what was the deploy strategy?" --date 2026-02-01
memo diff --from 2026-01-01 --to 2026-03-01Full historical reconstruction by reverse-replaying history.db. Useful when you need to know why past-you made a call, not just what past-you decided.
⚡ Contradiction radar — memory that notices when you change your mind
memo contradict scan # find conflicting facts corpus-wide
memo contradict triage # resolve: fuse / newer-wins / dismissChange a decision and memo flags the now-stale version, so the agent stops reintroducing what you already threw out.
🔮 Dream — it optimizes itself while you sleep
memo dream runA 7-phase nightly pipeline: inventory → mine signals → resolve conflicts → prune stale → synthesize cross-cluster insights → optimize → pre-warm the top-100 query embeddings so tomorrow's recall stays under 200 ms. Every run writes a receipt you can audit. Zero intervention.
How it works
Hybrid retrieval. A vector leg (MLX on Apple Silicon, sentence-transformers on CPU) and a BM25 leg (FTS5, diacritic-folding for Spanish) run in parallel, fuse via Reciprocal Rank Fusion, then go through an optional MLX cross-encoder rerank.
Markdown is the source of truth. Every memory is a plain .md file you can read, grep, and version-control. SQLite is a derived index that rebuilds from the files at any time — hand-edit in Obsidian and your edit wins on the next memo reindex. Nothing is locked in a database you can't open.
Prompts and memories stay on your machine. Embedder, reranker, and LLM all run in-process. No telemetry. Memory travels only if you point memo sync at a git remote you own. Normal startup is fully offline; remote update checks and auto-update require an explicit opt-in. → Privacy and network policy
Also in the box: cross-agent memo resume (reopen any session from any agent), cross-Mac git sync, a knowledge graph with optional codegraph symbol edges, encrypted secret storage, OCR/audio ingestion, evidence packs, outcome learning, and signed federation. → Full feature reference
How it compares
Verified July 2026 against each project's own docs. Corrections welcome — open an issue and I'll fix the table.
memo | ||||||
100% local, no cloud API | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ |
Time-machine (rewind to any date) | ✅ | ❌ | ⚠️ | ❌ | ⚠️ | ⚠️ |
Contradiction detection + resolution | ✅ | ⚠️ | ⚠️ | ❌ | ❌ | ❌ |
Autonomous nightly maintenance | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Token-economy MCP profiles | ✅ | ❌ | ❌ | ⚠️ | ✅ | ❌ |
Markdown / Obsidian as source of truth | ✅ | ❌ | ⚠️ | ❌ | ✅ | ❌ |
✅ first-class · ⚠️ partial, config-gated, or add-on · ❌ absent
Closest comparators are basic-memory (local-first + Obsidian + MCP — same thesis) and cipher (memory for coding agents).
Requirements
Support | |
macOS, Apple Silicon (M1–M4) | Full — MLX embedder + reranker + |
Linux / Ubuntu | Standalone CPU backend — search, recall, save. |
Intel Mac | Unsupported — current PyTorch releases do not ship Python 3.13 wheels for this platform |
Docker | Cross-platform, CPU backend · docs/docker.md |
Python ≥ 3.13 (the installer handles this via uv if you don't have it). First install pulls ~8 GB of models, 5–15 min. Optional: an Obsidian vault — without one, memo uses ~/Documents/memo/.
Docs
Install detail, installer knobs, new-Mac migration | |
Per-client MCP setup (Claude Desktop, Cursor, Cline, Continue) | |
Ambient recall, capture, and tuning | |
Full CLI reference (137 commands) + | |
All | |
Architecture and design notes | |
Privacy and network policy |
All 138 top-level CLI commands
Core: save search ask get edit rename delete list
Recall & Hooks: recall recall-hook context briefing continuity prewarm capture-tick capture-stop interject ask-gaps guard digest
Session & History: history as-of diff record-history session resume reflect mine-history episodes chronicle
Maintenance: reindex maintain review dream consolidate synthesize dedupe retier contradict invalidate temporal compress-context ops
Analysis & Quality: health stats doctor journey-check lint drift analytics eval roi tokens token-savings usefulness gaps outcome profile confidence graduation hype definitive evidence
Knowledge Graph: graph entities entity extract-entities links version related
Advanced Search: embed rerank contextual retrieve context-pack chat chat-ask repo
Import / Export / Sync: import export backup restore sync ingest federation
Visualization: tui dashboard map logs hook-log
Setup & Config: init setup config install-mcp install-watcher uninstall-watcher install-slash install-statusline install-recall-hook install-shell-wrapper install-shims startup-banner migrate migrate-vault migrate-independence update upgrade self-update watch release onboard
Daemons: recall-daemon ingest-daemon maint-daemon embed-daemon idle-daemon
Other: backend-native collaborative feedback query mandate drift sleep-cycle operational ocr-image provenance secret verbatim mcp-command codex-badge debug-recall http-api mine-git token-gate fix undo code-facts code-nudge code-health
Contributing
git clone https://github.com/jagoff/memo && cd memo
uv pip install -e '.[dev]'Issues and PRs welcome — see CONTRIBUTING.md. If memo is useful to you, a ⭐ genuinely helps other people find it.
MIT licensed. Built on Apple MLX, sqlite-vec, and codegraph.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityBmaintenanceBasic Memory is a knowledge management system that allows you to build a persistent semantic graph from conversations with AI assistants. All knowledge is stored in standard Markdown files on your computer, giving you full control and ownership of your data. Integrates directly with Obsidan.mdLast updated173,539AGPL 3.0
- Alicense-qualityAmaintenanceSemantic memory for AI agents — local-first MCP server with hybrid search, knowledge graph, contradiction detection, and plan-then-commit consolidation.Last updated7944AGPL 3.0
- Alicense-qualityDmaintenanceSelf-hosted semantic memory for AI agents. Save worklogs, decisions, and notes via MCP, then recall them across sessions by meaning rather than keyword. Backed by Postgres + pgvector with local embeddings (multilingual-e5-base).Last updated1MIT
- Flicense-qualityBmaintenancePersistent semantic memory MCP server for AI agents with hybrid search, LLM scoring, and decay engine, fully local.Last updated2
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Local-first RAG engine with MCP server for AI agent integration.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jagoff/memo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server