Skip to main content
Glama
axrbarsic

memory-bank-mcp

by axrbarsic
README.md
# Verifiable Memory Bank

**Русский** | [English](README.en.md) | [Українська](README.uk.md)

Verifiable Memory Bank создает локальную воспроизводимую внешнюю память для
людей и AI-клиентов. К каждому результату прикреплено точное доказательство,
поэтому найденный фрагмент можно проверить в именованном нормализованном
представлении, а его происхождение вернуть к неизменяемым исходным байтам,
датам, атрибуции и SHA-256.

<p align="center">
  <img src="docs/images/verifiable-memory-overview.png" width="470" alt="Обзор архитектуры Verifiable Memory Bank">
</p>

## Зачем это нужно

По папке документов трудно искать. Векторная база находит похожие
формулировки, но одно сходство не доказывает утверждение. Verifiable Memory
Bank разделяет эти задачи:

- исходные байты хранятся в неизменяемом хранилище с адресацией по содержимому;
- детерминированные адаптеры превращают поддерживаемые форматы в
  неперекрывающиеся сегменты;
- политика доверия помечает материал как `canon`, `context` или `unresolved`;
- полнотекстовый поиск SQLite и TF-IDF плюс NumPy SVD дают точный и смысловой
  поиск;
- Reciprocal Rank Fusion объединяет оба рейтинга в режиме `hybrid`;
- каждый результат содержит стабильный `segment_id`, а `evidence` связывает
  его с хешированным нормализованным представлением через TextPosition и
  TextQuote selectors и с исходным объектом через SHA-256;
- MCP-сервер только для чтения открывает AI-клиентам тот же интерфейс,
  ориентированный на доказательства.

Банк не считает автоматическим подтверждением смысловую близость, свежую дату
публикации, результат OCR, цитату или речь без надёжной атрибуции.

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

Нужны Python 3.11 или новее и [`uv`](https://docs.astral.sh/uv/).

```bash
git clone https://github.com/axrbarsic/verifiable-memory-bank.git
cd verifiable-memory-bank
uv tool install .

memory-bank --bank .memory-bank init
memory-bank --bank .memory-bank ingest examples/sample-corpus
memory-bank --bank .memory-bank search "amber current" --mode hybrid --limit 5
```

Скопируйте `segment_id` из результата и откройте точное доказательство:

```bash
memory-bank --bank .memory-bank evidence SEGMENT_ID
memory-bank --bank .memory-bank health
```

Флаг `--json` после `memory-bank` или подкоманды включает машиночитаемый вывод.
Тот же банк можно выбрать через `MEMORY_BANK_HOME`.

В [подробном руководстве](docs/quick-start.md) описаны конфигурация, JSON,
загрузка из inbox, приёмка и устранение неполадок.

Вымышленный sample corpus намеренно оставлен на английском. Это стабильная
fixture для воспроизводимых англоязычных поисковых тестов, а не часть
пользовательской документации.

## Интерфейс CLI

```text
memory-bank --bank PATH [--json] init
memory-bank --bank PATH [--json] ingest INPUT [INPUT ...]
memory-bank --bank PATH [--json] ingest-inbox [INBOX]
memory-bank --bank PATH [--json] status
memory-bank --bank PATH [--json] search QUERY [--mode exact|semantic|hybrid] [--limit N]
memory-bank --bank PATH [--json] source SOURCE_ID
memory-bank --bank PATH [--json] evidence SEGMENT_ID
memory-bank --bank PATH [--json] dossier TOPIC [--limit N]
memory-bank --bank PATH [--json] chronology TOPIC [--limit N]
memory-bank --bank PATH [--json] health
memory-bank --bank PATH [--json] accept
memory-bank --bank PATH [--json] migrate
```

Все фильтры и аргументы показывает `memory-bank COMMAND --help`.

## MCP

`memory-bank-mcp` обслуживает один банк через stdio и не предоставляет
инструменты изменения. Безопасный для desktop запуск по умолчанию использует
`~/.memory-bank`, а CLI использует локальный для проекта `.memory-bank`.
Переменная `MEMORY_BANK_HOME` выбирает другой абсолютный путь для обоих:

```json
{
  "mcpServers": {
    "verifiable-memory-bank": {
      "command": "memory-bank-mcp",
      "env": {
        "MEMORY_BANK_HOME": "/absolute/path/to/.memory-bank"
      }
    }
  }
}
```

Доступны инструменты `status`, `search`, `dossier`, `chronology`, `source` и
`evidence`. Перед тем как представить существенное утверждение подтверждённым,
клиент должен получить точное доказательство.

MCP возвращает переносимый `object_ref` и не передает абсолютный путь банка или
локальный `file:` URI в контекст модели. Локальный CLI и Python API сохраняют
операторский `object_path`.

## Плагин Codex

В `plugins/verifiable-memory-bank/` находится плагин с переиспользуемым
процессом проверки доказательств. [Руководство по установке](docs/plugin-installation.md)
объясняет подключение через marketplace Codex и запуск MCP-сервера.

## Форматы и расширение

В ядро входят детерминированные адаптеры для обычного текста, разметки,
структурированных данных и субтитров. Опциональные extras добавляют PDF, OCR и
медиа:

```bash
uv tool install '.[pdf]'
uv tool install '.[ocr]'
uv tool install '.[media]'
uv tool install '.[all]'
```

Неизвестный формат получает `needs_adapter`, а не вымышленный успешный
результат. См. [руководство по адаптерам](docs/adapters.md) и рабочий
[пример собственного адаптера](examples/custom-adapter.py).

## Доверие и доказательства

Доверие задаётся явной политикой, а не поисковой оценкой. `canon` может сделать
прямой первичный материал допустимым для подтверждения, `context` объясняет или
цитирует его, а `unresolved` сохраняет материал, которому ещё нужны атрибуция
или проверка. Сегменты `quote`, `ocr` и `derived` сами по себе не проходят этот
gate. Поле `claim_evaluation: not_evaluated` напоминает, что банк не
проверял entailment конкретного тезиса.

Подробности: [доверие и доказательства](docs/trust-and-evidence.md),
[`examples/trust-config.yaml`](examples/trust-config.yaml) и
[`examples/acceptance.yaml`](examples/acceptance.yaml).

## Архитектура и проверка

При загрузке система строит полную версию-кандидат, проверяет базу данных,
хеши объектов, смещения сегментов, полнотекстовый индекс, семантический артефакт
и ссылки, запечатывает effective trust policy в manifest, затем атомарно
переключает указатель `ACTIVE`. Читатели видят либо предыдущую валидную сборку,
либо новую валидную сборку.

- [Техническая архитектура](docs/architecture.md)
- [Мультимодельный prior-art аудит](docs/prior-art-audit.md)
- [Архитектурный рассказ](docs/architecture.ru.md)
- [Политика безопасности](SECURITY.md)
- [Модель приватности](PRIVACY.md)

Для разработки репозитория:

```bash
make install
make check
make acceptance
```

`make acceptance` строит wheel, устанавливает его в чистое окружение Python
3.13, дважды загружает sample corpus, проверяет идемпотентность и активацию,
затем вызывает search, health и acceptance через установленный CLI.

## Лицензии

| Материал | Лицензия |
| --- | --- |
| Программный код и исполняемые примеры | 0BSD |
| Документация и оригинальные иллюстрации | CC0-1.0 |
| Полностью вымышленный sample corpus и YAML-примеры | CC0-1.0 |
| Загруженные пользователем материалы | Проект их не перелицензирует |

См. полную [карту лицензий](LICENSES/README.md), [текст 0BSD](LICENSE) и
[юридический текст CC0-1.0](LICENSES/CC0-1.0.txt).

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct retrieval need: system status, search, topic dossier, chronology, single source, and evidence segment. No two tools serve the same purpose, making selection unambiguous.

Naming Consistency5/5

All tool names are single-word lowercase nouns, following a consistent style. Though not verb_noun, the pattern is uniform and predictable.

Tool Count5/5

6 tools is well-scoped for a memory bank server, covering querying, summarization, and provenance retrieval without excess or deficiency.

Completeness3/5

The tool surface covers retrieval comprehensively but lacks any write or update tools (e.g., add_memory, delete_source). This leaves a notable gap for interactive maintenance.

Maintenance

ActivityStale
ResponsivenessNo issues