Русский
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-сервер, чьи инструменты сохраняют и находят знания: агент записывает важные факты по ходу работы и ищет их в следующей сессии, вместо того чтобы заново открывать проект с нуля.
Разница между серверами сводится к трём вопросам:
- В какой форме хранится память? JSON-граф, векторные эмбеддинги в базе или документы, которые может прочитать человек.
- Кто её пишет? Автоматическое извлечение из переписки или осознанные заметки, которые агенту велено вести.
- Где она живёт? Файл на одном ноутбуке, управляемое облако или сервер, который вы контролируете.
Варианты, честно
| Официальный сервер памяти | 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.
Смотрите также
- Долгосрочная память для ИИ-агентов — полное руководство по настройке
- Постоянная память для Claude Code — туториал под конкретный клиент
- trip2g vs Mem0 vs MemGPT vs Zep — подробное сравнение
- Obsidian MCP-сервер — ваше хранилище как источник знаний агента
- Справочник MCP-сервера — инструменты, токены, контроль доступа
- MCP Federation — один запрос по многим базам