[BUG] Claude Desktop returns canned 'memory disabled' response for self-referential queries instead of consulting available MCP memory servers
Summary
When a user has an MCP memory server registered in Claude Desktop and asks a self-referential question like "what do you know about me", the Opus 4.7 model returns a canned response telling the user to enable Claude's built-in memory feature in Settings — without ever consulting the MCP server, even though the MCP instructions, prompts, and resources for that server are present in the system prompt at handshake time.
This is distinct from the related Claude Code issue #48465 (about MCP memory competing with auto-memory). Here the problem is more direct: in Claude Desktop the model behaves as if MCP memory does not exist for that category of question, regardless of how the MCP server is set up or what its tool descriptions say.
Environment
- Claude Desktop on macOS (Apple Silicon), built-in v1.0.0-stab visible in window chrome
- Model: Opus 4.7 (the user-selectable model in the screenshot)
- MCP server registered: a local memory server exposing seven semantic tools (
context,recall,remember,summary,forget,timeline,projects) plus thekerebrom_memory_protocolMCP prompt and thekerebrom://memory-protocolMCP resource - The server's MCP
instructions(sent at theinitializehandshake) explicitly state "ALWAYS call context at the start of any non-trivial conversation" and describe the memory cycle in plain language - User's Personal Preferences in Claude.ai already contain "uso obligatorio de herramientas, conectores MCP, búsqueda, archivos y verificaciones que sean aplicables" (mandatory use of MCP and tools when applicable)
Reproduction steps
- Configure any MCP memory server in
~/Library/Application Support/Claude/claude_desktop_config.json(a stdio Go binary in our case). - Restart Claude Desktop fully (Cmd+Q, reopen).
- Confirm in
~/Library/Logs/Claude/mcp-server-<NAME>.logthat the handshake succeeds:initializereturnsserverInfo,tools/listreturns the tool catalog,prompts/listandresources/listreturn the memory protocol. - Open a fresh chat. Ask: "qué sabes de mí" (or "what do you know about me", any equivalent).
- Observe Claude's response.
Expected behaviour
Claude calls a tool from the MCP memory server (in our case context or recall) before answering, then synthesizes the response from the returned observations. The MCP instructions and the user's Personal Preferences both explicitly request this.
Actual behaviour
Claude returns a canned response of the form:
"No tengo memorias guardadas sobre ti. La función de memoria de Claude no está activada en tu cuenta, así que no conservo información de conversaciones anteriores. (...) Si quieres que recuerde cosas entre conversaciones, puedes activar la memoria en Ajustes → Perfil."
The MCP server log shows zero tools/call between the user's message and Claude's response. The model never reached out to the MCP server at all. It responded as if MCP memory did not exist.
What we tried (none worked)
| Mitigation | Result |
|---|---|
| Strengthen MCP instructions text to MANDATORY language with concrete examples | No change |
| Rename tools from mem_* prefix to semantic verbs (context, recall, remember, summary, forget, timeline, projects) — like Pieces and Engram do | No change |
| Add an explicit "deferred-tool clients should run tool_search at start" hint to the protocol text | No change |
| Disable Claude.ai's built-in Memory feature (Settings → Personalization → Memory) | No change |
| Disable Claude.ai's "Search past chats" / Relevant chats feature | No change |
| User's Personal Preferences explicitly require mandatory MCP/tool use | Ignored for this query class |
The model only consults the MCP server if the user explicitly asks it to use memory (e.g., "¿por qué no estás usando la memoria?"). Then it works flawlessly: in our log there is a tools/call: context returning ~42 KB of relevant observations, and the rest of the conversation flows naturally with proper memory use.
So the MCP integration itself is healthy. The model simply has a hardcoded reflex for self-referential memory questions that bypasses MCP.
Hypothesis
Anthropic appears to have trained Opus 4.7 (and likely earlier Claude models) to respond defensively to "what do you know about me / what do you remember about me" queries with the "enable memory in Settings" message, without first checking whether an MCP memory server is registered and could answer. This is a reflex from training, not from the configurable hierarchy of memory features.
Suggested fix
When at least one MCP server is registered in claude_desktop_config.json AND that server exposes either:
- a tool whose description mentions "memory", "recall", "remember", "context", or similar memory verbs, OR
- a prompt named like
*_memory_protocol, OR - a resource with URI scheme indicating memory (e.g.,
*://memory-protocol)
…then for self-referential queries the model should call that MCP server before falling back to the canned "enable memory in Settings" response. The current behaviour effectively makes third-party MCP memory servers invisible to the user for the most natural way they would ever test such a server.
Related
- #48465 (Claude Code: allow MCP servers to replace auto memory backend) — adjacent but distinct, as it concerns Claude Code's auto-memory + MEMORY.md system rather than Claude Desktop's canned response
Logs and evidence
Available on request — full MCP server stdout/stderr from ~/Library/Logs/Claude/mcp-server-Kerebrom.log showing successful handshake, populated tools/list, and the absence of any tools/call for the self-referential query, contrasted with a successful tools/call: context returning real data when the user explicitly demands memory use.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗