OpenMemory + Claude Desktop Alignment: Claude unable to fetch memories from OpenMemory
🐛 Describe the bug
MCP Compatibility Issue Between Claude Desktop 0.9.3 and OpenMemory MCP
Environment
- Claude Desktop for macOS version 0.9.3 (April 30, 2025)
- OpenMemory MCP (latest as of May 17, 2025)
- macOS (latest - version 15)
Issue Description
Claude Desktop successfully connects to OpenMemory MCP and can list available tools, but cannot successfully use the memory-related tools (add_memories, search_memory, list_memories). Can see that Claude Desktop queries for OpenMemory Tools, Resources, Prompts and gets 4 Tools back, but apparently is unable to work out how to fetch memories form OpenMemory.
Observed Behavior
- Claude Desktop establishes SSE connection to OpenMemory MCP
- Connection logs show successful protocol handshake
- Claude queries for available tools, resources, and prompts
- When attempting to use tools like
search_memory, no results are returned - No new memories are created when using
add_memories - Direct API calls to using 'curl' to OpenMemory using endpoints work correctly
Technical Details
The issue appears to be a mismatch between how Claude Desktop formats tool requests and how OpenMemory MCP expects to receive them. Specifically:
- Claude successfully connects to
/mcp/claude/sse/rk - Message exchanges occur at
/mcp/claude/sse/rk/messages/ - But tool operations like memory storage/retrieval fail
Hey, can you please share the logs or the messages that you're trying to use in order to add memories?
I had similar issue - connection is successful, message can be exchanged through api but the Claude client is unable to connect with the server.
The issue seems to be that connection drops immediately after initialization: 2025-05-23T21:26:47.341Z Message from server: {"jsonrpc":"2.0","id":0,"result":...} 2025-05-23T21:26:47.360Z Client transport closed 2025-05-23T21:26:47.361Z Server transport closed 2025-05-23T21:26:47.361Z Server transport closed unexpectedly
Not sure if it has to do with the issue but I noted that there is mismatch in protocol version:
Client requests: protocolVersion: "2024-11-05" Server responds: protocolVersion: "2025-03-26"
I had similar issue - connection is successful, message can be exchanged through api but the Claude client is unable to connect with the server.
The issue seems to be that connection drops immediately after initialization: 2025-05-23T21:26:47.341Z Message from server: {"jsonrpc":"2.0","id":0,"result":...} 2025-05-23T21:26:47.360Z Client transport closed 2025-05-23T21:26:47.361Z Server transport closed 2025-05-23T21:26:47.361Z Server transport closed unexpectedly
Not sure if it has to do with the issue but I noted that there is mismatch in protocol version:
Client requests: protocolVersion: "2024-11-05" Server responds: protocolVersion: "2025-03-26"
i have same question doyou make it?
Critical Logs: Claude Desktop + OpenMemory MCP Compatibility Issue
Environment
- Claude Desktop for macOS (version showing protocol "2024-11-05")
- OpenMemory MCP (running on localhost:8765)
- macOS
Connection Establishment (Successful)
2025-05-25T17:23:29.576Z [openmemory] [info] Message from client: {"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0} 2025-05-25T17:23:29.634Z [openmemory] [info] Message from server: {"jsonrpc":"2.0","id":0,"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{},"resources":{}},"serverInfo":{"name":"openmemory","version":"1.0.0"}}} SSE connection established (Status: 200) Session established: 191f658990104c6992facf692c697cdf
Tools Discovery (Successful)
2025-05-25T17:23:29.654Z [openmemory] [info] Message from server: {"jsonrpc":"2.0","id":1,"result":{"tools":[{"name":"add_memories","description":"Add new memories to OpenMemory","inputSchema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"}},"required":["role","content"]}},"user_id":{"type":"string"}},"required":["messages"]}},{"name":"search_memory","description":"Search memories in OpenMemory","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"user_id":{"type":"string"}},"required":["query"]}},{"name":"list_memories","description":"List all memories","inputSchema":{"type":"object","properties":{"user_id":{"type":"string"}}}}]}}
Tool Usage Attempt (Failed)
2025-05-25T17:24:44.847Z [openmemory] [info] Message from client: {"method":"tools/call","params":{"name":"add_memories","arguments":{"messages":[{"role":"user","content":"My name is Vasilis"}]}},"jsonrpc":"2.0","id":40} OpenMemory response: {"status":"ok"} SSE connection closed 2025-05-25T17:24:44.858Z [openmemory] [error] [ { "code": "invalid_union", "unionErrors": [ { "issues": [ { "code": "invalid_literal", "expected": "2.0", "path": ["jsonrpc"], "message": "Invalid literal value, expected "2.0"" }, { "code": "unrecognized_keys", "keys": ["status"], "path": [], "message": "Unrecognized key(s) in object: 'status'" } ] } ] } ]
Protocol Version Mismatch (Second attempt with updated OpenMemory)
2025-05-25T18:20:44.256Z [OpenMemory] [info] Message from client: {"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0} [supergateway] Response: { jsonrpc: '2.0', id: 0, result: { protocolVersion: '2025-03-26', capabilities: { experimental: {}, prompts: [Object], resources: [Object], tools: [Object] }, serverInfo: { name: 'mem0-mcp-server', version: '1.9.1' } } } 2025-05-25T18:20:45.267Z [OpenMemory] [error] Server disconnected.
Key Issues Identified
-
Protocol Version Mismatch: Claude Desktop uses
"2024-11-05"while OpenMemory server responds with"2025-03-26" -
Response Format Error: OpenMemory returns
{"status":"ok"}which doesn't match the expected JSON-RPC format that Claude Desktop expects (missingjsonrpc,id, andresultfields) -
Connection Drops: After the format error, the SSE connection closes and needs to reconnect
-
Tool Discovery Works: Claude can see and list the available tools (add_memories, search_memory, list_memories) but cannot execute them due to the response format mismatch
Summary
The connection and tool discovery work correctly, but tool execution fails due to:
- Protocol version incompatibility
- OpenMemory's response format not conforming to JSON-RPC specification expected by Claude Desktop
Hey all, you can use supergateway. You need it installed, and then you can set. your mcp config to this
"openmemory": { "command": "npx", "args": ["-y", "supergateway", "--sse", "http://localhost:8765/mcp/claude/sse/name-here", "--outputTransport", "stdio"], "env": {} }
I will note that I'm still getting some inconsistent behavior. At times it seems to be dropping messages. I'm not sure if this is a limitation of mem0 (ie, i'm overwhelming its ability to encode and respond) or openmemory. It seems to be kind of flaky, so this may not be the best way to add memories. However, it seems to be able to retrieve them well enough.
I'm having the same issue when using Claude with Open Memory MCP, it says it's saving memories, but no memories are saved - they are not showing in web interface neither when calling list function via Claude MCP. This is a critical bug.