Context7
Up-to-date docs for AI agents
Beschreibung vom Entwickler (englisches Original)
Involuntary memory for agents: time, place, sound and IoT cues surface memories unasked
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
MADELEINE_DB, MADELEINE_TEXT_BACKENDDu brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"madeleine": {
"command": "uvx",
"args": [
"madeleine-mcp",
"serve"
],
"env": {
"MADELEINE_DB": "your-value",
"MADELEINE_TEXT_BACKEND": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add madeleine --env MADELEINE_DB=your-value --env MADELEINE_TEXT_BACKEND=your-value -- uvx madeleine-mcp serveTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"madeleine": {
"command": "uvx",
"args": [
"madeleine-mcp",
"serve"
],
"env": {
"MADELEINE_DB": "your-value",
"MADELEINE_TEXT_BACKEND": "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.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"madeleine": {
"type": "stdio",
"command": "uvx",
"args": [
"madeleine-mcp",
"serve"
],
"env": {
"MADELEINE_DB": "your-value",
"MADELEINE_TEXT_BACKEND": "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.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
MADELEINE_DB envMADELEINE_TEXT_BACKEND envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
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 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto fabianimv bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 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.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.2.0) kam vorgestern in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Context7, Codebase Memory, Exa
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
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.
Involuntary memory for AI agents. A place, an hour, a sound, a photo or a sensor reading brings back a related memory on its own, without the agent having to ask. It works the way the taste of a madeleine brought back Proust's childhood.
Local-first (SQLite) · MCP server + Python library · no telemetry
Most agent memory is *voluntary*: the agent decides to search, writes a query, and gets results. madeleine adds the other pathway. Every memory is stored with the sensory fingerprint present when it was encoded: where, when, what was said, seen or heard. Incoming cues from webhooks, phones, smart homes and wearables are matched against those fingerprints all the time. When enough channels line up, the memory is queued as an involuntary recollection, and the agent receives it with its next prompt. This is *encoding specificity* applied to agents (concepts).
# 1. See the whole loop, offline (nothing is downloaded, nothing leaves your machine)
uvx madeleine-mcp demo
The demo remembers three moments. Then a cue arrives that carries only a place and a time of day: 30 m from grandmother's house, on a Sunday afternoon. The matching memory surfaces by itself, is delivered through the MCP tool pending_recollections, and does not fire again for a repeated cue:
[madeleine 0.80 via geo+time] Sunday afternoons in grandmother's kitchen: lime-blossom tea and a madeleine (2019-04-14)
channel similarity geo=0.97, time=1.00; salience x1.16, age decay x0.70
# 2. Give Claude Code the tools
claude mcp add madeleine -- uvx madeleine-mcp serve
.claude/settings.json:{"hooks": {"UserPromptSubmit": [{"hooks": [
{"type": "command", "command": "uvx madeleine-mcp hook claude-code", "timeout": 10} ]}]}}
The hook works even if your client ignores MCP notifications. See examples/claude_code for options such as --sense-prompt, which treats what you type as a cue too.
The server is a standard stdio MCP server (uvx madeleine-mcp serve), so any MCP client can use the seven tools. Involuntary delivery on every prompt (step 3 above) is built for Claude Code; in other clients the agent receives recollections by calling pending_recollections, which the server's instructions ask it to do at the start of each turn.
Claude Desktop, Cursor, VS Code, OpenCode, Docker
Claude Desktop (claude_desktop_config.json) and Cursor (~/.cursor/mcp.json):
{"mcpServers": {"madeleine": {"command": "uvx", "args": ["madeleine-mcp", "serve"]}}}
VS Code (.vscode/mcp.json):
{"servers": {"madeleine": {"type": "stdio", "command": "uvx", "args": ["madeleine-mcp", "serve"]}}}
OpenCode (opencode.json):
{
"$schema": "https://opencode.ai/config.json", "mcp": {"madeleine": {"type": "local", "command": ["uvx", "madeleine-mcp", "serve"], "enabled": true}} }
Docker (memories persist in the madeleine-data volume):
docker build -t madeleine-mcp https://github.com/fabianimv/madeleine.git
docker run -i --rm -v madeleine-data:/data madeleine-mcp # stdio MCP server
Semantic text needs the `[text]` extra. The base install is small and offline. Without
the extra, text is matched *lexically* by a hashing embedder, so "car" and "automobile"
count as unrelated. For real sentence embeddings (this pulls in PyTorch):
`bash
claude mcp add madeleine -- uvx --from 'madeleine-mcp[text]' madeleine-mcp serve
`
Images (
[image], open_clip) and sound ([audio], LAION CLAP) are opt-in the same way.
[all]installs everything. Models download lazily on first use, never at import.
flowchart LR
subgraph Sources HA[Home Assistant] -->|webhook| HTTP IOS[iOS Shortcuts] -->|webhook| HTTP AG[Agent] -->|MCP tools| MCP end HTTP[HTTP API /cues] --> ENG MCP[MCP server] --> ENG subgraph ENG[engine] direction TB CH["channels adapter → embedder → similarity"] --> FU["fusion base · coverage · salience · decay"] FU --> RF{"push? threshold + refractory"} end ENG <--> DB[(SQLite + sqlite-vec)] RF -->|enqueue| Q[(recollection queue)] Q -->|drain| HOOK[Claude Code hook] Q -->|drain / notify| MCP
text, time (hour, weekday and season, all cyclical), geo (distance on the sphere), biometric, image, audio. smell is a documented stub for future e-noses.recall). *Push*: a cue arrives (sense, POST /cues) and memories that clear the threshold are queued without anyone asking.time (and biometric) can strengthen a match but never cause one.madeleine serve --transport http # REST + MCP (streamable HTTP at /mcp/) on 127.0.0.1:8765
curl -s localhost:8765/cues -H 'content-type: application/json' \ -d '{"lat": 48.30195, "lon": 1.24650, "signals": [{"channel": "text", "value": "smell of lime-blossom tea"}]}'
| Route | Purpose |
|---|---|
POST /cues | Generic cue: signals, at, geohash or lat/lon, tags, source |
POST /cues/{generic,home_assistant,ios_shortcuts} | Payloads straight from those tools (examples) |
POST /memories, POST /recall, GET/PATCH/DELETE /memories/{id} | Same as the MCP tools |
GET /recollections/pending · POST /recollections/drain | Peek / take queued involuntary recollections |
Ready-made integrations: Home Assistant (arriving home, media starts playing, wearable sensors), iOS Shortcuts ("Arrive at location" personal automation), curl.
MCP surface:
remember, recall, sense, pending_recollections, get_memory, update_memory, forget.recollections://pending, with resources/updated notifications when something surfaces. These notifications also work across processes that share the database.~/.madeleine/madeleine.db, owner-only permissions). There is no telemetry and no cloud.store_raw=True (per call or MADELEINE_STORE_RAW=1).madeleine serve --allow-file-uris.MADELEINE_API_TOKEN to require a bearer token. Binding to another interface without a token is refused unless you pass --insecure-no-auth.secure_delete on.madeleine bench runs a synthetic benchmark: 500 memories across 3 cities, 300 cues with known ground truth, distractors and hard negatives. It is reported for both text backends. Full tables, methodology and blind spots are in docs/benchmarks.md.
madeleine bench # offline hash text backend
madeleine bench --text-backend sentence-transformers # semantic, needs the [text] extra
| hash (offline, default) | semantic ([text], MiniLM) | |
|---|---|---|
| pull R@1 / R@10 | 0.69 / 0.81 | 0.74 / 0.82 |
| precision of involuntary fires | 0.69 | 0.70 |
| positive cues that fire their memory | 0.53 | 0.67 |
| false-trigger rate on negatives | 0.00 | 0.00 |
By cue category (hit rate = how often the right memory surfaced on its own):
| cue category | hash: hit rate | semantic: hit rate | semantic: precision |
|---|---|---|---|
| place + hour | 0.81 | 0.81 | 0.56 |
| text paraphrase only | 0.21 | 0.67 | 1.00 |
| text + place + hour | 0.67 | 0.76 | 0.76 |
| exact same photo / sound | 1.00 | 1.00 | 1.00 |
| slightly altered photo / sound | 0.00 | 0.00 | – |
| memory several years old | 0.40 | 0.60 | 0.64 |
| negatives (distractors, time-only, same place + other topic) | 0 fires | 0 fires |
Latency with 500 memories, in pure Python: sense p50 11 ms / p95 23 ms with the hash backend, p50 32 ms / p95 63 ms with the semantic one (CPU).
Honest limitations
+02:00), or "evening" means UTC evening.| Env var | Default | Meaning |
|---|---|---|
MADELEINE_DB | ~/.madeleine/madeleine.db | SQLite path (:memory: allowed) |
MADELEINE_TEXT_BACKEND | auto | auto (sentence-transformers if installed), sentence-transformers, hash |
MADELEINE_CHANNELS | all built-ins | Comma-separated enabled channels |
MADELEINE_STORE_RAW | off | Persist raw media bytes |
MADELEINE_ALLOW_LOCAL_FILES | off |
Nur der Anfang wird gezeigt; den Rest findest du im Repo