A space carries an ACL with reader, writer and admin roles and a TTL on both the space and each individual grant, so a second agent can be given read access to one slice of memory that expires by itself. The short-term buffer is the other useful seam: a session's scratch notes stay out of the vector store until you flush them.
A Go MCP server providing vector-native memory: a short-term buffer per session, long-term embedded storage, and shared "spaces" that several agents or users can read and write under access control.
- Core memory — `memory.add_short` buffers within a session, `memory.flush` commits the buffer to long-term storage, `memory.store_long` writes straight through, `memory.retrieve_context` pulls back what's relevant to a query
- `memory.embed` returns the vector for a piece of text on its own
- Shared spaces — `spaces.upsert`, `spaces.grant`, `spaces.revoke`, `spaces.list`, with `reader`, `writer` and `admin` roles and a time-to-live on both grants and spaces
- Session sharing — `shared.join`, `shared.leave`, `shared.add_short_to` and `shared.retrieve` for a merged view of local memory plus joined spaces
- `health.ping` for liveness and `engine.metrics` for a performance snapshot
- Four storage backends: in-memory, PostgreSQL with pgvector, Qdrant, or MongoDB Atlas Vector Search
`go install github.com/Protocol-Lattice/memory-bank-mcp@latest`, then run `memory-bank-mcp` — stdio by default, or `-transport http -addr :8080`. Choose a backend with `MEMORY_STORE` and give it connection settings: `POSTGRES_DSN`, `QDRANT_URL` with `QDRANT_COLLECTION`, or `MONGO_URI` with database and collection. The embedding model comes from the `ADK_EMBED_PROVIDER` and `ADK_EMBED_MODEL` variables plus that provider's key. `SHORT_TERM_SIZE` defaults to 20 and `DEFAULT_SPACE_TTL_SEC` to 86400.
One command plus a key — go install github.com/Protocol-Lattice/memory-bank-mcp@latest, then supply credentials
