Context7
Up-to-date docs for AI agents
Descripción del creador (original en inglés)
Involuntary memory for agents: time, place, sound and IoT cues surface memories unasked
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
MADELEINE_DB, MADELEINE_TEXT_BACKENDNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"madeleine": {
"command": "uvx",
"args": [
"madeleine-mcp",
"serve"
],
"env": {
"MADELEINE_DB": "your-value",
"MADELEINE_TEXT_BACKEND": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add madeleine --env MADELEINE_DB=your-value --env MADELEINE_TEXT_BACKEND=your-value -- uvx madeleine-mcp serveCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"madeleine": {
"command": "uvx",
"args": [
"madeleine-mcp",
"serve"
],
"env": {
"MADELEINE_DB": "your-value",
"MADELEINE_TEXT_BACKEND": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"madeleine": {
"type": "stdio",
"command": "uvx",
"args": [
"madeleine-mcp",
"serve"
],
"env": {
"MADELEINE_DB": "your-value",
"MADELEINE_TEXT_BACKEND": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
MADELEINE_DB envMADELEINE_TEXT_BACKEND envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub fabianimv, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.2.0) llegó al registro anteayer.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Context7, Codebase Memory, Exa
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
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 |
Solo se muestra el principio; lee el resto en el repo