Personal memory system for AI agents. MCP-first, self-hosted, SQLite-backed.
# Install
pip install mcp uvicorn
# Run
export MEMORY_OS_TOKEN=your-token
python3 server/server.py
# Wire into Claude Code
claude mcp add --transport http memory http://localhost:8787/sse \
--header "Authorization: Bearer your-token" --scope user
| Tool |
Description |
briefing() |
Session-start summary, ≤600 tokens. Profile + entities + notices. |
search(query) |
FTS5 over stored facts. |
read(entity) |
All facts for one entity. |
remember(entity, body, tier) |
Store a fact. Max 500 chars. |
log_event(kind, body) |
Raw observation (no fact created). |
- Store: SQLite (WAL mode), FTS5 for search. Append-only facts.
- Transport: Streamable HTTP, port 8787, SSE + POST.
- Auth: Static bearer token from
MEMORY_OS_TOKEN env.
- Export: Markdown per entity, committed to git by consolidation daemon.
- Consolidation: Nightly at 03:00 — distills events into durable facts, detects contradictions and deadlines.
| Track |
Status |
| T0 — Scaffold + store |
✅ 6/6 tests pass |
| T1 — MCP server |
✅ 5 tools, bearer auth, briefing budget |
| T2 — Consolidation daemon |
✅ consolidate.sh + prompt + validator |
| T3 — Ingestion |
✅ git watcher + inbox watcher |
| T4 — Deployment |
🚧 systemd units, client wiring (see daemon/) |