What makes it different
Append-and-supersede
Writes never destroy data. Corrections create typed edges between memories, so the old record stays queryable — including “what did I believe on date X”.
Typed memories
Decisions, commitments, blockers, facts, preferences, patterns, notes, and events each keep their own lifecycle instead of flattening into chat history.
Bi-temporal facts
Facts track both when they were true in the world and when the system learned them, so retrieval can answer “what is true now” and “what was true then”.
The surface
The MCP server exposes 10 tools and 2 prompts over Streamable HTTP — a deliberately small surface designed around jobs to be done, not feature count. The same operations are mirrored on a REST API (/api/v1) for scripts, SDKs, and dashboards.
See the tool reference and prompt reference for full schemas.
Open source
3ngram is open source (Apache 2.0). The memory engine, MCP server, API, and SDK are all Apache 2.0 and fully self-hostable. The 3ngram platform runs additional proprietary cloud-operations code (billing) that is not part of this repository. The full license map lives in LICENSING.md. To get involved, see Contributing.Get started
Quickstart
Connect an MCP client to the 3ngram platform and save your first memory.
Self-host
Run the full stack locally with Docker Compose — Postgres, Redis, and the server.
CLI reference
Use API-key auth from scripts and coding agents.
SDK reference
Call the REST-backed TypeScript client from your own code.
Memory model
How append-and-supersede, typed memories, and bi-temporal facts work.
Scopes
Partition memories into personal, work, and custom scopes.