memo — Claude Code MCP server: what it does, how to install
Local memory for coding agents. Facts and decisions live in files on your disk and come back in later sessions, with no cloud and no API keys.
claude mcp add memo -- uvx mlx-memoWhat memo does
memo keeps project notes as plain .md files and searches them two ways at once. The vector leg runs on MLX for Apple Silicon or sentence-transformers on CPU; the keyword leg is BM25 over FTS5. Both result lists get fused by rank, then an optional MLX cross-encoder reranks them. SQLite is only a derived index — memo reindex rebuilds it from the files, so an edit made by hand survives.
Nothing leaves the machine. Embedder, reranker and model all run in-process, and there is no telemetry. Memories travel only when you point memo sync at a git remote you own. Startup is offline; update checks and auto-update need an explicit opt-in.
The default MCP surface is the agent profile: 43 tools and roughly 9.7k schema tokens, against 165 tools and 30.6k on the full profile. That schema cost is paid every session in every client, so the smaller profile is the one to keep unless you actually need the rest. memo does not turn recall counts into a savings claim — memo roi reports grounded recalls and avoided re-asks, while memo tokens reads the provider's own counters through the context-compression proxy.
What it helps with
- recall which database choice the team settled on weeks ago
- restore project context at the start of a new agent session
- find a note by meaning instead of an exact keyword
- spot a stale fact that now conflicts with a newer decision
- keep notes in git and read them without a special app
Example prompts for the agent
- Save to memory: this project uses Postgres, not Mongo
- Search memory for which database we picked and why
- Show me what changed in our decisions between 2026-01-01 and 2026-03-01
How to install memo
Platform CLI
claude mcp add memo -- uvx mlx-memouvx runs the command named after the package; if the README names another one, use uvx --from mlx-memo <command>
Platform CLI
codex mcp add memo -- uvx mlx-memouvx runs the command named after the package; if the README names another one, use uvx --from mlx-memo <command>
Config file
{
"mcpServers": {
"memo": {
"command": "uvx",
"args": [
"mlx-memo"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from mlx-memo <command>
Config file
{
"servers": {
"memo": {
"type": "stdio",
"command": "uvx",
"args": [
"mlx-memo"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from mlx-memo <command>
Platform CLI
gemini mcp add memo uvx mlx-memouvx runs the command named after the package; if the README names another one, use uvx --from mlx-memo <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about memo
How do I install memo in Claude Code?
Run claude mcp add memo -- uvx mlx-memo. The server starts through uvx, so there is no separate install step.
What does memo do?
It gives an agent persistent memory. Facts and decisions sit in .md files, retrieval combines vectors with BM25, and one relevant memory is injected before the model answers.
Does memo need API keys or a cloud service?
No. The embedder, reranker and model run in-process on your machine, and no telemetry is sent. A memory leaves the computer only if you aim memo sync at your own git remote.