MCP Directory

How to add OpenMemory MCP to Windsurf

Mem0's local-first memory layer: a Dockerized MCP server plus dashboard that keeps agent memories on your machine. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 60k · sse · apikey · official

Windsurf config for OpenMemory MCP

curl -sL https://raw.githubusercontent.com/mem0ai/mem0/main/openmemory/run.sh | OPENAI_API_KEY=your_api_key bash
{
  "mcpServers": {
    "openmemory-mcp": {
      "serverUrl": "http://localhost:8765/mcp/<client-name>/sse/<user-id>"
    }
  }
}

Remote server — no local install needed. Restart the client after saving the config.

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the OpenMemory MCP config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5OpenMemory MCP's tools become available to Cascade.

Before you start

  • Docker and Docker Compose
  • An OpenAI API key (default LLM + embedder) — or a running Ollama for the fully local configuration
  • Node.js/npx for the @openmemory/install client-setup helper and for UI development
  • Python 3.9+ only if hacking on the backend outside Docker

What OpenMemory MCP can do in Windsurf

add_memories

Store new memories whenever the user shares preferences or facts worth keeping.

search_memory

Semantic search over stored memories; meant to be called before answering personal questions.

list_memories

List everything in the user's memory store.

delete_memories

Delete specific memories by their IDs.

delete_all_memories

Wipe the user's entire memory store.

Security

Memories live locally in Docker volumes (Qdrant + SQLite), but memory text is sent to your configured LLM/embedder — OpenAI by default — unless you switch to Ollama for a fully local pipeline. The SSE endpoint is unauthenticated on localhost, and note the README's sunsetting notice: Mem0 now steers new users to its self-hosted server instead.

OpenMemory MCP + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the OpenMemory MCP config there under the "mcpServers" key and restart the client.

Is OpenMemory MCP safe to use with Windsurf?

Memories live locally in Docker volumes (Qdrant + SQLite), but memory text is sent to your configured LLM/embedder — OpenAI by default — unless you switch to Ollama for a fully local pipeline. The SSE endpoint is unauthenticated on localhost, and note the README's sunsetting notice: Mem0 now steers new users to its self-hosted server instead.

Is OpenMemory private and free?

Yes — Apache-2.0, self-hosted, and memories are stored locally in Qdrant/SQLite Docker volumes. The one external dependency is the LLM/embedder: the default OpenAI setup sends memory text to OpenAI, so switch both providers to Ollama if you need everything on-device.

Is OpenMemory still maintained?

It works, but the README carries an explicit sunsetting notice: Mem0 directs local self-hosted memory users to the Mem0 self-hosted server (make bootstrap in the monorepo's server/ directory) instead. Existing setups keep running; new deployments should weigh starting on the successor.

How do multiple MCP clients share the same memories?

Each client connects to its own SSE URL — http://localhost:8765/mcp/<client-name>/sse/<user-id> — but the <user-id> is what scopes the data. Use the same user id across Claude, Cursor, and Windsurf and they read and write one shared store, with per-app attribution visible in the dashboard.

View repo Full OpenMemory MCP page