Self-hosted AI memory ledger. You and your agents share one memory store over MCP — one SQLite file, web UI, REST, works offline.
Membrain has 17 tools with complete input schemas and descriptions for all parameters. Naming follows verb_noun convention (save_memory, update_memory, search_memories). Descriptions are present but brief (avg ~80 chars), lacking context on WHEN to use each tool or dependencies between them. Output schemas are not documented in the source. Error handling is minimal, no recovery guidance or actionable error messages visible. Tools are well-composed (single responsibility), but descriptions don't explain prerequisites or multi-step workflows (e.g., import_agent_memory requires discover_agent_memory first, but this dependency is not stated in either description).
Create a consistent snapshot of the live database file
Delete a memory entry from the ledger
Discover agent memory files from Claude Code projects and custom directories
Export all memories as individual markdown files with frontmatter in a directory
Export memories as JSON with optional filtering by IDs
Find likely duplicate memories by cosine similarity of their embeddings
Retrieve a specific memory entry by ID
Retrieve all editable settings
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., what does search_memories return? Does it include memory IDs for chaining to update_memory?). Every tool needs a documented return type.
Tool dependencies not documented. import_agent_memory requires discover_agent_memory first, but neither description mentions this prerequisite. LLMs will not know the correct sequence.
Descriptions lack WHEN-to-use context. 'Hybrid search of memories using both semantic similarity and keyword matching' explains HOW but not WHEN to call search_memories vs list_memories. LLMs need guidance on tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Import selected agent memory files into the ledger, updating changed files and skipping unchanged ones
Import memories from a file (PDF, Markdown, or text) with optional LLM-based fact extraction
Restore memories from a JSON export file, re-embedding all chunks
List all memories with optional filtering and pagination
Preview file import without saving, showing extracted facts and tags
Save a new memory entry to the ledger with content, optional tags, and source attribution
Hybrid search of memories using both semantic similarity and keyword matching
Update a single setting value
Update an existing memory entry with new content and/or tags
No error recovery guidance. If delete_memory fails (e.g., ID not found), the tool provides no actionable next step. Error responses should guide the LLM: 'Memory not found. Try search_memories() to find the correct ID.'
Destructive operations lack confirmation. delete_memory and export_markdown_folder (which overwrites files) should support a dry-run or confirmation step to prevent accidental data loss.