Skip to content

Build1 publisher3 min readPublished

A key minted in a second console account returns an empty MCP memory store without an error

A developer who builds one of the six persistent memory systems he checked walks through how each can stop sharing while Cursor and Claude Code both report a healthy connection. The split happens at the account, and nothing logs it.

The Engineer · Build desk

Illustration accompanying A key minted in a second console account returns an empty MCP memory store without an error

What happened

  • In the post's opening case the memory server is connected in both editors, yet the note reads back from Cursor and the store reads back empty from Claude Code, with no error raised anywhere.
  • The author checked six persistent memory systems, including Mnemoverse, which he works on, for the concrete way each one can stop sharing while every client still reports a healthy connection.
  • Mem0 scopes all memories to a userId, with different values creating separate namespaces, and each plugin ships its own default identifier.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • constraint Connection status cannot answer the question operators are asking it. Verifying that two editors share memory means comparing the account each one resolved to, which no client indicator reports.
  • exposure The only symptom of a silent split is an agent confidently proposing work a colleague already ruled out, and there is no log line to trace it back to.
  • decision Anyone wiring more than one editor into the same store has to set the identifier and the mode explicitly at install time, per client, because the per-client defaults are what create the separate pools.
  • contradiction The post's own rule, that sharing is a fact about the account, does not cover Cognee's Standalone Mode, where the account can be correct and the data still sits in a per-instance database.

The transport handshake does not know what an account is. A client presents a key, the server resolves that key to an account, and every read afterwards returns that account's store. A key created in a different console account connects perfectly and returns that account's store, typically empty, with no error anywhere [8]. Zero rows is a successful read. The keyless VS Code path has the same shape: it opens the browser to sign in, registers itself, and lands in whatever account the browser is holding [7][9].

"A healthy connection is a fact about the transport, sharing is a fact about the account, and the first tells you nothing about the second," wrote the author of the comparison, who works on Mnemoverse [4][3]. Where cross-editor sharing exists among the systems he checked, it comes down to one account, several client applications, all pointed at the same backend [5]. Mnemoverse's editors guide puts its own default in one line: "same key, same memory, every tool" [6].

Cognee's split is upstream of the account. Its MCP server has two architecture modes that decide sharing [11]. Standalone Mode, in the documentation's words: "The MCP server manages its own database and processing. Each MCP instance maintains separate data" [12]. API Mode: "The MCP server connects to a centralized Cognee backend via API. Multiple MCP instances can share the same knowledge graph" [13]. That separation is documented and deliberate, personal development kept apart from team sharing [14]. Install the defaults per client and expect memory to follow you between editors, and you get Standalone Mode's isolated graphs, one per client [17]. Cognee names the team-sharing catch too: "Each instance authenticates with a single token, so everything it writes belongs to one Cognee user," with the fix being one process per tenant, "each started with a token for its own backend user, so the permissions system enforces the boundary" [15][16].

Mem0 documents cross-tool sharing on a hosted MCP endpoint with several clients on one URL, and documents the partition on its plugin pages: "All memories are scoped to this userId: different values create separate memory namespaces" [18][19]. Each plugin names its own default identifier, so two tools left alone land in two pools that never merge [20]. The cure is an identifier you set: "Set a user_id and it applies to every gateway, so one person gets a single merged memory store no matter where they talk to the agent" [21].

A user can also build the partition after the accounts line up. Reads default to your own domains, unfiltered; a team that writes with a separate domain per tool and then filters reads by that domain has partitioned itself, and the fix is to stop filtering [10].

One post carries all of this, and its Mnemoverse section is written by someone who works on Mnemoverse [3]. It says it checked six systems and names four, so two are not identified in the text available [23]. The text breaks off mid-sentence in the Supermemory section, before the sharing mechanism is spelled out [22].

So the useful check is not the connection indicator in either editor. It is which account each client resolved to, whether that account's backend is the shared one rather than a per-instance database [12], and whether either client is narrowing reads to a subset of domains [10].

What to watch

  • Whether any of these clients expose the resolved account identity in-session, so the check does not require opening a console.
  • Whether Cognee changes the default MCP architecture mode, given that Standalone isolates data per instance by design.
  • The Supermemory section and the two systems the available text does not name, which would show whether the account rule holds across all six.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories