Skip to main content
Glama

RemembrallMCP

License: MIT Crates.io CI Docker

Постоянная память знаний и интеллектуальный анализ кода для ИИ-агентов. Ядро на Rust, Postgres + pgvector, протокол MCP.

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

Решение: RemembrallMCP дает агентам две вещи, которых нет у большинства инструментов памяти:

1. Постоянная память — Решения, шаблоны и организационные знания, которые сохраняются между сеансами. Гибридный семантический + полнотекстовый поиск мгновенно находит релевантный контекст.

2. Граф зависимостей кода — Живая карта вашей кодовой базы, построенная с помощью tree-sitter. Функции, классы, импорты и связи вызовов для 8 языков. Спросите «что сломается, если я изменю это?» и получите ответ за миллисекунды — еще до того, как агент к чему-либо прикоснется.

remembrall_recall("authentication middleware patterns")
-> 3 relevant memories from past sessions

remembrall_index("/path/to/project", "myapp")
-> Builds dependency graph: 847 symbols, 1,203 relationships

remembrall_impact("AuthMiddleware", direction="upstream")
-> 12 files depend on AuthMiddleware (with confidence scores)

remembrall_store("Switched from JWT to session tokens because...")
-> Decision stored for future sessions

Почему граф кода важен

Без RemembrallMCP агенты каждый раз исследуют вашу кодовую базу с нуля. Claude Code запускает агентов Explore, Codex читает десятки файлов, Cursor выполняет grep по директориям — все это тратит токены и время только на то, чтобы понять, что и что вызывает. Одна задача «найти всех вызывающих эту функцию» может стоить тысячи токенов при множественных вызовах инструментов.

С RemembrallMCP тот же запрос — это один вызов remembrall_impact, который возвращает результат менее чем за 1 мс без затрат токенов на исследование. Граф зависимостей уже построен и готов к работе.

Без RemembrallMCP

С RemembrallMCP

«Что вызывает UserService?»

Агент делает grep, читает 8-15 файлов, запускает субагентов

remembrall_impact — 1 вызов, <1 мс

«Где определено auth middleware?»

Агент делает glob, читает совпадения, фильтрует

remembrall_lookup_symbol — 1 вызов, <1 мс

«Что мы решили насчет кэширования?»

У агента нет контекста, он спрашивает вас

remembrall_recall — 1 вызов, ~25 мс

Типичная стоимость исследования

5 000–20 000 токенов на вопрос

~200 токенов (вызов инструмента + ответ)

Экономия растет вместе с размером кодовой базы. В небольшом проекте агент может справиться с помощью grep и чтения. В монорепозитории из 500 файлов такое исследование становится «бутылочным горлышком» — агенты упираются в лимиты контекста, запускают множество субагентов или полностью пропускают межмодульные зависимости. Запросы к графу RemembrallMCP выполняются менее чем за 10 мс независимо от размера проекта, потому что структура заранее проиндексирована в Postgres, а не обнаруживается во время выполнения.

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

Бенчмарки

RemembrallMCP в настоящее время тестируется по двум направлениям:

  • Производительность агента в задачах с кодом — Протестировано на pallets/click v8.1.7 (594 символа, 1 589 связей). Пять идентичных задач по написанию кода выполнены с RemembrallMCP и без него. Полный отчет.

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

Метрика

Без RemembrallMCP

С RemembrallMCP

Дельта

Всего вызовов инструментов (5 задач)

112

5

-95.5%

Оценочное количество токенов

~56 000

~1 000

-98.2%

Ср. вызовов инструментов на вопрос

22.4

1.0

-95.5%

Экономия увеличивается на более крупных кодовых базах. Click — это около 90 файлов; в монорепозитории из 500+ файлов агентам без RemembrallMCP требуется пропорционально больше вызовов для исследования, в то время как запросы к графу остаются быстрее 10 мс независимо от размера.

Метрика воспроизведения памяти

Результат

Пройденные запросы

31 / 31

Recall@5

0.917

Precision@5

0.619

MRR

0.908

Задержка p95

14 мс

Запустите бенчмарки самостоятельно: см. benchmarks/ для получения информации о тестовом наборе и определениях задач.

Стратегию бенчмаркинга в целом (извлечение памяти, долгосрочная память, корректность графа кода и производительность агента) см. в docs/benchmark-roadmap.md.

Требования

  • Docker (для простейшей настройки) или PostgreSQL 16 с pgvector

  • Для импорта из GitHub: установленный и авторизованный GitHub CLI (gh)

Related MCP server: smriti

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

Вариант 1: Docker Compose (самый простой)

git clone https://github.com/cdnsteve/remembrallmcp.git
cd remembrallmcp

# Start Postgres + initialize schema + download embedding model
docker compose up -d

# Verify it's running
docker compose exec remembrall remembrall status

Это всё. Postgres с pgvector, схема и модель эмбеддингов настраиваются автоматически. База данных и кэш модели сохраняются после перезагрузок.

Для запуска MCP-сервера:

docker compose run --rm remembrall

Вариант 2: Загрузка предварительно собранного бинарного файла

# macOS (Apple Silicon)
curl -fsSL https://github.com/cdnsteve/remembrallmcp/releases/latest/download/remembrall-aarch64-apple-darwin.tar.gz | tar xz
sudo mv remembrall /usr/local/bin/

# Linux (x86_64)
curl -fsSL https://github.com/cdnsteve/remembrallmcp/releases/latest/download/remembrall-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv remembrall /usr/local/bin/

# Initialize (sets up Postgres via Docker, creates schema, downloads model)
remembrall init

Вариант 3: Сборка из исходного кода (требуется Rust 1.94+)

cargo build -p remembrall-server --release
# Binary is at target/release/remembrall

remembrall init

Подключение к вашему MCP-клиенту

Codex

Codex использует тот же формат определения MCP-сервера. Зарегистрируйте сервер как remembrall и укажите путь либо к установленному бинарному файлу, либо к вашей локальной сборке.

Если remembrall установлен в PATH:

{
  "mcpServers": {
    "remembrall": {
      "command": "remembrall"
    }
  }
}

Если запуск из локальной копии исходного кода:

{
  "mcpServers": {
    "remembrall": {
      "command": "/path/to/remembrallmcp/target/release/remembrall",
      "env": {
        "DATABASE_URL": "postgres://postgres:postgres@localhost:5450/remembrall"
      }
    }
  }
}

Если используется Docker Compose из Codex:

{
  "mcpServers": {
    "remembrall": {
      "command": "docker",
      "args": ["compose", "-f", "/path/to/remembrallmcp/docker-compose.yml", "run", "--rm", "-T", "remembrall"]
    }
  }
}

Перезапустите Codex после добавления сервера, чтобы он переподключился и загрузил инструменты.

Claude Code, Cursor и другие MCP-клиенты

Добавьте в .mcp.json вашего проекта (работает с Claude Code, Cursor и любым MCP-совместимым клиентом).

Если используется предварительно собранный бинарный файл или сборка из исходников:

{
  "mcpServers": {
    "remembrall": {
      "command": "remembrall"
    }
  }
}

Если используется Docker Compose:

{
  "mcpServers": {
    "remembrall": {
      "command": "docker",
      "args": ["compose", "-f", "/path/to/remembrallmcp/docker-compose.yml", "run", "--rm", "-T", "remembrall"]
    }
  }
}

Если запуск из исходного кода (не установлен в PATH):

{
  "mcpServers": {
    "remembrall": {
      "command": "/path/to/remembrallmcp/target/release/remembrall",
      "env": {
        "DATABASE_URL": "postgres://postgres:postgres@localhost:5450/remembrall"
      }
    }
  }
}

Перезапустите ваш MCP-клиент. Все 9 инструментов станут доступны автоматически.

Попробуйте

> "Store a memory: We chose Postgres over MongoDB because our query patterns
   are relational. Type: decision, tags: database, architecture"

> "Recall what we know about database decisions"

> "Index this project and show me the impact of changing UserService"

MCP-инструменты

Память

Инструмент

Описание

remembrall_recall

Поиск в памяти — гибридный семантический + полнотекстовый с использованием RRF fusion

remembrall_store

Сохранение решений, шаблонов, знаний с векторными эмбеддингами

remembrall_update

Обновление существующей записи в памяти (контент, резюме, теги или важность)

remembrall_delete

Удаление записи из памяти по UUID

remembrall_ingest_github

Массовый импорт описаний слитых PR из репозитория GitHub

remembrall_ingest_docs

Сканирование директории на наличие markdown-файлов и их импорт в память

Интеллектуальный анализ кода

Инструмент

Описание

remembrall_index

Парсинг директории проекта в граф зависимостей (8 языков)

remembrall_impact

Анализ радиуса поражения — «что сломается, если я изменю это?»

remembrall_lookup_symbol

Поиск места определения функции или класса в проекте

Поддерживаемые языки

Язык

Расширения

Оценка качества

Python

.py

A (94.1)

Java

.java

A (92.6)

JavaScript

.js, .jsx

A (92.0)

Rust

.rs

A (91.0)

Go

.go

A (90.7)

Ruby

.rb

B (87.9)

TypeScript

.ts, .tsx

B (84.3)

Kotlin

.kt, .kts

B (82.9)

Оценки измерены на реальных open-source проектах (Click, Gson, Axios, bat, Cobra, Sidekiq, Hono, Exposed) с использованием автоматизированных тестов на основе эталонных данных.

Холодный старт

Новый экземпляр RemembrallMCP не обладает знаниями. Используйте инструменты импорта для начальной загрузки из истории существующего проекта.

Из истории PR GitHub:

> remembrall_ingest_github repo="myorg/myrepo" limit=100

Извлекает слитые PR через gh, обрабатывает заголовки и тела сообщений в записи памяти и помечает их по проекту. PR с телом менее 50 символов пропускаются. Дедупликация по отпечатку контента предотвращает повторный импорт при повторных запусках.

Из markdown-документации:

> remembrall_ingest_docs path="/path/to/project"

Обходит дерево каталогов, находит все файлы .md, разбивает их по заголовкам разделов H2 и сохраняет каждый раздел как запись в памяти с возможностью поиска. Пропускает node_modules, .git, target и подобные директории. Подходит для README, ARCHITECTURE, ADR и любой другой документации.

Запустите оба инструмента по одному разу для каждого проекта. После импорта remembrall_recall получит мгновенный контекст.

Архитектура

Source Code                   Organizational Knowledge
    |                                 |
    v                                 v
Tree-sitter Parsers           Ingestion Pipeline
(8 languages)                 (GitHub PRs, Markdown docs)
    |                                 |
    v                                 v
+--------------------------------------------------+
|              Postgres + pgvector                  |
|                                                   |
|  memories (text + embeddings + metadata)          |
|  symbols (functions, classes, methods)            |
|  relationships (calls, imports, inherits)         |
+--------------------------------------------------+
                          |
                    MCP Server (stdio)
                          |
              Any MCP-compatible AI agent
  • Парсинг: tree-sitter (Rust-биндинги, без Python в конвейере)

  • Эмбеддинги: fastembed (all-MiniLM-L6-v2, 384-dim, встроенный ONNX Runtime)

  • Поиск: Гибридный RRF (семантическое косинусное сходство + полнотекстовый tsvector)

  • Запросы к графу: Рекурсивные CTE с обнаружением циклов и затуханием уверенности

  • Транспорт: stdio через rmcp

CLI-команды

Команда

Описание

remembrall init

Настройка базы данных, схемы и модели эмбеддингов

remembrall serve

Запуск MCP-сервера (по умолчанию, если подкоманда не указана)

remembrall start

Запуск контейнера базы данных Docker

remembrall stop

Остановка контейнера базы данных Docker

remembrall status

Показать количество записей в памяти, количество символов, статус подключения

remembrall doctor

Проверка на наличие распространенных проблем (Docker, pgvector, схема, модель)

remembrall reset --force

Удаление и повторное создание схемы (удаляет все данные)

remembrall version

Вывод версии и пути к конфигурации

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

Файл конфигурации: ~/.remembrall/config.toml (создается командой remembrall init)

Переменные окружения переопределяют значения из файла конфигурации:

Переменная

Описание

REMEMBRALL_DATABASE_URL или DATABASE_URL

Строка подключения к PostgreSQL

REMEMBRALL_SCHEMA

Имя схемы базы данных (по умолчанию: remembrall)

Структура проекта

crates/
  remembrall-core/          # Library - parsers, memory store, graph store, embedder
  remembrall-server/        # MCP server + CLI binary
  remembrall-test-harness/  # Parser quality testing against ground truth
  remembrall-recall-test/   # Search quality testing
docs/                       # Architecture and test plan docs
test-fixtures/              # Ground truth TOML files for 8 languages
tests/                      # Recall test fixtures

Производительность

Операция

Время

Сохранение в память

7 мс

Семантический поиск (HNSW)

<1 мс

Полнотекстовый поиск

<1 мс

Гибридный поиск (end-to-end)

~25 мс

Анализ влияния

4–9 мс

Поиск символа

<1 мс

Индексация 89 файлов Python

2.3 с

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Universal AI memory layer that provides cross-client, cross-repo context management with semantic search, automatic code indexing, and session management. Enables persistent developer memory across projects with typed memories, graph-based relationships, and RAG-powered retrieval.
    5
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A lightning-fast, self-hosted knowledge store and memory layer for AI agents
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI coding agents with persistent, graph-connected memory across projects, enabling cross-project context retrieval via synaptic connections and hybrid search.
    8 npm
    8
    MIT