Labsco
MCP SERVER

Shared memory for coding agents with provenance — a memory true in one repo stops leaking into another.

Agent Memory
Summary
Memory that knows where it applies.

A memory that was true in another repository is worse than no memory — it sends an agent confidently after an API that does not exist here. Scoping retrieval by provenance, and putting a human between a proposal and canon, is what turns a shared store into something you can leave on.

What it is

A self-hosted memory server your coding agents write into and read from. What separates it from a vector store with a retrieval prompt is the gate: curation decides what is kept, and provenance decides where it is valid, so canon bound to one repository is withheld when you are working in another. Session events arrive through agent lifecycle hooks, get distilled into structured memories, and are surfaced at the start of the next session.

What you get
  • Session grounding — `/brief` loads shared context at session start, and `/brief --post-compact` is a lightweight delta that surfaces only what changed since your last brief
  • The dream pipeline — `/dream` distils session events into structured memories, running at high recall because nothing it produces reaches canon without a human promoting it
  • Search and browse — `/pensieve` over the shared store, with SQLite FTS5 or Postgres full-text behind it, plus a web memory browser at the server root
  • Ingestion and review — `/ingest` takes PDFs, images, git and transcripts; proposals land in a review queue and `/review` shows source, diff, approve and reject before anything becomes canonical
  • Governance — capability-scoped API keys with read, write and dreamer roles, versioning, trusted dreamers, rollback and attribution, with every write landing a `write_audit` row in the same transaction
  • Across machines — `/nats` for real-time cross-device awareness, `/msg` to send tasks and questions between agents, `/update` to push slash commands to every device
  • Project tracking — `/req` keeps a lightweight checklist that shows up in the brief; `/consult` asks for strategic review with your standards injected
Requirements

Your own deployment — Railway, Render, Fly or Cloud Run, or any stateless host with managed Postgres; a container build with podman or docker is one command. `MORI_API_KEY` holds your model provider key in direct mode, with `MORI_MODEL`, `MORI_DREAM_MODEL` and `MORI_FAST_MODEL` choosing which model does the advising, the distillation and the fast checks. Set `MORI_API_KEYS` to give each client a named key — without it the server starts in open mode, which is fine on a private network and not otherwise. `MORI_BRIEF_SCOPE` defaults to `safe`, which is the provenance-routed brief; `all` is the legacy behaviour with no scoping. `MORI_TRUSTED_DREAMERS` names the hostnames allowed to promote memories. In Claude Code the plugin wires the MCP connection, hooks and skills in one step. AGPL-3.0, with commercial licences available.

Setup effort

One command plus a key — docker compose -f deploy/homelab/docker-compose.yml up -d, then supply credentials