mem0 icon indicating copy to clipboard operation
mem0 copied to clipboard

OpenMemory + Claude Desktop Alignment: Claude unable to fetch memories from OpenMemory

Open randykerber opened this issue 7 months ago • 5 comments

🐛 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:

  1. Claude successfully connects to /mcp/claude/sse/rk
  2. Message exchanges occur at /mcp/claude/sse/rk/messages/
  3. But tool operations like memory storage/retrieval fail

randykerber avatar May 18 '25 01:05 randykerber

Hey, can you please share the logs or the messages that you're trying to use in order to add memories?

whysosaket avatar May 20 '25 10:05 whysosaket

I had similar issue - connection is successful, message can be exchanged through api but the Claude client is unable to connect with the server.

mcp-server-hb_mem0.log

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"

wydyydlhb1990 avatar May 23 '25 21:05 wydyydlhb1990

I had similar issue - connection is successful, message can be exchanged through api but the Claude client is unable to connect with the server.

mcp-server-hb_mem0.log

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?

Through-Storm avatar May 24 '25 12:05 Through-Storm

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

  1. Protocol Version Mismatch: Claude Desktop uses "2024-11-05" while OpenMemory server responds with "2025-03-26"

  2. Response Format Error: OpenMemory returns {"status":"ok"} which doesn't match the expected JSON-RPC format that Claude Desktop expects (missing jsonrpc, id, and result fields)

  3. Connection Drops: After the format error, the SSE connection closes and needs to reconnect

  4. 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

lagiosv avatar May 25 '25 18:05 lagiosv

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.

rollinsio avatar Jun 04 '25 17:06 rollinsio

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.

Ivkaa avatar Sep 05 '25 12:09 Ivkaa