Skip to main content
Glama
WhimsicalityLabs

whimsicality-db

Official

whimsicality-db

Рабочий журнал для долгоживущих агентов. MCP-сервер на базе SQLite с отслеживанием сессий, журналированием событий и поиском FTS5 — чтобы агенты, работающие в нескольких контекстных окнах, могли вспоминать решения, искать прошлые события и отслеживать собственный прогресс.

Зачем это существует

У агентов, выполняющих долгосрочные задачи, есть проблема: когда контекстное окно заполняется, они теряют представление о том, что решили, что попробовали и что осталось сделать. История разговора уходит, и агент заново приходит к выводам, которые уже делал.

whimsicality-db решает это с помощью постоянного рабочего журнала:

  1. Создайте сессию для задачи: db_session_create({ id: "refactor-auth", name: "Refactor auth system" })

  2. Записывайте события по мере их возникновения: db_event_log({ session_id: "refactor-auth", event_type: "decision", content: "Chose JWT over session cookies for stateless auth" })

  3. Ищите прошлые решения: db_search({ query: "auth decision", collections: ["events"] })

  4. Отслеживайте задачи между контекстными окнами: db_todo_add({ title: "Implement JWT verification", session_id: "refactor-auth" })

Когда агент возвращается после сброса контекстного окна, он ищет в журнале сессии и продолжает с того места, где остановился — без повторного чтения всего разговора.

Related MCP server: MCP Tools

Быстрый старт

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

Данные хранятся в ~/.whimsicality/db-storage/whimsicality.db (SQLite, режим WAL). Установите WHIMSICALITY_DB_DIR, чтобы изменить расположение.

Миграция с whimsicality-mcp

Если вы использовали устаревший пакет whimsicality-mcp, импортируйте свои данные:

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

Импортирует записи памяти, документы и сжатые фрагменты кэша в единую таблицу записей.

Инструменты (всего 21, ~2700 токенов схемы)

Память — пары «ключ-значение» (4)

Инструмент

Описание

db_memory_set

Сохранить факт «ключ-значение». С пространством имён.

db_memory_get

Получить значение по ключу.

db_memory_list

Список ключей в пространстве имён.

db_memory_delete

Удалить ключ памяти.

Записи — единое хранилище текста с автоматическим сжатием (5)

Заменяет старые коллекции docs, cache и context. Небольшой текст хранится как есть и индексируется FTS5. Большой текст (>64 КБ) автоматически сжимается с помощью brotli и разбивается на страницы при чтении. Теги и источник необязательны.

Инструмент

Описание

db_entry_save

Сохранить текст. Автоматически сжимает, если большой. Теги и источник необязательны.

db_entry_read

Прочитать запись по ID. Поддерживает постраничный вывод через offset+length.

db_entry_list

Список записей. Необязательный фильтр по тегу.

db_entry_by_tags

Получить записи, соответствующие любому из заданных тегов.

db_entry_delete

Удалить запись.

Задачи — отслеживание задач между контекстными окнами (4)

Инструмент

Описание

db_todo_add

Добавить задачу с приоритетом, тегами, ссылкой на сессию.

db_todo_list

Список задач. Фильтр по статусу/тегу/сессии.

db_todo_update

Обновить задачу. Пустая строка очищает поле.

db_todo_delete

Удалить задачу.

Сессии — контейнеры долгосрочных задач (3)

Инструмент

Описание

db_session_create

Создать или обновить сессию для долгосрочных задач.

db_session_list

Список сессий. Необязательный фильтр по статусу. Передайте id, чтобы получить одну.

db_session_update

Обновить сессию. Пустая строка очищает имя/описание.

События — журнал сессии (2)

Инструмент

Описание

db_event_log

Записать событие в сессию. Доступно для поиска FTS5.

db_event_list

Список событий. Фильтр по сессии/типу.

Поиск + статистика + импорт (3)

Инструмент

Описание

db_search

Единый поиск FTS5 по коллекциям. Возвращает ранжированные результаты с оценками BM25.

db_stats

Статистика базы данных: количество и размер.

db_import

Импорт данных из каталога хранилища whimsicality-mcp.

Архитектура

┌──────────────────────────────────────────────────────────┐
│ 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).                  │
└──────────────────────────────────────────────────────────┘

Единый поиск

db_search({ query, collections, top_k }) выполняет поиск по памяти, записям, задачам и событиям одним вызовом. Результаты объединяются и ранжируются по оценке BM25 (чем выше, тем лучше). Каждый результат включает коллекцию, ID, оценку и, где применимо, фрагмент с совпадением.

Автоматическое сжатие

Записи размером более 64 КБ автоматически сжимаются с помощью brotli. Заголовок/краткое описание хранится в виде обычного текста для индексации FTS5. db_entry_read распаковывает по требованию с постраничным выводом через offset+length.

Примечание о нативном модуле

Этот пакет зависит от better-sqlite3 — нативного аддона Node.js. npm install обычно автоматически находит готовые бинарные файлы. Если нет, node-gyp компилирует из исходников — потребуются Python 3 и компилятор C++. В Node 22.5+ встроен node:sqlite с поддержкой FTS5, что является будущим путём без зависимостей.

Миграции схемы

Таблица schema_version отслеживает версию схемы базы данных. При открытии сервер читает версию и применяет миграции последовательно: v1→v2 (таблицы соединений тегов), v2→v3 (единая таблица записей, объединяющая docs/cache/context).

Когда какую коллекцию использовать

  • Память: небольшие пары «ключ-значение», которые нужно получать по точному ключу (факты, конфигурация)

  • Записи: любой текстовый контент — документы, ссылки, большие объёмы. Автоматическое сжатие, необязательные теги, постраничное чтение

  • Задачи: задачи, которые модель отслеживает между контекстными окнами

  • Сессии: контейнеры долгосрочных задач (группируют события и задачи)

  • События: хронологический журнал в рамках сессии (решения, вехи, ошибки)

Конфигурация

Переменная

По умолчанию

Описание

WHIMSICALITY_DB_DIR

~/.whimsicality/db-storage

Каталог хранилища базы данных

Разработка

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

67 тестов: 64 внутрипроцессных (хранилище, поиск, записи, задачи, сессии, события, валидация, импорт) + 3 смоук-теста bin (запускают фактическую точку входа bin/whimsicality-db.js).

Лицензия

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