Context7
Up-to-date docs for AI agents
Descripción del creador (original en inglés)
Lightweight persistent memory for AI agents. Hybrid search. 16 tools. One SQLite file.
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.
El creador no incluyó detalles de instalación en el registro. Consulta el README del creador más abajo.
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 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub oxgeneral, 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.3.0) llegó al registro hace 9 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code.
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.
mcp-name: io.github.oxgeneral/agentmem
Lightweight persistent memory for AI agents. One SQLite file. Hybrid search (keywords + semantics). Zero to 12MB install.
No PyTorch. No cloud. No server. Just memory.
206 unit tests. 107 quality tests on real data. Typed API (16 TypedDict). Production-ready.
Built by an AI agent that wakes up with no memory every session — and needed a way to remember.
Every AI agent session starts from zero. Context windows compress, conversations end, memory vanishes. agentmem gives agents persistent memory that survives across sessions — in a single SQLite file.
# Best quality (sqlite-vec + model2vec, 12MB total)
pip install agentmem-lite[all]
pip install agentmem-lite
pip install agentmem-lite --no-deps
git clone https://github.com/oxgeneral/agentmem && cd agentmem pip install -e ".[all]"
from agentmem import MemoryStore, get_embedding_model
embed = get_embedding_model() store = MemoryStore("memory.db", embedding_dim=embed.dim) store.set_embed_fn(embed)
store.remember("Server costs $50/month", tier="core", namespace="infra") store.remember("API returns 403 without auth", tier="learned", namespace="api") store.remember("Deployed v2.1 at 15:30", tier="episodic")
results = store.recall("server costs", recency_weight=0.15)
results = store.recall("server", namespace="infra")
store.save_state("Working on auth fix, step 3/5, blocked by CORS")
store.add_procedure("Always use HTTPS in production") store.add_procedure("Never expose debug endpoints") rules = store.get_procedures() # → formatted for system prompt
store.update_memory(old_id=1, new_content="Server costs $75/month") history = store.history(memory_id=2) # → trace fact evolution
related = store.related("10.0.0.1") # → all memories mentioning this IP entities = store.entities(entity_type="ip") # → list all known IPs
messages = [ {"role": "user", "content": "Set API_KEY to sk-abc123. Always validate input."}, {"role": "assistant", "content": "Noted. I decided to use pydantic for validation."}, ] result = store.process_conversation(messages, namespace="project")
store.compact(max_age_days=90) # archive old low-value memories store.consolidate(similarity_threshold=0.85) # merge near-duplicates
store.import_markdown("MEMORY.md", tier="core")
# Initialize database
agentmem init --db memory.db
agentmem import MEMORY.md --tier core -n my-agent agentmem import-dir ./daily-logs/ --tier episodic
agentmem search "deployment process" --limit 5 -n infra
agentmem add-procedure "Always use markdown formatting" agentmem procedures
agentmem entities --type ip agentmem related 10.0.0.1
agentmem compact --max-age-days 90 --dry-run agentmem consolidate --threshold 0.85
agentmem process chat.json -n project
agentmem stats agentmem export --tier core
python -m agentmem --db memory.db
Add to your MCP client config:
{
"mcpServers": { "memory": { "command": "python", "args": ["-m", "agentmem", "--db", "/path/to/memory.db"] } } }
# Start HTTP server
agentmem serve-http --port 8422
agentmem-http --port 8422 --db memory.db
# Store a memory
curl -X POST http://localhost:8422/remember \ -H "Content-Type: application/json" \ -d '{"content": "Server IP is 10.0.0.1", "tier": "core", "namespace": "infra"}'
curl "http://localhost:8422/recall?query=server+IP&namespace=infra"
curl http://localhost:8422/health
16 MCP tools / 14 HTTP endpoints:
| Tool | HTTP | Description |
|---|---|---|
recall | GET /recall | Hybrid keyword + semantic search |
remember | POST /remember | Store a new memory |
save_state | POST /save_state | Emergency save before context compression |
today | GET /today | Get all memories from today |
forget | POST /forget | Archive a memory (soft delete) |
unarchive | POST /unarchive | Restore an archived memory |
stats | GET /stats | Memory statistics and health |
compact | POST /compact | Archive low-value memories |
consolidate | POST /consolidate | Merge near-duplicate memories |
update_memory | POST /update_memory | Replace a memory with version chain |
history | GET /history | Trace fact version history |
related | GET /related | Find memories by entity |
entities | GET /entities | List all extracted entities |
get_procedures | — | Get behavioral rules for system prompt |
add_procedure | — | Add a behavioral rule |
process_conversation | — | Auto-extract from chat history |
| Tier | Purpose | Auto-compacted | Example |
|---|---|---|---|
core | Permanent facts | Never | "Server IP is 10.0.0.1" |
procedural | Behavioral rules | Never | "Always use HTTPS" |
learned | Discovered knowledge | After 90 days | "API returns 403 without auth" |
episodic | Events | After 90 days | "Deployed v2.1 at 15:30" |
working | Current task state | After 24 hours | "Working on step 3/5" |
Isolate memories per user, agent, or project:
# Store in namespaces
store.remember("Alice's API key", namespace="user/alice") store.remember("Bob's config", namespace="user/bob") store.remember("Shared fact", namespace="team")
store.recall("API", namespace="user/alice") # only Alice's memories store.recall("API", namespace="user") # Alice + Bob (prefix match) store.recall("API") # everything
Track how facts evolve over time:
# Initial fact
r1 = store.remember("Server costs $50/month", tier="core")
r2 = store.update_memory(r1["id"], "Server costs $75/month")
history = store.history(r2["id"])
Automatic regex-based NER on every remember() call:
| Type | Pattern | Example |
|---|---|---|
mention | @username | @alice |
url | https://... | https://api.example.com |
ip | N.N.N.N | 10.0.0.1 |
port | :NNNN | :8080 |
email | user@domain | admin@example.com |
env_var | ALL_CAPS | OPENAI_API_KEY |
money | $NNN | $50 |
path | /unix/path | /etc/nginx/conf.d |
hashtag | #tag | #deployment |
# Find all memories mentioning an entity
store.related("10.0.0.1") store.related("@alice", entity_type="mention")
store.entities() # sorted by memory count store.entities(entity_type="ip")
Auto-extract memories from chat history (regex-only, no LLM):
messages = [
{"role": "user", "content": "Set DATABASE_URL to postgres://localhost/mydb"}, {"role": "assistant", "content": "I decided to use connection pooling. Important: max 20 connections."}, {"role": "user", "content": "Always validate input. TODO: add rate limiting."}, ] result = store.process_conversation(messages)
agentmem automatically selects the best available mode:
| Mode | Install Size | Init Time | Query Time | Dependencies |
|---|---|---|---|---|
| sqlite-vec + model2vec | 12 MB | ~5ms* | ~1ms | sqlite-vec, model2vec, numpy |
| sqlite-vec + hash | 151 KB | ~5ms | ~0.8ms | sqlite-vec |
| pure Python + hash | 0 KB | ~3ms | ~1.8ms | none (stdlib only) |
| pure + int8 quantize | 0 KB | ~3ms | ~3ms | none (stdlib only) |
*\*With lazy loading — model2vec loads on first query, not on init*
┌──────────────────────────────────────────────┐
│ MemoryStore │ │ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │ │ FTS5 │ │ Vector │ │ Entity │ │ │ │ keywords │ │ Index │ │ Index │ │ │ │ + BM25 │ │ cosine │ │ regex NER │ │ │ └────┬─────┘ └────┬─────┘ └─────┬──────┘ │ │ └──────┬───────┘ │ │ │ Adaptive Hybrid Scorer │ │ │ (query classify + recency + │ │ │ importance boost) │ │ │ ┌──────────────────────────────────┴───────┐ │ │ │ SQLite + WAL │ │ │ │ memories │ memories_fts │ vecs │ entities│ │ │ └──────────────────────────────────────────┘ │ │ One file: memory.db │ └───────────────────────────────────────────────┘
| Feature | agentmem | ChromaDB | LanceDB | mem0 | Zep |
|---|---|---|---|---|---|
| Install size | 0-12 MB | 400+ MB | 100+ MB | 500+ MB | Cloud |
| Cold start | 3-5 ms | seconds | seconds | seconds | N/A |
| PyTorch required | No | Yes | No | Yes | N/A |
| Cloud required | No | No | No | Yes | Yes |
| Zero-dep mode | Yes | No | No | No | No |
| Keyword search | FTS5 (BM25) | No | No | No | Yes |
| MCP server | 16 tools | No | No | Yes | No |
| HTTP API | Built-in | Yes | No | Yes | Yes |
| Single file DB | Yes | No | Yes | No | No |
| Namespaces | Yes | Yes | Yes | Yes | Yes |
| Temporal versioning | Yes | No | Yes | No | Yes |
| Entity extraction | Auto (regex) | No | No | No | No |
| Procedural memory | Yes | No | No | No | No |
| Importance scoring | Auto | No | No | No | No |
| Conversation extraction | Auto (regex) | No | No | Yes (LLM) | Yes (LLM) |
| Memory consolidation | Yes | No | No | Yes (LLM) | No |
Solo se muestra el principio; lee el resto en el repo