When to pick Memory MCP Server
- You want to carry user preferences, people, organizations or events across conversations. Store each subject as a named entity, attach individual facts as observations, and connect entities with directed relations.
- Your agent needs explicit operations for changing individual facts.
add_observationsextends an existing entity;delete_observationsremoves selected facts without deleting the entity. Creating an entity with an existing name does not append observations. - You usually retrieve information by a known name or a text query.
open_nodesretrieves named entities, whilesearch_nodessearches names, types and observation content.read_graphreturns the complete graph when you need it. - You want multiple local MCP clients to share one memory file. Point their processes at the same
MEMORY_FILE_PATH; write tools take an exclusive lock before updating it. The directory must be writable, and shared storage must support exclusive file creation.
When to pick Basic Memory
- You keep architecture decisions, research or working notes in Markdown and want your agent to update those same files. You can edit them in Obsidian or another editor, with synchronization making those edits available to the agent.
- You remember the subject of a note but not its exact wording.
bm_searchsupports semantic retrieval, and hybrid search combines full-text and vector ranking. Optional reranking adds a second relevance pass, with additional inference latency. - You maintain separate knowledge collections. Project tools let you list or create projects, while
bm_schemacan infer, validate and compare the structure of a knowledge base. - You need hosted access across devices or a shared team workspace. The optional paid cloud service includes synchronization, snapshots and backups; notes can be exported as Markdown. Local use remains free.
Main differences
- Storage and editing differ. Memory MCP Server persists entities, relations and observation strings in a JSONL file. Basic Memory uses Markdown files as the source of truth, derives graph connections from observations and wikilinks, and uses a local SQLite index by default.
- Retrieval follows different paths. Memory MCP Server exposes graph reads, named-node lookup and text search across entity fields. Basic Memory adds semantic and hybrid retrieval, optional cross-encoder reranking, and graph context through
bm_context. - The mutation tools target different units. Memory MCP Server changes entities, relations and individual observations; deleting an entity also deletes its relations. Basic Memory offers note creation, reading, editing, moving and deletion, with
bm_writeguarding against accidental overwrites andbm_editupdating existing notes. - Connection options differ. Memory MCP Server runs as a local Node process over stdio without authentication. Basic Memory runs locally through Python and stdio without required authentication, and also supports hosted HTTPS connections. Cloud sign-in and API-key-based project routing belong to its optional cloud path.
- Data handling depends on configuration. Memory MCP Server stores its graph locally. Basic Memory stores local notes on disk, but cloud use hosts data remotely and hosted reranking uses an external provider. Its documented CLI telemetry excludes note content;
BASIC_MEMORY_NO_PROMOS=1disables promos and telemetry.
Setup
For Memory MCP Server, configure your client's stdio server entry to launch npx -y @modelcontextprotocol/server-memory. The documented requirement is Node.js 24 or later. Set MEMORY_FILE_PATH to choose the JSONL storage location; otherwise it uses memory.jsonl in the server directory.
For Basic Memory, the supplied README specifies uv tool install basic-memory --prerelease=allow. It requires that flag to resolve a prerelease dependency. Launch the local MCP server with uvx --prerelease=allow basic-memory mcp, or register it in Claude Code with claude mcp add basic-memory -- uvx --prerelease=allow basic-memory mcp. Notes default to ~/basic-memory.
· github.com/modelcontextprotocol/servers/src/memory, github.com/basicmachines-co/basic-memory
