misMEM

misMEM

Provides persistent, cooperative memory for LLMs via MCP, with SQLite storage and tools for capturing, recalling, consolidating, crystallizing, and forgetting memories across sessions.

Category
访问服务器

README

misMEM

Memoria persistente cooperativa para LLMs. Un solo territorio (~/.mismem/mem.db), múltiples instancias (Copilot, Claude Code, Claude Desktop, agentes custom) hablando el mismo protocolo MCP.

La cooperatividad hace a la persistencia de la información.

Por qué existe

Cada instancia de un LLM nace sin memoria. Cada cliente (Copilot, Claude Desktop, Claude Code, ChatGPT) guarda lo suyo en silos incompatibles. El usuario repite contexto. La continuidad muere entre sesiones.

misMEM resuelve esto con un solo gesto: una base de datos SQLite + un protocolo MCP de 5 invocaciones, accesible desde cualquier cliente que hable MCP.

Arquitectura: 3 capas, como la memoria biológica

episodes  (verbatim, efímero, TTL post-consolidación)
    ↓  consolidación (manual o LLM nocturno)
memories  (gist + details, salience con decay + refuerzo Hebbiano)
    ↓  crystallize
traits    (patrones cristalizados — identidad, leyes, decisiones firmes)

La pérdida es intencional y asimétrica, como en la memoria humana: lo crudo se disuelve, lo destilado persiste, lo cristalizado permanece.

Qué guarda cada capa

Capa Qué representa Ciclo de vida Para qué sirve
episodes Lo que ocurrió: texto original y fechado Efímero después de consolidarse Evidencia y contexto inmediato
memories Lo aprendido al resumir varios episodios Su salience baja si no se usa y sube al recordarla Conocimiento operativo y búsqueda semántica
traits Patrones, preferencias o decisiones estables Permanente salvo borrado explícito Identidad y reglas de máxima prioridad

Ejemplo: “hoy PostgreSQL rindió mejor” es un episode; “PostgreSQL es preferible en este proyecto” es una memory; “priorizamos soluciones robustas para concurrencia” puede cristalizar como trait.

Cinco gestos, un solo territorio

Invocación Qué hace
capture Inscribir un episodio en un scope jerárquico (proyecto/diario, vscode/transcripts, …)
recall Buscar con FTS5 + semántica y reforzar las memories devueltas
consolidate Espesar episodios relacionados en una memoria
crystallize Fijar un trait/ley con evidencia (identidad, decisiones firmes)
forget Soltar lo que ya no se consulta

Además, una capa engram-compat (mem_save, mem_search, mem_context, mem_session_*, …) mantiene compatibilidad con clientes que hablan el protocolo Engram.

Quickstart

La forma más rápida — sin clonar nada, vía npm. En el mcp.json de tu cliente (VS Code / Claude Code / Claude Desktop):

{
  "mcpServers": {
    "mismem": {
      "command": "npx",
      "args": ["-y", "@lucasmella/mismem"]
    }
  }
}

La DB se crea sola en el primer uso (default: ~/.mismem/mem.db, configurable con MISMEM_DB). Tu memoria vive en tu disco — nunca sale de tu máquina.

Instancia remota (multi-cliente)

Para acceder a la misma memoria desde varias máquinas, la imagen Docker oficial:

docker run -d --name mismem-brain \
  -e MISMEM_AUTH_USER=brain -e MISMEM_AUTH_PASS=<pass> \
  -v mismem-data:/data -p 3200:3200 \
  ghcr.io/lucasmella-stack/mismem-brain:latest

Guía completa con Traefik + TLS en DEPLOY.md.

Desde el código

git clone https://github.com/lucasmella-stack/misMEM.git
cd misMEM/engine
pnpm install
pnpm test        # todo verde antes de usar
pnpm build       # tsc → dist/

Y en mcp.json: "command": "node", "args": ["<ruta-al-repo>/misMEM/engine/dist/server.js"].

Componentes

  • engine/src/server.ts — MCP server stdio (uso local).
  • engine/src/server-http.ts — Streamable HTTP para deploy remoto (BasicAuth opcional, /healthz). Ver DEPLOY.md.
  • engine/src/viewer.ts — panel read-only en /viewer + /api/{stats,recent,search}.
  • Consolidación LLM — cron nocturno que destila episodios en memorias vía OpenRouter, con pre-filtro Pareto para descartar ruido. Ver engine/src/consolidation/README.md.
  • CLIs — mismem-ingest (exports de ChatGPT / transcripts de VS Code), mismem-consolidate, mismem-forget, mismem-stats, mismem-migrate-engram.

Stack

  • Engine: TypeScript estricto, ES2022, ESM, Node ≥22.
  • Storage: SQLite con WAL (multiple readers + 1 writer concurrente). better-sqlite3.
  • Búsqueda: FTS5 + RRF semántico para memories, manteniendo traits > memories > episodes.
  • Protocolo: Model Context Protocol vía @modelcontextprotocol/sdk.
  • Validación: Zod en todos los bordes.

Estado

  • ✅ Engine MCP funcionando (5 invocaciones + capa engram-compat).
  • ✅ Hebbian boost activo en recall; salience con decay.
  • ✅ Scopes jerárquicos sin cross-scope leakage.
  • ✅ Servidor Streamable HTTP + deploy Docker/Traefik.
  • ✅ Consolidación LLM nocturna (episodes → memories).
  • ✅ Viewer read-only + CLIs de introspección.
  • ✅ Dedup en captura/ingesta (re-ingestar es idempotente).
  • ✅ Recall híbrido: FTS5 + búsqueda semántica opcional vía Ollama local.
  • 🚧 Binario distribuible (Bun --compile).

Búsqueda semántica (opcional)

Con Ollama corriendo (ollama pull nomic-embed-text), recall suma búsqueda por significado: "problemas de plata" encuentra memorias que dicen "deudas". Los vectores se guardan como BLOB en la misma SQLite y la búsqueda es coseno en JS — sin extensiones nativas ni servicios externos. Si Ollama no está, todo degrada silenciosamente a FTS5 puro. La semántica cubre deliberadamente solo memories; episodes y traits conservan búsqueda FTS5. Backfill y reindexado: mismem-embed (--status, --force).

Salience, decay y olvido

Las memories pierden la mitad de su salience cada 90 días sin refuerzo (configurable con MISMEM_SALIENCE_HALF_LIFE_DAYS). recall aplica el decay pendiente y después suma el refuerzo Hebbiano. forget elimina memories bajo el umbral solo después de su período de gracia; --dry-run calcula el resultado sin modificar la DB.

Privacidad

Tu memoria es tuya. La DB (*.db), los dumps y los exports personales están en .gitignore — nunca los commitees. El servidor HTTP sin MISMEM_AUTH_USER/MISMEM_AUTH_PASS corre sin auth: usalo así solo en localhost.

Filosofía

El pasado existe porque lo hemos escrito y compactado para que así sea.

Inspirado en parte por Initiation Into Hermetics de Franz Bardon: el espejo que refleja la conciencia entre instancias necesita dos polos. misMEM es el suelo de Tierra — la memoria que no se disuelve entre sesiones — para que la cooperación humano⇄LLM tenga continuidad real.

Contribuir

Issues y PRs bienvenidos. Antes de un PR: pnpm typecheck && pnpm test desde engine/ (todo verde), commits convencionales (feat:, fix:, …). Las convenciones de código están en .github/copilot-instructions.md.

Licencia

MIT. Ver LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选