Skip to main content
Glama
WhimsicalityLabs

whimsicality-db

Official

whimsicality-db

Un diario de trabajo para agentes de larga duración. Servidor MCP respaldado por SQLite con seguimiento de sesiones, registro de eventos y búsqueda FTS5, para que los agentes que trabajan en múltiples ventanas de contexto puedan recordar decisiones, buscar eventos pasados y realizar un seguimiento de su propio progreso.

Por qué existe esto

Los agentes que realizan trabajos de largo alcance tienen un problema: cuando la ventana de contexto se llena, pierden la noción de lo que decidieron, lo que probaron y lo que queda por hacer. El historial de conversación se desplaza y el agente vuelve a derivar conclusiones que ya había alcanzado.

whimsicality-db resuelve esto con un diario de trabajo persistente:

  1. Crea una sesión para la tarea: db_session_create({ id: "refactor-auth", name: "Refactor auth system" })

  2. Registra eventos a medida que ocurren: db_event_log({ session_id: "refactor-auth", event_type: "decision", content: "Chose JWT over session cookies for stateless auth" })

  3. Busca decisiones pasadas: db_search({ query: "auth decision", collections: ["events"] })

  4. Realiza un seguimiento de las tareas pendientes entre ventanas de contexto: db_todo_add({ title: "Implement JWT verification", session_id: "refactor-auth" })

Cuando el agente regresa después de un reinicio de la ventana de contexto, busca en el registro de sesión y continúa donde lo dejó, sin tener que releer toda la conversación.

Related MCP server: MCP Tools

Inicio rápido

{
  "mcpServers": {
    "whimsicality-db": {
      "command": "npx",
      "args": ["whimsicality-db"]
    }
  }
}

Los datos se almacenan en ~/.whimsicality/db-storage/whimsicality.db (SQLite, modo WAL). Establece WHIMSICALITY_DB_DIR para anularlo.

Migración desde whimsicality-mcp

Si usaste el paquete obsoleto whimsicality-mcp, importa tus datos:

db_import({ source_dir: "~/.whimsicality/mcp-storage" })

Importa entradas de memoria, documentos y fragmentos de caché comprimidos en la tabla de entradas unificada.

Herramientas (21 en total, ~2,700 tokens de esquema)

Memoria — hechos clave-valor (4)

Tool

Description

db_memory_set

Almacena un hecho clave-valor. Con espacio de nombres.

db_memory_get

Recupera un valor por clave.

db_memory_list

Lista las claves en un espacio de nombres.

db_memory_delete

Elimina una clave de memoria.

Entradas — almacén de texto unificado con compresión automática (5)

Reemplaza las antiguas colecciones de docs, cache y context. El texto pequeño se almacena tal cual y se indexa con FTS5. El texto grande (>64KB) se comprime automáticamente con brotli y se pagina al leer. Las etiquetas y la fuente son opcionales.

Tool

Description

db_entry_save

Almacena texto. Se comprime automáticamente si es grande. Etiquetas y fuente opcionales.

db_entry_read

Lee una entrada por ID. Admite paginación mediante offset+length.

db_entry_list

Lista entradas. Filtro opcional por etiqueta.

db_entry_by_tags

Obtiene entradas que coincidan con cualquiera de las etiquetas dadas.

db_entry_delete

Elimina una entrada.

Tareas pendientes — seguimiento de tareas entre ventanas de contexto (4)

Tool

Description

db_todo_add

Añade una tarea pendiente con prioridad, etiquetas y enlace de sesión.

db_todo_list

Lista tareas pendientes. Filtra por estado/etiqueta/sesión.

db_todo_update

Actualiza una tarea pendiente. Una cadena vacía borra un campo.

db_todo_delete

Elimina una tarea pendiente.

Sesiones — contenedores de tareas de largo alcance (3)

Tool

Description

db_session_create

Crea o actualiza una sesión para tareas de largo alcance.

db_session_list

Lista sesiones. Filtro opcional por estado. Pasa el id para obtener una.

db_session_update

Actualiza la sesión. Una cadena vacía borra nombre/descripción.

Eventos — registro de sesión (2)

Tool

Description

db_event_log

Registra un evento en una sesión. Buscable con FTS5.

db_event_list

Lista eventos. Filtra por sesión/tipo.

Búsqueda + estadísticas + importación (3)

Tool

Description

db_search

Búsqueda FTS5 unificada en todas las colecciones. Devuelve resultados clasificados con puntuaciones BM25.

db_stats

Estadísticas de la base de datos: recuentos y tamaño.

db_import

Importa datos del directorio de almacenamiento de whimsicality-mcp.

Arquitectura

┌──────────────────────────────────────────────────────────┐
│ SQLite Database (WAL mode)                               │
│                                                          │
│  memory       ─── memory_fts (FTS5)                     │
│  entries      ─── entries_fts (FTS5)                    │
│    ├─ small:  content_text (plain, FTS5-indexed)        │
│    └─ large:  content (brotli BLOB) + title (FTS5)      │
│  entry_tags   ── normalized tag join table               │
│  todos        ─── todos_fts  (FTS5)                     │
│  todo_tags    ── normalized tag join table               │
│  sessions     (no FTS — small, direct query)            │
│  events       ─── events_fts (FTS5)                     │
│                                                          │
│  Triggers keep FTS5 indexes in sync automatically.      │
│  WAL mode: concurrent readers + 1 writer.               │
│  CHECK constraints on status columns.                   │
│  Schema version migrations (v1→v2→v3).                  │
└──────────────────────────────────────────────────────────┘

Búsqueda unificada

db_search({ query, collections, top_k }) busca en memoria, entradas, tareas pendientes y eventos en una sola llamada. Los resultados se fusionan y clasifican por puntuación BM25 (mayor = mejor). Cada resultado incluye su colección, ID, puntuación y un extracto centrado en la coincidencia cuando corresponde.

Compresión automática

Las entradas de más de 64KB se comprimen automáticamente con brotli. El título/resumen se almacena como texto plano para la indexación FTS5. db_entry_read descomprime bajo demanda con paginación offset+length.

Nota sobre el módulo nativo

Este paquete depende de better-sqlite3, un complemento nativo de Node.js. npm install normalmente encuentra binarios precompilados automáticamente. Si no, node-gyp compila desde el código fuente; necesitarás Python 3 y un compilador de C++. Node 22.5+ incluye node:sqlite con FTS5 integrado, que es una futura ruta sin dependencias.

Migraciones de esquema

La tabla schema_version realiza un seguimiento de la versión del esquema de la base de datos. Al abrir, el servidor lee la versión y aplica las migraciones secuencialmente: v1→v2 (tablas de unión de etiquetas), v2→v3 (tabla de entradas unificada que fusiona docs/cache/context).

Cuándo usar cada colección

  • Memoria: pares clave-valor pequeños que quieras recuperar por clave exacta (hechos, configuración)

  • Entradas: cualquier contenido de texto — documentos, referencias, contenido grande. Compresión automática, etiquetas opcionales, lecturas paginadas

  • Tareas pendientes: tareas que el modelo está siguiendo entre ventanas de contexto

  • Sesiones: contenedores de tareas de largo alcance (agrupan eventos y tareas pendientes)

  • Eventos: registro cronológico dentro de una sesión (decisiones, hitos, errores)

Configuración

Variable

Default

Description

WHIMSICALITY_DB_DIR

~/.whimsicality/db-storage

Directorio de almacenamiento de la base de datos

Desarrollo

git clone https://github.com/WhimsicalityLabs/Whimsicality-DB.git
cd Whimsicality-DB
npm install
npm test

67 pruebas: 64 en proceso (almacenamiento, búsqueda, entradas, tareas pendientes, sesiones, eventos, validación, importación) + 3 pruebas de humo de bin (ejecuta el punto de entrada real bin/whimsicality-db.js).

Licencia

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.
    14
  • A
    license
    B
    quality
    A
    maintenance
    Provides context management and todo persistence with AI second opinions from ChatGPT and Claude. Enables saving code snippets, conversations, and todos across sessions with full-text search capabilities.
    3
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides persistent session memory for AI assistants, enabling them to store, search, and retrieve conversation summaries across sessions via the Model Context Protocol.
    10
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables persistent multimodal context storage for LLM agents with thread-based scoping, metadata filtering, and hybrid search capabilities.
    8
    Elastic 2.0

View all related MCP servers

Related MCP Connectors

  • Persistent memory for AI agents. Search, store, and recall across sessions.

  • Universal memory for AI agents and tools. Save, organize and search context anywhere.

  • Persistent memory for AI agents — verbatim conversations, searchable by meaning.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WhimsicalityLabs/Whimsicality-DB'

If you have feedback or need assistance with the MCP directory API, please join our Discord server