Local-first, audited memory MCP server for coding agents. Cognitive-map retrieval, propose/review flow, dream consolidation.
Paradigm Memory presents a well-structured MCP server with 25 tools covering a comprehensive memory management domain. Strengths: all tools have descriptive names following verb_noun conventions (memory_search, memory_write, memory_delete); all tool descriptions are substantive (100+ chars) and explain purpose and prerequisites; input schemas are complete with proper JSON Schema format including type definitions, min/max constraints, enums, and patterns for string validation. Weaknesses: (1) output schemas are not explicitly documented in the provided source, the response structure for each tool is unclear, forcing LLMs to reason about returned data; (2) parameter descriptions are minimal in some cases (e.g., 'Optional workspace identifier' appears verbatim across all tools but lacks guidance on when to use workspaces or how they affect behavior); (3) error handling guidance is absent, there is no recovery pattern or actionable error message specification; (4) risk classifications are present (READ_ONLY, WRITE, DESTRUCTIVE, REVERSIBLE) but not surfaced in descriptions; (5) some parameters like 'reason' and 'actor' in memory_review and memory_delete lack descriptions altogether. The tool set demonstrates strong semantic coherence (cognitive map operations, proposed→active→deleted flow, audit trail support) and idempotency patterns (dry_run flags, soft deletes). Average tool definition quality is solid but hampered by missing output documentation and sparse parameter descriptions.
Create a new node in the cognitive map. The id must be dotted snake_case (e.g. 'projects.myapp.auth'). Parent (if any) must exist. Audited as 'create_node'.
Soft-delete an active item. Excluded from search. Kept in store for audit. Audited as 'delete'.
Delete an existing memory node. Sub-nodes and items are moved to the parent node. Audited.
Run a read-only health check over the memory store: SQLite pragmas, orphan items, broken node links, embedding cache coverage and actionable repair hints.
Apply safe local repairs: rebuild FTS indexes, refresh JSON mirrors from SQLite, and optionally warm embeddings. Does not delete content.
Run consolidation analysis to detect duplicates, stale content, overloaded nodes, orphans. Returns proposals for merge/delete/reorganize actions.
Output schemas not documented. Tool descriptions do not specify what fields and types are returned. LLMs cannot plan downstream composition or extract relevant data from responses. Examples: memory_search should document {activated_nodes, evidence_items, context_pack} structure; memory_tree should document cognitive map response format.
Parameter descriptions are sparse or missing. 'reason' parameter in memory_review and memory_delete lacks description (required for audit context). 'actor' parameter similarly undocumented. Many boolean flags (include_items, include_proposed, dry_run) lack explanation of side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 72 | 2026-07-28+ | v2 |
Export memory to a .brain snapshot file (JSON with optional GZIP). Includes metadata, nodes, items, and optionally mutations.
Import Markdown content as items into a specified node. Supports front-matter YAML metadata.
Import memory from a .brain snapshot file. Modes: 'merge' (default) or 'replace'. Audited.
List items currently in 'proposed' state, awaiting review.
Move an existing memory item to a different node. Audited.
List recent audited mutations for the current workspace.
Stage an item with status='proposed'. Excluded from search until reviewed via memory_review. Audited.
Read one node, its direct children and (optionally) its items. By default includes items with status active+proposed.
Accept (status='active') or reject (soft-delete) a proposed item. Audited.
Search memory through cognitive-map activation + hybrid retrieval. Returns activated nodes, evidence items and a token-budgeted context pack.
Update Paradigm Memory from GitHub Releases by re-running the official installer. Disabled unless PARADIGM_ALLOW_SELF_UPDATE=1. No arbitrary commands are accepted.
Compare two .brain snapshots. Returns structural diff, node/item counts, and change summary.
List automatic .brain safety snapshots under <memory-dir>/snapshots/.
Return read-only memory statistics: counts, top nodes, freshness histogram inputs, storage size and mutation count.
Return the full cognitive map for visual inspectors: roots, nodes, active item counts, and optionally active/proposed items.
Check GitHub Releases for a newer Paradigm Memory version. Read-only, timeout-bounded, opt-out with PARADIGM_DISABLE_UPDATE_CHECK=1.
Update an existing memory node's label or metadata. Audited.
Return server version, protocol version, active data directory, workspace directory, and storage stats. Useful for sanity checks and Memory inspector diagnostics.
Write an active item directly (skips review). For trusted callers. Audited as 'write'.
No error handling guidance. Tool descriptions do not state what errors are possible, whether they are retryable, or how to recover. Example: memory_search with invalid FTS5 operators should guide the LLM to correct syntax; memory_create_node with invalid dotted-snake_case ID should explain the pattern and show examples.
Risk classifications (READ_ONLY, WRITE, DESTRUCTIVE, REVERSIBLE) are present in tool metadata but not surfaced in descriptions. LLMs should understand the irreversibility implications of memory_delete_node (sub-nodes moved to parent) and memory_import_snapshot with mode='replace' (overwrites entire memory). Descriptions must make destructive nature explicit.
Workspace parameter repeated across all 25 tools with identical boilerplate description ('Optional workspace identifier...'). Does not explain when/why to use workspaces, how isolation affects behavior, or whether workspaces are required for multi-tenancy. LLMs cannot reason about workspace selection strategy.
No dependency hints between tools. memory_propose_write describes a staging flow but does not reference memory_review. memory_review does not mention memory_list_proposed or suggest calling it first to see pending items. Composition chain should be explicit to guide multi-step workflows.
Snapshot operations (memory_export_snapshot, memory_import_snapshot, memory_snapshot_diff) do not clarify file format, compression, or where snapshots are stored on disk. memory_snapshots lists snapshots but does not explain how to relate them to export/import operations.
Confidence and importance numeric parameters (0-1 range) lack guidance on semantics. Does 1.0 mean 'highly confident' or 'must be checked'? How do these values affect memory_search ranking? Should LLMs always set them or omit them?