mcp-mem0
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-mem0Remember that I like dark mode in editors."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-mem0
An MCP server for mem0 (self-hosted / open source) backed by Qdrant. Each request targets a Qdrant collection named by an HTTP header, so clients that send the same name share memories and different names stay isolated.
Tools
Tool | Purpose |
| Store memories (LLM fact-extraction, or raw with |
| Semantic search within the request's collection |
| Replace a memory's content by id |
| Delete a memory by id |
| Fetch one memory by id |
| List memories for a scope |
| Change history of a memory |
| Delete all memories for a scope |
Related MCP server: mem0-open-mcp
How collection routing works
The collection name is read from an HTTP header (
X-Collectionby default) and mapped to the Qdrant collectionmem0_<name>(prefix configurable; set it empty to use the value verbatim). The header value is validated against^[A-Za-z0-9_-]{1,64}$.Sharing: any clients that send the same collection name share the same memories. Different names are isolated.
One
AsyncMemoryinstance is built and cached per collection.The collection is chosen solely by the header —
user_id/agent_id/run_idnever affect which collection is used; they only narrow within a collection and are optional. Searching / listing without any of them spans the whole collection.add_memorystill needs one id to store (mem0 requirement); a defaultuser_id(MEM0_DEFAULT_USER_ID) is applied when the caller omits all three on a write.
Quick start
# 1. Start Qdrant
docker compose up -d qdrant
# 2. Configure
cp .env.example .env
# edit .env: set OPENAI_API_KEY (or switch to the Ollama block for a key-free setup)
# 3. Run the server (streamable-HTTP on :8080/mcp)
uv run -m mcp_mem0Health check: curl localhost:8080/health
Docker
The Dockerfile is multi-stage with two targets: runtime (the server)
and test (the suite).
With docker compose (recommended)
cp .env.example .env # set OPENAI_API_KEY (or the Ollama block)
# Qdrant + server together
docker compose up -d --build qdrant server
curl localhost:8080/health
# Run unit tests (no Qdrant / keys needed)
docker compose run --rm tests
# End-to-end smoke against the running server (needs an embedder key)
docker compose run --rm tests python tests/smoke.pyInside the compose network the server reaches Qdrant at QDRANT_HOST=qdrant
(set automatically); tests reach the server at MCP_URL=http://server:8080/mcp.
With plain docker
# Service image
docker build --target runtime -t mcp-mem0 .
docker run --rm -p 8080:8080 --env-file .env -e QDRANT_HOST=host.docker.internal mcp-mem0
# Test image
docker build --target test -t mcp-mem0-test .
docker run --rm mcp-mem0-test # pytest -qVerify
# Unit tests (no Qdrant needed)
uv run pytest -q
# End-to-end smoke test (server + Qdrant + embedder must be running)
uv run python tests/smoke.py
# Confirm per-client collections were created
curl localhost:6333/collectionsConfiguration
All settings come from environment variables / .env — see .env.example.
Key ones: MEM0_COLLECTION_HEADER, MEM0_COLLECTION_PREFIX, QDRANT_HOST/QDRANT_PORT
(or QDRANT_URL+QDRANT_API_KEY), MEM0_EMBEDDING_DIMS (must match the embedder),
and the MEM0_LLM_* / MEM0_EMBEDDER_* provider blocks (openai / ollama / …).
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP memory server. One memory your agents share — across models, devices and apps.
Cloud-hosted MCP server for durable AI memory
Private persistent memory for Claude, ChatGPT & Gemini via MCP - semantic search, zero-code setup.
One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides memory management tools for AI agents, enabling adding, searching, updating, and deleting memories via the Mem0 API.22 npmMIT
- AlicenseNot gradedqualityCmaintenanceOpen-source MCP server for mem0 that enables memory storage and retrieval using local LLMs, self-hosted, and Docker-free.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA fully local, self-hosted memory server for MCP clients (Claude Code, Cursor, etc.) that provides persistent memory storage with semantic search, using local embeddings and a local Qdrant vector store.MIT
- AlicenseBqualityDmaintenanceAn MCP server for storing and retrieving memories using Qdrant vector search, acting as a semantic memory layer.2Apache 2.0