Read in:
Русский

MCP-сервер памяти: постоянная self-hosted память для ИИ-агентов

Агент забывает всё, как только сессия заканчивается. MCP-сервер памяти решает это: сервис, к которому агент подключается по Model Context Protocol, записывает туда факты и находит их в следующих сессиях. Эта страница объясняет, чем варианты отличаются друг от друга, и показывает путь trip2g, где память — это обычные markdown-заметки: их можно открыть в Obsidian, посмотреть в браузере и версионировать в git.

Обновлено: июль 2026.

Краткий вердикт:

  • Быстрейший локальный вариант — официальный @modelcontextprotocol/server-memory. Одна команда npx, граф знаний в локальном файле, никаких аккаунтов.
  • Автоматическая память без дисциплины — Mem0 / OpenMemory. Сам извлекает факты из переписки.
  • Память, которую можно читать, править и публиковать — trip2g. Заметки лежат markdown-файлами; одна и та же база отвечает агенту по MCP и читателям как сайт.

Что такое MCP-сервер памяти

MCP (Model Context Protocol) — стандартный интерфейс между ИИ-клиентами (Claude Code, Claude Desktop, Cursor, Gemini CLI) и внешними инструментами. Сервер памяти — это MCP-сервер, чьи инструменты сохраняют и находят знания: агент записывает важные факты по ходу работы и ищет их в следующей сессии, вместо того чтобы заново открывать проект с нуля.

Разница между серверами сводится к трём вопросам:

  1. В какой форме хранится память? JSON-граф, векторные эмбеддинги в базе или документы, которые может прочитать человек.
  2. Кто её пишет? Автоматическое извлечение из переписки или осознанные заметки, которые агенту велено вести.
  3. Где она живёт? Файл на одном ноутбуке, управляемое облако или сервер, который вы контролируете.

Варианты, честно

Официальный сервер памяти Mem0 / OpenMemory trip2g
Формат памяти граф знаний в локальном JSONL-файле извлечённые факты + эмбеддинги markdown-заметки
Читается человеком частично (сырой JSON) через дашборд да: Obsidian, веб-страница, git diff
Автозахват из чата нет да нет: агент пишет заметки осознанно
Установка одна строка npx pip/Docker или облачный аккаунт одна Docker-команда (memcli)
Работает с нескольких машин нет (локальный файл) да (облако или self-hosted) да (сервер; доступ по токенам)
Командный контроль доступа нет на уровне workspace по заметкам, через подписки и подграфы
История версий нет ограниченно каждая правка в note_versions + git-зеркало
Одновременно сайт нет нет да
Векторный поиск нет да да (полнотекстовый + семантический)
Инфраструктура никакой векторное хранилище (или облако) один Go-бинарник + SQLite

trip2g проигрывает две строки, и это важно видеть: он не извлекает воспоминания из чата автоматически, а официальный сервер ставится быстрее. Если нужен захват без усилий на одной машине, берите одну из первых двух колонок и не читайте дальше.

Выбирайте trip2g, когда важна сама память: вы хотите проверять, что агент запомнил, исправлять это правкой файла, делить с коллегами под контролем доступа или публиковать её части.

Память как markdown: как устроен путь trip2g

Схема простая: память — это папка .md-файлов. Вотчер синхронизации отправляет каждое изменение файла на локальный сервер trip2g примерно за полсекунды, сервер его индексирует, а агент вспоминает через MCP тремя инструментами: search, expand, note_html.

Запуск одной командой из чекаута репозитория (memcli):

git clone https://github.com/trip2g/trip2g
node trip2g/cli/memcli/dist/memcli.js up --folder ./memory-vault

Когда появится memory live — web: http://localhost:24081, у вас есть:

  • MCP-эндпоинт на http://localhost:24081/_system/mcp;
  • папка под наблюдением: любой .md-файл, который запишет агент, становится доступен поиску за ~500 мс;
  • веб-интерфейс на том же порту, где память читается как сайт.

Полная настройка, включая ручной Docker-путь и регистрацию в MCP-клиенте, — в «Долгосрочной памяти для ИИ-агентов».

Проверьте, что работает

Спросите эндпоинт о его инструментах:

curl http://localhost:24081/_system/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

В ответе должны быть search, similar, note_html, expand и семейство federated_*. Затем попросите агента вызвать search("test") и прочитать один результат через note_html. Если оба вызова вернули содержимое, recall работает.

Почему извлечение остаётся дешёвым

Recall идёт по цепочке search → expand → note_html: поиск возвращает toc_path, указывающий на конкретный раздел, и агент читает только его, а не всю заметку. На заметках этого сайта это примерно в 15 раз дешевле по медиане и до 37 раз на длинных заметках. Бенчмарк воспроизводится скриптом на чистой стандартной библиотеке Python: «Экономия токенов: замеры».

Одна память — несколько поверхностей

Память — это заметки на сервере, поэтому одна и та же база одновременно:

  • память агента через /_system/mcp — с любой машины и для любого коллеги с токеном;
  • сайт, который читают люди, с контролем доступа по заметкам;
  • git-репозиторий: каждая правка снимается в версию, история памяти — это читаемый diff;
  • хаб федерации: один запрос может разлететься по базам знаний партнёров через MCP Federation.

Последний пункт отличает сервер памяти от «силоса» памяти. memcli up сам создаёт заметку hub.md, которая федерирует вашу локальную память с публичной базой trip2g.com; тем же механизмом связываются хабы коллег.

Где другие серверы лучше

Назовём компромиссы прямо:

  • Официальный сервер памяти не требует ни Docker, ни аккаунта, ни сервера. Для одной машины и скромной памяти это действительно самый простой вариант, и он бесплатный.
  • Mem0 захватывает воспоминания сам. Память trip2g растёт, только когда агент (или вы) пишет заметку; это плюс, если нужна проверяемая память, и минус, если не нужна.
  • Специализированные серверы памяти меряются бенчмарками полноты recall вроде LongMemEval; у trip2g такой оценки нет. Его измеримое число — стоимость извлечения, а не точность припоминания.

FAQ

Нужна ли векторная база?
Нет. trip2g — один Go-бинарник с SQLite, векторный индекс встроен. Официальному серверу не нужно вообще ничего; self-hosted Mem0 обычно хочет векторное хранилище.

Могу ли я прочитать, что запомнил агент?
Да, тремя способами: открыть .md-файл в Obsidian, открыть ту же заметку в браузере или посмотреть git log зеркала. Правка файла — это правка памяти.

Работает с Claude Code / Cursor / Claude Desktop?
С любым MCP-клиентом. Для Claude Code есть пошаговый туториал: постоянная память для Claude Code.

Память приватна?
По умолчанию заметки видны только с аутентификацией. Публичной заметка становится, только если добавить free: true во frontmatter. Доступ коллег ограничивается подписками и подграфами; см. справочник MCP.

Могут ли несколько агентов делить одну память?
Да. Сервер — единый источник; каждый агент подключается со своим токеном и видит те заметки, куда у него есть доступ. Машинам не нужно быть онлайн одновременно.

Что будет с памятью, если я перестану пользоваться trip2g?
Ничего страшного: это папка markdown-файлов плюс git-репозиторий. Переносите папку, и память переезжает с вами.

Чем это отличается от RAG?
RAG достаёт фрагменты в сессию, а синтез забывает. Здесь агент записывает синтез обратно заметками, и база накапливается от сессии к сессии. Паттерн описан в LLM Wiki.

Смотрите также