Lumena MCP Server
Что такое Lumena?
Lumena — это локально-ориентированное хранилище памяти для LLM-агентов — оно организует память агентов в структурированном дворце памяти (комнаты, локусы, фрагменты) с гибридным поиском, управляемым забыванием и нативными интеграциями. Оно полностью работает на вашем оборудовании без облачных зависимостей.
Без облака. Эмбеддинги выполняются локально через ONNX Runtime. Хранилище — однофайловый SQLite.
Опциональный демон. Фоновый планировщик автоматически запускается с
lumena serve; также может работать автономно сlumena daemon start.Гибридный поиск. BM25 (SQLite FTS5), векторный поиск по косинусной близости и опциональный обход графа с взаимным ранговым слиянием.
Управляемый жизненный цикл памяти. Трёхуровневое забывание: затухание по времени, интерференция по сходству и вытеснение по бюджету.
Интеграции. Сохранение контрольных точек LangGraph, адаптер памяти LangChain, MCP-сервер, FastAPI REST API.
Related MCP server: engram
Быстрый старт
# Clone and install (lean runtime — no torch/CUDA)
git clone https://github.com/QuantumindSSI/lumena.git
cd lumena
pip install -e . # runtime: sqlite-vec, onnxruntime, transformers tokenizer…
# Initialize
lumena init --device generic
# Start the server
lumena serve
# Dashboard at http://localhost:8848/dashboard
# API docs at http://localhost:8848/docsДля первого запуска требуется модель эмбеддингов. По умолчанию
lumenaпопытается экспортировать её, что требует тяжёлого инструментария[export]. Рекомендуемый лёгкий путь — готовый пакет модели (без инструментария): установитеLUMENA_PREBUILT_MODEL_URLили используйте установщик в одну команду.
Варианты установки (дополнительно)
Базовая установка намеренно лёгкая (без torch/CUDA). Добавляйте дополнительные компоненты только при необходимости:
Установка | Добавляет | Когда |
| Основной рантайм + инференс | Всегда |
| MCP-сервер для агентов кодирования | При использовании OpenCode/Copilot/Claude и т.д. |
| Инструментарий экспорта ONNX (optimum → torch, ~2GB) | Только для сборки модели самостоятельно |
| Мастер онбординга spaCy |
|
| Локальная LLM (llama-cpp) | Консолидация повествования |
| Адаптеры фреймворков | Для этих фреймворков |
| Всё вышеперечисленное | Полная локальная разработка |
Хранение и поиск
from lumena.config import LumenaConfig
from lumena.data.schema import get_connection
from lumena.force.mnemonic.store import store_memory
config = LumenaConfig()
conn = get_connection(config)
chunk_id = store_memory(
conn,
content="User prefers dark mode and large fonts",
room_name="preferences",
config=config,
)
conn.close()from lumena.config import LumenaConfig
from lumena.data.schema import get_connection
from lumena.conversation import ConversationMemory
config = LumenaConfig()
conn = get_connection(config)
memory = ConversationMemory(config=config, conn=conn)
turn = memory.retrieve_and_assemble("What UI settings does the user like?")
print(turn.assembled_context)$ lumena status
Lumena Status
Device: generic
Rooms: 5
Active chunks: 58
Context budget: 2048 tokens
TFC → e=0.50 a=0.50 tau=7.0 r=3Конечные точки API
GET /health Liveness probe (unversioned)
GET /dashboard Effectiveness dashboard (HTML)
GET /metrics Machine-readable metrics
GET /v1/status Palace overview
POST /v1/search Semantic + lexical hybrid search
POST /v1/store Store a memory chunk
POST /v1/feedback Log explicit or implicit feedback
POST /v1/assemble Retrieve + assemble context in one call
POST /v1/turn Store full conversation turn
GET /v1/dashboard-data Dashboard data as JSONАрхитектура
User Input → Intent Router → Parallel Retrieval (BM25 + Dense + Graph)
│
▼
RRF Fusion × V(m) × Recency
│
▼
Context Assembly (Jinja2)
│
▼
Consolidation → Decay / Interference / EvictionСостояние проекта
Lumena — это готовое к продакшену программное обеспечение. Оно работает полностью, с версионированием API, всесторонними тестами и документированными ограничениями безопасности. Оно подходит для продакшена, оценки, разработки и развёртывания в доверенной локальной сети.
Измерение | Статус | Детали |
Тесты | 320 проходят, 7 пропущено | Покрытие 75%. 43 файла тестов. |
Хранилище | Работает | SQLite с WAL, FTS5, битемпоральное отслеживание, цепочки происхождения. |
Поиск | Работает | BM25 + плотный + графовый с RRF-слиянием. |
Забывание | Работает | L1-затухание (Эббингауз), L2-интерференция, L3-вытеснение по бюджету. |
Обнаружение PII | Работает | Сканирование на основе регулярных выражений при сохранении. Настраиваемые блокировка/редактирование/хеширование. |
Журналирование аудита | Работает | Таблица SQLite audit_log с трассировкой запросов. |
API-сервер | Работает | FastAPI с версионированием |
MCP-сервер | Работает | 7 инструментов (search, store, assemble, turn, feedback, status, dashboard). |
LangChain | Работает | Адаптер LumenaChatMemory (требуется пакет |
LangGraph | Работает | LumenaCheckpointSaver (требуется пакет |
Шифрование в покое | Реализовано, опционально | SQLCipher (вся БД) или Fernet (на уровне полей) через |
Бенчмарки BEIR | Частично оценено | Доступны результаты подмножества 500 документов/20 запросов. Полная оценка корпуса отложена до HPC. |
P2P-обмен | Работает | Протокол Beam с шифрованием AES-256-GCM, подписью HMAC-SHA256, защитой от повторного воспроизведения. Требуется p2p-ключ. |
Наборы бенчмарков
Все запускаются одной командой из корня репозитория:
Набор | Команда | Статус |
Поиск (R@k, nDCG, MRR) |
| Запущен (синтетический корпус) |
E2E качество памяти |
| Запущен (28 запросов) |
Эффективность навигации |
| Запущен |
Абляция (изоляция компонентов) |
| Запущен |
Забывание (выживание за 90 дней) |
| Запущен (результаты доступны) |
Производительность (задержка/ресурсы) |
| Запущен (результаты доступны; x86_64) |
Оценка подмножества BEIR |
| Запущен (доступны результаты подмножества 500 документов/20 запросов) |
Оптическая деградация |
| Запущен (результаты доступны) |
Чувствительность TFC |
| Запущен (результаты доступны) |
Стресс (массовая загрузка) |
| Запущен (доступны результаты 20k фрагментов; x86_64) |
Кросс-системный (сравнение с Chroma/FAISS) |
| Каркас готов; результатов пока нет |
Все наборы |
| Обёртка всех 11 наборов |
Примечание о результатах: Бенчмарки поиска используют синтетический корпус с перекрытием ключевых слов (1000 отрывков, 50 запросов) плюс оценку подмножества BEIR (подмножества из 500 отрывков и 20 запросов по 5 стандартным наборам данных). Синтетический корпус намеренно прост (BM25 почти насыщает nDCG), поэтому относитесь к этим цифрам как к проверке работоспособности каркаса, а не как к заявлению о качестве поиска — подмножества BEIR являются значимым сигналом. Зафиксированный артефакт поиска был перегенерирован с реальными эмбеддерами (all-MiniLM-L6-v2 и BAAI/bge-small-en-v1.5); бенчмарки отказываются работать с фиктивными эмбеддингами.
Интеграции
Интеграция | Что делает | Как использовать |
MCP-сервер | Предоставляет инструменты Lumena для OpenCode, Claude Desktop |
|
LangChain | Адаптер |
|
LangGraph |
|
|
FastAPI | REST API с аутентификацией/ограничением скорости |
|
OpenCode | Нативный навык для рабочих процессов памяти | См. |
Структура проекта
lumena/
├── config.py Configuration (pydantic-settings)
├── search.py Search pipeline orchestration
├── fusion.py RRF fusion + reranking
├── controller.py Twin-Force state controller
├── conversation.py Context assembly + turn tracking
├── repair.py Self-healing retrieval
├── intent.py Intent router (keyword + optional LR)
├── api/ FastAPI server + dashboard
├── cli/ Typer CLI
├── data/ Schema, migrations, backup
├── force/
│ ├── mnemonic/ Store, retrieval, decay, interference, eviction, provenance
│ └── contextual/ Embedding, token budget, assembly
├── integrations/ LangChain, LangGraph, MCP server
├── p2p/ Beam P2P sharing protocol
├── sovereign/ FRQAD, optical quantization, local LLM
├── brand/ Error hierarchy
└── compliance/ Safety forgetting, PII audit
tests/ 43 test files, 327 tests
benchmarks/ 11 benchmark suitesВклад в проект
Мы приветствуем вклад. Лучший способ начать:
Прочитайте
CONTRIBUTING.md— настройка, именование веток, стандарты кода.Выберите
good first issueиз трекера задач.Запустите тесты:
pytest tests/(должны проходить с покрытием ≥50%).Отправьте PR в ветку
main.
Области с высокой отдачей для вклада
Запустите полный каркас BEIR — создайте результаты бенчмарков поиска масштаба лидерборда.
Запустите набор производительности на реальном оборудовании — заявления о потреблении RAM/задержек требуют измеренных артефактов (RPi5, Jetson, x86_64).
Напишите тесты — нескольким модулям не хватает выделенных файлов тестов. Выберите один и добавьте покрытие.
Настройка разработки
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ # Run full suite
pytest tests/ --cov=lumena # With coverage
ruff check lumena/ tests/ # LintДокументация
Документ | Назначение |
Руководство по развёртыванию в продакшене | |
Как внести вклад | |
Политика безопасности и известные ограничения | |
Руководства по интеграции для каждой платформы | |
Вехи разработки и открытые задачи | |
Вводный технический документ |
Сообщество
Matrix:
#lumena:matrix.org
Лицензия
Lumena распространяется по двойной лицензии:
Community Edition — AGPL-3.0-or-later. Бесплатное и открытое программное обеспечение. Если вы запускаете модифицированную версию Lumena в качестве сетевого сервиса, AGPL требует предоставить ваш исходный код его пользователям.
Pro / Commercial Edition — коммерческая лицензия от QuantumindSSI, которая снимает обязательства AGPL и открывает функции Pro. См.
COMMERCIAL-LICENSE.md.
Версии вплоть до v1.0.0 включительно выпускались под лицензией Apache 2.0
(LICENSES/Apache-2.0.txt); предоставленные на этих выпусках права безотзывны. По коммерческим вопросам: licensing@quantumindssi.com.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityBmaintenanceAn MCP-native, local-first memory server that gives AI agents persistent, structured memory across sessions and tools, enabling them to maintain identity and context without reconfiguration.3MIT
- AlicenseNot gradedqualityCmaintenanceProvides persistent, local-first AI memory across sessions via MCP tools for storing, searching, and retrieving context from past interactions.1MIT
- AlicenseNot gradedqualityAmaintenanceProvides persistent memory for AI coding agents via MCP, enabling agents to store and semantically recall facts, events, and lessons across sessions, all running locally without cloud dependencies.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceLocal-first AI memory layer with hybrid retrieval and brain-inspired namespaces. Enables agents to save, search, and manage memories directly via MCP tools.5MIT
Related MCP Connectors
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Shared long-term memory vault for AI agents with 20 MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/QuantmindSSI/lummenna'
If you have feedback or need assistance with the MCP directory API, please join our Discord server