Connect
The server is at:- Claude Code
- Cursor / JSON
The four tools
| Tool | What it does |
|---|---|
memory_remember | Store one explicit memory, typed by kind (preference, decision, fact, lesson, observation, signal) and shared by scope (agent, commons, project). |
memory_recall | Search active memory. Returns memory entities and their adjacent edges, with temporal filters and depth modes. |
memory_synthesize | Turn recalled memory into a concise briefing, with the underlying memory ids inspectable. |
memory_archive | Retire a stale memory from default recall. Not a deletion — the lineage is preserved. |
The loop
Tell it something worth keeping
“Remember that I prefer short briefings with explicit caveats.”The agent calls
memory_remember and the preference lands in your graph’s
memory plane, typed and scoped.Beyond explicit memory
The Memory MCP covers explicit, in-session memory cheaply. Two paths extend it:- Ambient memory from transcripts. The SDK’s
pb.memory.observedigests a whole conversation or session log into many memories at once. It runs a full extraction (the model-spend path), which is why it is deliberately not exposed as an MCP tool — you run it from code, where you own the bill. Everythingobservecaptures lands on the same memory plane, somemory_recallsurfaces it alongside what was remembered explicitly. - Your own memory model. The default memory shape is a shape like any other. Fork it in the Workbench, add the fields your domain remembers, and both the SDK and the Memory MCP write and recall through your variant.
Next
Memory in the SDK
remember, observe, recall, synthesize, and archive from code.
Fork the memory shape
A domain-specific memory model your tools conform to.