
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
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the OpenMemory MCP config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 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_memoriesStore new memories whenever the user shares preferences or facts worth keeping.
search_memorySemantic search over stored memories; meant to be called before answering personal questions.
list_memoriesList everything in the user's memory store.
delete_memoriesDelete specific memories by their IDs.
delete_all_memoriesWipe 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.