Skip to main content
Glama
Marinski
by Marinski

memory-mcp

Личная кросс-инструментальная память: поисковый эпизодический архив ИИ-сессий со всех устройств плюс курируемый слой семантических фактов с высоким уровнем доверия, предоставляемый через MCP-сервер. Разработано для self-hosted устройства на arm64, доступ только через WG. Полное описание — в docs/mcp/memory-mcp-spec.md.

Структура

Пакет

Назначение

packages/core

библиотека memory-core — хранение, разбиение на чанки, эмбеддинги, гибридный поиск, факты, очистка, дистилляция (без MCP и HTTP)

packages/cli

memoryctl — init, verify, ingest, distill, review, stats, export-vault, reembed

packages/server

MCP-сервер memory-mcp (Streamable HTTP, static bearer)

packages/evals

эталонный стенд для оценки поиска (recall@5, MRR, p95)

deploy/

compose.prod.yaml, Dockerfile, systemd-таймеры, скрипт резервного копирования

Related MCP server: Mnemo

Два слоя, два уровня доверия

  • Эпизодический архив (Qdrant memory_archive): все чанки всех сессий. Плотные (bge-m3, 1024) + разреженные (IDF-modified TF) векторы, гибридный поиск с RRF-объединением. Поиск по нему выполняется только по запросу (search_archive).

  • Семантические факты (Postgres): курируемые утверждения с указанием источника. Поверхность чтения по умолчанию (search_memory). Записываются через remember (источник user) и через одобренную человеком дистилляцию (источник distilled) — ничего дистиллированное не становится активным без memoryctl review.

MCP-поверхность

Инструменты: remember, search_memory, search_archive, forget (деструктивный, двухфазный по запросу). Ресурсы: memory://stats, memory://facts/recent, memory://facts/{id}.

Разработка

pnpm install
pnpm build        # all packages
pnpm test         # core + server suites (stores are mocked; nothing external touched)
pnpm eval         # golden-set retrieval harness (needs live stores + ingested data)

Конфигурация управляется через переменные окружения в packages/core/src/config.ts (loadConfig) — все переменные см. в deploy/.env.example.

Эксплуатация

cd deploy && cp .env.example .env   # fill in POSTGRES_PASSWORD, STATIC_BEARER, keys
docker compose -f compose.prod.yaml up -d --build
docker compose -f compose.prod.yaml exec memory-mcp memoryctl init
docker compose -f compose.prod.yaml exec memory-mcp memoryctl verify

compose.prod.yaml предполагает, что Qdrant и OpenAI-совместимый LLM-шлюз уже запущены как внешние контейнеры на вашем хосте — измените поля name: в секции networks: в соответствии с именами ваших Docker-сетей.

Ежодневные ingest+дистилляция и ночные резервные копии выполняются через systemd-таймеры (deploy/systemd/). Резервные копии автоматически удаляются на 14-й день, поэтому действие forget полностью исчезает и из резервных копий в течение этого окна.

Модель безопасности

  • Привязка только через WG, static bearer (v1); JWT на шлюзе — запланированный будущий режим аутентификации (Step 8), после появления совместимого OIDC/JWT-шлюза перед сервером.

  • Очистка (gitleaks и собственные регулярные выражения) работает по принципу fail-closed и выполняется до того, как что-либо будет пре вращено в эмбеддинги или сохранено. Неразбираемый ввод отправляет весь файл в карантин (записывается в журнал); временные сбои инфраструктуры (недоступны embedder, Qdrant, gitleaks) чисто откатываются, ничего не записывается, и файл будет обработан повторно при следующем запуске.

  • forget — жёсткое удаление в обоих хранилищах.

  • Архивные чанки возвращаются внутри ограничителей недоверенных данных — исторические транскрипты могут содержать текст, похожий на инструкции, и к нему следует относиться как к данным.

См. SECURITY.md, чтобы сообщить об уязвимости.

Участие в разработке

Issues и PR приветствуются — см. CONTRIBUTING.md по настройке окружения и конвенциям проекта, а CHANGELOG.md — по истории изменений. Этот проект следует Кодексу поведения.

Лицензия

MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    A
    maintenance
    Provides persistent, local-first AI memory across sessions via MCP tools for storing, searching, and retrieving context from past interactions.
    31
    139 PyPI
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to share a portable, user-level memory layer through MCP, allowing them to store, search, update, link, and consolidate facts with optional full-text and vector retrieval.
    7
    16 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides AI agents with persistent, human-like memory infrastructure via MCP, enabling them to store, search, summarize, and forget episodic, semantic, procedural, and working memories across sessions.
    1,822 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to persist memory across sessions through MCP, supporting semantic retrieval, source-backed context, knowledge graph relationships, supersession lineage, and topic digests.
    43
    1
    MIT