Labsco
MCP SERVER

Local Context Memory MCP

by cunicopia-dev

Persistent memory for any MCP client, stored on your own hardware — SQLite plus FAISS for one person, PostgreSQL plus pgvector for domains and teams.

Agent Memory
Summary
Domain separation is the reason to pick the heavier build.

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.

What it is

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.

What you get
  • 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
Requirements

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.

Setup effort

One command — docker run --rm -i -v ./memory-data:/app/data cunicopia/local-memory-mcp:sqlite