DeepMem
Überblick
Beschreibung vom Entwickler (englisches Original)
Mem0-compatible persistent memory for AI agents: write facts once, recall them semantically.
Die drei Säulen von PopNx MCP
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
- Stimmen der NutzeriNoch keine BewertungenBewertungen starten in einem späteren Schritt zusammen mit Benutzerkonten
- Unsere Basischecksi1 von 2 bestandenAnhand öffentlicher Informationen geprüft; Code noch nicht gescannt
- NutzungiGanz neu★ –
Was du damit machen kannst
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
- Verbindung: Läuft in der Cloud
- Transport: Streamable HTTP
- Kategorie: Suche & KI-Gedächtnis
- Das musst du eintragen: Authorization
Installation
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Bevor du installierst
- Basischecks: 1 von 2 bestanden Nicht bestanden
- Läuft auf dem Server des Entwicklers: Was du fragst, läuft über dessen Server.
- Das trägst du selbst ein:
Authorization
Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
- Läuft in der CloudNichts zu installieren; die Verbindung läuft übers Internet
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Führe das in deinem Terminal aus
claude mcp add --transport http deepmem https://deepmem.dev/mcp --header 'Authorization: your-value'Trag die leeren Werte ein, bevor du ihn startest.
Oder kopier die Einstellungen selbst
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"deepmem": {
"url": "https://deepmem.dev/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Oder kopier die Einstellungen selbst
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"deepmem": {
"type": "http",
"url": "https://deepmem.dev/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Werte, die du selbst einträgst
Authorizationgeheim erforderlich HTTP headerAPI key from https://deepmem.dev (starts with dm_live_). Send as 'Bearer '.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Was er kann
Der Server hat bei unserer letzten Prüfung nicht geantwortet, deshalb konnten wir seine Tools nicht lesen.
Basischecksi
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 10. Nov. 2026
- ✓ Bestanden
Entwickler passt zum Repo
Der Registry-Name wurde mit dem GitHub-Konto deepmemteam bestätigt, dem das Repo gehört
- … Noch nicht geprüft
Wird noch gepflegt
Dieses Repo haben wir noch nicht von GitHub gelesen
- … Noch nicht geprüft
Hat eine Lizenz
Dieses Repo haben wir noch nicht von GitHub gelesen
- ✕ Nicht bestanden
Endpunkt antwortet
Hat bei unserer Prüfung nicht innerhalb von 6 Sekunden geantwortet
- – Nicht zutreffend
Anmeldung mit OAuth
Hat bei unserer Prüfung nicht innerhalb von 6 Sekunden geantwortet
- … Noch nicht geprüft
Keine versteckten Anweisungen in Tool-Beschreibungen
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Im Vergleich mit anderen in Suche & KI-Gedächtnisi
- Mehr Sterne als 0 % der anderen 5850 Server in dieser Kategorie
- Neuer in der Registry veröffentlicht als 31 % der anderen 5850 Server in dieser Kategorie
- Basischecks gleich gut wie oder besser als bei 12 % der anderen 5850 Server in dieser Kategorie
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Häufige Fragen
Ist DeepMem sicher?
Er hat 1 von 2 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Welche Schlüssel oder Codes braucht er?
Das musst du eintragen: Authorization
Läuft er auf meinem Computer oder in der Cloud?
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Wird er noch gepflegt?
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.0) kam vor 3 Monaten in die Registry.
Welche Apps können ihn nutzen?
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
Was kann ich stattdessen nutzen?
In derselben Kategorie: Context7, Codebase Memory, Exa
Alternativen
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
README vom Entwickler
README öffnen
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
DeepMem Drop-in AI memory layer with 2× faster response and 10× lower cost.
Fully compatible with Mem0 API. Migrate in 5 minutes - one import line. Self-hostable. No auth, no payment, no lock-in. Or use the managed cloud at deepmem.dev .
Cloud · Self-host · Benchmarks · Reproduce them
Migrate from Mem0 in one line - same MemoryClient, same method signatures:
# Before - Mem0
from mem0 import MemoryClient client = MemoryClient(api_key="m0-...")
After - DeepMem (only the import changes)
from deepmem import MemoryClient client = MemoryClient(api_key="dm_live-...") # get a key at deepmem.dev
pip install deepmem-client
Turn conversations into searchable long-term memory: a FastAPI HTTP API in front of a Qdrant vector store, with LLM fact extraction, hybrid retrieval (vector + BM25 + entity boost + time-decay), semantic caching, async batched distillation, GDPR controls, and a built-in MCP server. It runs in open mode - no API key, no user registration - so you can deploy it for your own agents in minutes. Multi-tenant isolation is driven by user_id in the request body.
Prefer not to self-host? DeepMem Cloud is the managed version of
this exact engine at [deepmem.dev](https://deepmem.dev) - same API, no
infra. Sign up, grab a key (
dm_live_...), point your base URL at
https://deepmem.dev, done. The cloud and the open-source server speak the
same Mem0-compatible API, so client code is identical.
Migrate from Mem0
Already using Mem0? Switch to DeepMem cloud in one line. The deepmem-client package mirrors mem0.MemoryClient - same class name, same method signatures, same filters={"user_id": ...} style - so everything after the import stays untouched.
pip install deepmem-client
# before (Mem0)
from mem0 import MemoryClient client = MemoryClient(api_key="m0-...") client.add(messages, user_id="alex") client.search("What can Alex cook?", filters={"user_id": "alex"})
after (DeepMem cloud) - change one import line
from deepmem import MemoryClient client = MemoryClient(api_key="dm_live_...") # key at https://deepmem.dev client.add(messages, user_id="alex") # identical calls client.search("What can Alex cook?", filters={"user_id": "alex"})
Behavioral notes
- `add(infer=True)` (the default) is asynchronous on DeepMem cloud - it returns
pending=Truewithresults=[]and extracted facts land a few seconds later. (Mem0 cloud'saddis async too - it returnsPENDING.) Passinfer=Falsefor synchronous raw-text storage that's immediately searchable. - No graph relations - DeepMem uses hybrid vector retrieval (vector + BM25
- time-decay), so
relationsis always[]. Mem0's graph features aren't replicated. - `reset` differs - Mem0's is account-wide; DeepMem's is per-
user_idwith a confirm guard.
Pricing
DeepMem Cloud is 10x cheaper than Mem0 at every paid tier - the same shape of plans, a tenth of the price.
| Tier | DeepMem | Mem0 cloud |
|---|---|---|
| Hobby | Free | Free |
| Starter | $1.9/mo | $19/mo |
| Growth | $7.9/mo | $79/mo |
| Professional | $24.9/mo | $249/mo |
Self-host instead and it's $0 - you pay only your own LLM/embedding provider (the same LLM cost Mem0 charges on top of its plan price), with no memory-service markup. Batched distillation also cuts LLM calls ~80%, so even your provider bill is smaller than per-message extractors.
Plans and limits: deepmem.dev · mem0.ai.
Benchmarks
No cherry-picked headline. The scripts and workload ship in /benchmarks - run them yourself. Here's what we measured and the exact config that produced it:
| Metric | DeepMem self-hosted ¹ | DeepMem cloud | Mem0 cloud |
|---|---|---|---|
| Search p50 | 73 ms | 643 ms | 653 ms |
| Search p95 | 86 ms | 811 ms | 710 ms |
| Search hits (40 queries) | - | 195 | 84 |
| Add p50 (raw store) | 899 ms ² | 792 ms | 695 ms ³ |
¹ BGE-M3 on a GTX 1070 GPU (2016-era), local file Qdrant,
infer=False,
100 ops, concurrency 1. ² Dominated by local-file Qdrant I/O - a Qdrant
server cuts this sharply. ³ Mem0 has no raw-store mode;
addalways runs
LLM extraction, so this row isn't apples-to-apples.
- Self-hosted is where intrinsic latency lives - no internet RTT, your embedder, your Qdrant. 73 ms p50 search on an old consumer GPU.
- DeepMem cloud beats Mem0 cloud on search p50 (643 ms vs 653 ms) and returns ~2.3x more candidates per search (195 vs 84 hits across 40 queries).
- Cloud latency is RTT-dominated - both cloud columns were measured through a proxy from mainland China; run-to-run jitter is ~±10%. Run
/benchmarksfrom a low-RTT location for your own numbers.
Why DeepMem
Agent frameworks keep re-discovering that they need persistent, retrievable memory. The hosted options bill per call and send your data to someone else's cloud. DeepMem is the self-hostable alternative: the same Mem0-shaped API you can drop in, but it runs on your box, with your embedder, your LLM key, and your Qdrant - and the code is right here to verify it.
How does DeepMem compare to other Mem0 alternatives? Most are hosted-only or layer memory on top of someone else's vector DB. DeepMem combines three things at once: it's self-hostable (your data stays on your box - $0 beyond your own LLM key), MCP-native (Claude Desktop / Cursor read and write memories directly as tools), and fully open-source - and the managed cloud runs the exact same engine, so cloud and self-host are one API, not two products.
| Without DeepMem | With DeepMem |
|---|---|
| Re-explain who you are and what you're working on every session | The agent recalls identity, projects, and preferences automatically |
| Lose debugging and research context between sessions | Past root causes, dead ends, and findings are recalled, so work isn't repeated |
| Manually restate preferences every session | Preferences persist across sessions, agents, and projects |
| Hosted memory services that bill per call and hold your data | Self-host on your infra, or use the cloud - your call, same API |
What it is (honestly)
- Hybrid retrieval, not a knowledge graph. Search fuses vector similarity, BM25 keyword match, entity boost, and time-decay scoring. There is no temporal graph layer; if that's what you need, look at Zep.
- Stores preferences, not code dumps. Large fenced code blocks are stripped before LLM extraction, so the store fills with durable user/project facts instead of pasted implementations.
- BYOK, multi-provider. Bring your own LLM (OpenAI / Anthropic / any OpenAI-compatible endpoint) and embedding (BGE-M3 / Google / OpenAI-compatible).
- MCP-native. Ships an MCP server so Claude Desktop / Cursor can read and write memories directly.
Quick start
Three ways to run. All speak the same Mem0-compatible API.
1. Cloud (zero ops)
export DEEPMEM_API_KEY=dm_live_... # from https://deepmem.dev
curl https://deepmem.dev/v1/memories \ -H "Authorization: Bearer $DEEPMEM_API_KEY" -H "Content-Type: application/json" \ -d '{"messages":[{"role":"user","content":"I am Pat, I live in Lisbon."}],"user_id":"pat","infer":false}' curl https://deepmem.dev/v1/memories/search \ -H "Authorization: Bearer $DEEPMEM_API_KEY" -H "Content-Type: application/json" \ -d '{"query":"Where does Pat live?","user_id":"pat"}'
2. Docker (one command)
cp .env.example .env # add an LLM key
docker compose up --build # DeepMem (HTTP :8000 + MCP :8001) + Qdrant sidecar curl http://localhost:8000/health
Or pull the published image:
docker pull langdeepmem/deepmem:latest
docker run -p 8000:8000 -p 8001:8001 -e DEEPSEEK_API_KEY=sk-... langdeepmem/deepmem:latest
The image exposes `:8000` (HTTP) and `:8001` (MCP). The Dockerfile and docker-compose.yml cover the GPU variant (CUDA torch + BGE_DEVICE=cuda) and BGE-M3 model-download options (HF mirror, proxy, or local mount).
3. From source
git clone https://github.com/deepmemteam/deepmem.git && cd deepmem
pip install -r requirements.txt cp .env.example .env # add an LLM key + embedder config python server/start.py # HTTP :8000 + MCP :8001
Write and search in three lines:
import httpx
httpx.post("http://localhost:8000/v1/memories", json={"messages":[{"role":"user","content":"I'm Pat, I live in Lisbon."}], "user_id":"pat"}) print(httpx.post("http://localhost:8000/v1/memories/search", json={"query":"Where does Pat live?","user_id":"pat"}).json()["results"])
user_idis optional (defaults to"default"); send differentuser_ids
to isolate end-users.
infer: falsestores raw text immediately
(test-friendly); the default
infer: truequeues for LLM fact extraction.
Feature highlights
Multi-provider by config, not code. Both layers switch on env vars:
| Layer | Options | Selector |
|---|---|---|
| LLM (fact extraction) | OpenAI · Anthropic (native SDK) · any OpenAI-compatible (DeepSeek / vLLM / Ollama / Groq / LM Studio) | LLM_PROVIDER + LLM_API_KEY / ANTHROPIC_API_KEY / DEEPSEEK_API_KEY |
| Embeddings | BGE-M3 (local, GPU/CPU) · Google Gemini · any OpenAI-compatible | EMBEDDING_PROVIDER + BGE_M3_PATH / GOOGLE_API_KEY / OPENAI_API_KEY |
BGE_DEVICE=auto|cpu|cuda picks GPU when available, else CPU (force cpu on small-VRAM cards to avoid multi-process contention). BYOK overrides the LLM per-request.
Hybrid retrieval. Vector similarity + BM25 keyword + entity boost + time-decay, fused into one score. Over-fetch, re-rank, return.
Async batched distillation. Writes queue behind a silence window and are extracted in batches - ~80% fewer LLM calls than per-message extraction.
Semantic cache. Repeat adds/searches hit a similarity-gated cache and return cached facts without re-embedding or re-querying Qdrant.
Stores preferences, not code. extraction_filter strips large fenced code blocks before LLM extraction, so the store fills with durable facts, not pasted implementations.
MCP server. deepmem_write / deepmem_search / deepmem_delete tools for Claude Desktop, Cursor, and any MCP client.
GDPR. Soft-delete with retention window, hard-delete reset, SHA-256 id masking in logs, export/import for portability.
API
| Method | Path | Description |
|---|---|---|
| POST | /v1/memories | Write messages; LLM-extract facts (infer=false stores raw) |
| POST | /v1/memories/search | Semantic search (vector + BM25 + entity + time-decay) |
| GET | /v1/memories | List all for a user_id (paginated) |
| GET | /v1/memories/{id} | Get one by ID |
| PUT | /v1/memories/{id} | Update one memory's text |
| DELETE | /v1/memories/{id} | Soft-delete one |
| DELETE | /v1/memories | Soft-delete all for a user_id (GDPR) |
| GET | `/v1/
Nur der Anfang wird gezeigt; den Rest findest du im Repo