Both builds remember; only the PostgreSQL one keeps work, health and personal memory in separate contexts an agent can switch between, which is the difference between a memory store and a memory pile. Start on the SQLite image — one command, one directory — and move when you need isolation or concurrent access. Ollama is worth installing either way; without it, search is keyword-only.
A memory server you host yourself, in two interchangeable builds. The SQLite + FAISS build is a single directory with no database server. The PostgreSQL + pgvector build adds domain segmentation — separate memory contexts for work, health, personal — and concurrent access. Both expose the same core tools; both run as self-contained Docker images.
- Facts written into memory with an optional source and importance, indexed for semantic search as they land — `store_memory`
- Stored memories changed without losing their place in the index — `update_memory`
- Relevant memories retrieved by meaning or by keyword, with a limit you set — `search_memories`
- On the PostgreSQL build, separate contexts you can switch between and enumerate — `list_memory_domains`, with `domain` accepted by the store and search calls
- Memory reachable as a resource without a tool call: `memory://query` on SQLite, `memory://domain/query` on PostgreSQL
- A prompt that turns a set of retrieved memories into a structured summary — `summarize_memories`
- Graceful degradation: with Ollama present, search is vector-based; without it, the system falls back to text search rather than failing
Docker, or Python 3.12+ for a local install. The quickest path is one command with a volume for your data — `docker run --rm -i -v ./memory-data:/app/data cunicopia/local-memory-mcp:sqlite`, or the `:postgres` tag, which brings its own database. Ollama with `nomic-embed-text` is optional but recommended; without it you get keyword search instead of semantic. Configuration is by environment: `OLLAMA_API_URL` (default `http://localhost:11434`), `OLLAMA_EMBEDDING_MODEL`, and `MCP_DATA_DIR` on SQLite. The PostgreSQL build needs `POSTGRES_PASSWORD` and takes `DEFAULT_MEMORY_DOMAIN`; if you install it manually rather than via the image, change the example user and password in `sql/create_user.sql` — the repository says so in bold, twice.
One command — docker run --rm -i -v ./memory-data:/app/data cunicopia/local-memory-mcp:sqlite
