MCP server de memory-lancedb
Commit 22 oct 2026Proporciona memoria persistente a largo plazo para agentes de IA utilizando LanceDB con recuperación híbrida de vectores y palabras clave.
También conocido como cablate/memory-lancedb-mcp
- Stars
- 0
- Herramientas
- 20
- Descargas, 30 días
- —
- Última versión
- —
- Último commit
- 22 oct 2026
- Licencia
- MIT
¿Qué es memory-lancedb MCP?
memory-lancedb es un MCP server. Proporciona memoria persistente a largo plazo para agentes de IA utilizando LanceDB con recuperación híbrida de vectores y palabras clave. Expone 20 herramientas, como memory_recall, memory_store, memory_forget.
Resumen generado a partir del README del proyecto
Acerca del MCP server de memory-lancedb
memory-lancedb-mcp permite que los agentes de IA tengan la capacidad de recordar interacciones y decisiones pasadas a través de diferentes sesiones. Proporciona una capa de memoria persistente a largo plazo utilizando LanceDB, lo que permite que los agentes acumulen conocimiento automáticamente en lugar de empezar de cero cada vez que inicia un nuevo chat. Este sistema está diseñado para desarrolladores que utilizan clientes compatibles con MCP como Claude Desktop.
Los usuarios configuran el servidor definiendo variables de entorno para la API key de embeddings y un modelo de embedding específico, como text-embedding-3-small. El servidor utiliza recuperación híbrida, combinando el significado semántico con búsquedas por palabras clave para encontrar información relevante. Incluye herramientas especializadas como memory_store para guardar información, memory_recall para recuperarla y memory_update para modificar entradas existentes preservando el historial de versiones. Para mantener la base de conocimientos en buen estado, ofrece herramientas de mantenimiento como memory_lint para corregir enlaces rotos y memory_merge para combinar datos redundantes.
Qué puedes hacer con él
- 1Recordar preferencias pasadas del usuarioUn agente de IA puede recordar estilos de animación específicos o configuraciones de exportación solicitadas en conversaciones anteriores.
- 2Mantener una base de conocimientos limpiaLos desarrolladores pueden usar herramientas automatizadas para identificar y corregir memorias huérfanas o enlaces faltantes dentro de la base de datos.
- 3Visualizar conexiones de memoriaPuedes generar un grafo interactivo en HTML para ver cómo se agrupan diferentes memorias y temas.
- 4Prevenir información contradictoriaEl sistema puede alertar al agente si una nueva pieza de información entra en conflicto con algo que ya está almacenado.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Herramientas de memory-lancedb MCP 20
Detectado desde el READMEmemory_recallmemory_storememory_forgetmemory_updatememory_mergememory_historymemory_statsmemory_listmemory_lintself_improvement_logself_improvement_extract_skillself_improvement_review
| memory_recall | — | |
| memory_store | — | |
| memory_forget | — | |
| memory_update | — | |
| memory_merge | — | |
| memory_history | — | |
| memory_stats | — | |
| memory_list | — | |
| memory_lint | — | |
| self_improvement_log | — | |
| self_improvement_extract_skill | — | |
| self_improvement_review | — |
Mostrar las 20 herramientasMostrar menos herramientas
memory_visualizetextvectorcategoryscopeimportancetimestampmetadata
| memory_visualize | — | |
| text | — | |
| vector | — | |
| category | — | |
| scope | — | |
| importance | — | |
| timestamp | — | |
| metadata | — |
Configuración
EMBEDDING_API_KEYEMBEDDING_MODELMEMORY_LANCEDB_CONFIG
| Nombre | Descripción | Tipo |
|---|---|---|
| EMBEDDING_API_KEY | — | |
| EMBEDDING_MODEL | — | |
| MEMORY_LANCEDB_CONFIG | — |
Verificaciones automáticas
Ejecutado 14 nov 2026Informe completo →Aún no verificado. Un servidor necesita una puntuación de 80, ningún hallazgo grave y suficientes datos para que podamos revisarlo. Cómo funcionan las verificaciones · Qué corregir para obtener más puntos
- Repositorio de origen vinculado y accesiblecablate/memory-lancedb-mcp is public and reachablegithub.com/cablate/memory-lancedb-mcp ↗Aprobado
- El paquete indica este repositorio como su origenNo verificado
- Procedencia de la compilación (atestación de Sigstore)No verificado
- Licencia de código abierto (OSI)MITspdx.org/licenses/MIT.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-10-22github.com/cablate/memory-lancedb-mcp ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo verificado
- No hay avisos críticos en el paquete ni en sus dependenciasNo verificado
- Sin instrucciones ocultas para el modelo20 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo tool named like delete, drop or execAprobado
- El endpoint remoto responde al handshake de MCPNo verificado
README
Ver en GitHubPersistent, intelligent long-term memory for any MCP-compatible AI agent.
English | 繁體中文
Before / After
Without memory, every session starts from zero. With memory-lancedb-mcp, your agent accumulates knowledge across sessions — automatically.
Before — agent has no context:
User: "Use the same animation style as last time"
Agent: "I don't have any context about previous animations. Could you describe what you'd like?"
After — agent recalls past decisions:
<memories>
1. Remotion spring animation: use duration >= 20, damping 12-15 for smooth easing
2. Video export preset: 1080p, 30fps for social, 60fps for demo
</memories>
<refs>#1=6352a7d2 #2=bed148f0</refs>
Store responses are minimal — no noise, just confirmation:
Stored. [topic: remotion]
Quick Start
1. Install
npm install -g @cablate/memory-lancedb-mcp
2. Configure
Add to your MCP client settings (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@cablate/memory-lancedb-mcp"],
"env": {
"EMBEDDING_API_KEY": "your-api-key",
"EMBEDDING_MODEL": "text-embedding-3-small"
}
}
}
}
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@cablate/memory-lancedb-mcp"],
"env": {
"MEMORY_LANCEDB_CONFIG": "/path/to/config.json"
}
}
}
}
See config.example.json for all options.
How It Works
store recall
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ Filter junk │ │ Search by meaning │
│ Save + embed │ │ AND keywords │
│ Link related │ │ Re-rank results │
│ Flag conflicts │ │ Fade stale ones │
│ Tag topic │ │ Pull in related │
└────────┬────────┘ │ Merge duplicates │
│ └────────┬────────┘
▼ ▼
┌─────────────────────────────────────────────┐
│ LanceDB (local, zero-config) │
└─────────────────────────────────────────────┘
Every memory_store saves to a local database, automatically links related memories, flags contradictions, and assigns topic labels — no extra API calls needed. Every memory_recall searches by both meaning and keywords, pulls in related memories the main search might miss, and includes maintenance hints so the agent can keep its own knowledge base clean.
Features
Retrieval
- Finds the right memory even when you use different words — searches by meaning and exact keywords simultaneously, then combines the best of both
- More precise results, not just surface matches — an optional second pass re-ranks results by actual relevance (6 providers supported)
- Search multiple topics at once — pass a
queriesarray to search several keywords in one call; results are deduplicated and memories that match multiple queries rank higher - Finding A automatically surfaces related B — when a memory is found, its linked neighbors are pulled in too, even if they use completely different words
- Minimal token overhead — responses use compact XML tags (
<memories>,<hints>,<refs>) with short IDs, no category/scope noise
Storage
- Related memories link themselves — when you store something new, it automatically creates bidirectional links to similar existing memories
- Conflicts get flagged — if a new memory contradicts an existing one, you get a warning so nothing silently overwrites
- Topics assigned automatically — each memory gets a topic label inferred from its content and neighbors; you can also set it explicitly
- Junk gets filtered out — greetings, refusals, and meta-questions are rejected before they waste storage
Lifecycle
- Frequently used memories stay sharp, stale ones fade — a decay model balances how recent, how often accessed, and how important each memory is
- Memories earn their keep — three tiers (Peripheral → Working → Core); the more a memory gets used, the faster it promotes
- Full version history — when you update a memory, the old version is preserved in a chain you can trace with
memory_history
Maintenance
- The agent maintains itself — recall results include inline hints about duplicates, dormant memories, and contradictions
- Health checks on demand —
memory_lintfinds orphaned memories, stale entries, and missing links, then fixes what it can - Merge duplicates —
memory_mergecombines two redundant memories into one; originals are marked as superseded - See your memory space —
memory_visualizegenerates an interactive HTML graph you can open in any browser
Visualization
Run memory_visualize to generate an interactive knowledge graph of your memory space:
- Automatic clustering — related memories group together visually
- Similarity edges, duplicate detection, importance sizing
- Time filter, growth animation, cluster view
- Self-contained HTML — open in any browser
Query → embedQuery() ─┐
├─→ RRF Fusion → Rerank → Lifecycle Decay → Length Norm → Filter
Query → BM25 FTS ─────┘
| Stage | Effect |
|---|---|
| RRF Fusion | Combines semantic and exact-match recall |
| Cross-Encoder Rerank | Promotes semantically precise hits |
| Lifecycle Decay | Weibull freshness + access frequency + importance |
| Length Normalization | Prevents long entries from dominating (anchor: 500 chars) |
| Hard Min Score | Removes irrelevant results (default: 0.35) |
| MMR Diversity | Cosine similarity > 0.85 → demoted |
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
EMBEDDING_API_KEY |
Yes | API key for embedding provider |
EMBEDDING_MODEL |
No | Model name (default: text-embedding-3-small) |
EMBEDDING_BASE_URL |
No | Custom base URL for non-OpenAI providers |
MEMORY_DB_PATH |
No | LanceDB storage directory |
MEMORY_LANCEDB_CONFIG |
No | Path to JSON config file |
{
"embedding": {
"apiKey": "${EMBEDDING_API_KEY}",
"model": "jina-embeddings-v5-text-small",
"baseURL": "https://api.jina.ai/v1",
"dimensions": 1024,
"taskQuery": "retrieval.query",
"taskPassage": "retrieval.passage",
"normalized": true
},
"dbPath": "./memory-data",
"retrieval": {
"mode": "hybrid",
"vectorWeight": 0.7,
"bm25Weight": 0.3,
"minScore": 0.3,
"rerank": "cross-encoder",
"rerankApiKey": "${JINA_API_KEY}",
"rerankModel": "jina-reranker-v3",
"rerankEndpoint": "https://api.jina.ai/v1/rerank",
"rerankProvider": "jina",
"candidatePoolSize": 20,
"hardMinScore": 0.35,
"filterNoise": true
},
"enableManagementTools": true,
"enableSelfImprovementTools": false,
"enableVisualizationTools": true,
"scopes": {
"default": "global",
"definitions": {
"global": { "description": "Shared knowledge" },
"agent:my-bot": { "description": "Private to my-bot" }
},
"agentAccess": {
"my-bot": ["global", "agent:my-bot"]
}
},
"decay": {
"recencyHalfLifeDays": 30,
"frequencyWeight": 0.3,
"intrinsicWeight": 0.3
}
}
Works with any OpenAI-compatible embedding API:
| Provider | Model | Base URL | Dimensions |
|---|---|---|---|
| OpenAI | text-embedding-3-small |
https://api.openai.com/v1 |
1536 |
| Jina | jina-embeddings-v5-text-small |
https://api.jina.ai/v1 |
1024 |
| DeepInfra | Qwen/Qwen3-Embedding-8B |
https://api.deepinfra.com/v1/openai |
1024 |
| Google Gemini | gemini-embedding-001 |
https://generativelanguage.googleapis.com/v1beta/openai/ |
3072 |
| Ollama (local) | nomic-embed-text |
http://localhost:11434/v1 |
varies |
| Provider | rerankProvider |
Endpoint | Example Model |
|---|---|---|---|
| Jina | jina |
https://api.jina.ai/v1/rerank |
jina-reranker-v3 |
| Hugging Face TEI | tei |
http://host:8081/rerank |
BAAI/bge-reranker-v2-m3 |
| SiliconFlow | siliconflow |
https://api.siliconflow.com/v1/rerank |
BAAI/bge-reranker-v2-m3 |
| Voyage AI | voyage |
https://api.voyageai.com/v1/rerank |
rerank-2.5 |
| Pinecone | pinecone |
https://api.pinecone.io/rerank |
bge-reranker-v2-m3 |
| DashScope | dashscope |
https://dashscope.aliyuncs.com/api/v1/services/rerank |
gte-rerank |
Core Tools
| Tool | Description |
|---|---|
memory_recall |
Search memories — supports batch queries, relation expansion, topic filtering, and inline maintenance hints |
memory_store |
Save a memory — auto-links related ones, flags contradictions, infers topic, filters junk |
memory_forget |
Delete by ID or search query |
memory_update |
Update a memory; the old version is preserved in a version chain |
memory_merge |
Merge two memories into one |
memory_history |
Trace version history through update/merge chains |
Management Tools (opt-in)
| Tool | Description |
|---|---|
memory_stats |
Usage statistics by scope and category |
memory_list |
List recent memories with filtering |
memory_lint |
Health checks + auto-fix missing relations |
Enable: "enableManagementTools": true
Self-Improvement Tools (opt-in)
| Tool | Description |
|---|---|
self_improvement_log |
Log structured learning/error entries |
self_improvement_extract_skill |
Create skill scaffolds from learnings |
self_improvement_review |
Summarize governance backlog |
Enable: "enableSelfImprovementTools": true
Visualization Tools (on by default)
| Tool | Description |
|---|---|
memory_visualize |
Generate interactive HTML memory graph |
Params: output_path, scope, threshold (default: 0.65), max_neighbors (default: 4)
Disable: "enableVisualizationTools": false
LanceDB table memories:
| Field | Type | Description |
|---|---|---|
id |
string (UUID) | Primary key |
text |
string | Memory text (FTS indexed) |
vector |
float[] | Embedding vector |
category |
string | preference / fact / decision / entity / skill / lesson / other |
scope |
string | Scope identifier |
importance |
float | Importance score 0-1 |
timestamp |
int64 | Creation timestamp (ms) |
metadata |
string (JSON) | Extended metadata (tier, access_count, relations, topic, etc.) |
Development
git clone https://github.com/cablate/memory-lancedb-mcp.git
cd memory-lancedb-mcp
npm install
npm test
Run locally:
EMBEDDING_API_KEY=your-key npx tsx server.ts
Credits
Built on CortexReach/memory-lancedb-pro — original work by win4r and contributors.
License
MIT — see LICENSE for details.
Preguntas sobre memory-lancedb MCP
¿Qué herramientas proporciona memory-lancedb MCP?
Expone 20 herramientas, incluidas memory_recall, memory_store, memory_forget, memory_update, memory_merge.
¿Cómo funciona la recuperación de memoria?
Utiliza un enfoque híbrido que busca simultáneamente por significado semántico y palabras clave exactas, combinando luego los resultados mediante RRF Fusion.
¿Puedo visualizar mis datos de memoria?
Sí, puedes usar la herramienta memory_visualize para generar un grafo de conocimiento interactivo en HTML que muestra clusters y conexiones por similitud.
¿Qué pasa si una nueva memoria contradice una antigua?
El sistema detecta automáticamente las contradicciones durante el proceso de almacenamiento para evitar sobrescrituras silenciosas.
¿Es compatible con diferentes proveedores de embeddings?
Sí, funciona con cualquier API de embeddings compatible con OpenAI, incluyendo OpenAI, Jina, Google Gemini e instancias locales de Ollama.