Вайбцех

MCP Memory: как настроить локальную память проекта за 5 шагов в 2026 году

Опубликовано 10 мин чтенияБазовый
Автор с приложенного фото показывает схему локальной памяти MCP Memory, рядом удивлённый кот.
Что узнаете
  • локальное хранилище решений проекта в Markdown
  • подключённый к Claude Code MCP-сервер
  • схема поиска и проверки сохранённого контекста
  • список типичных сбоев и способов диагностики
Применить за 30 мин
Базовый
13просмотров
Что в инструкции
  1. Зачем тебе MCP Memory, если Claude Code уже видит проект?
  2. Как подключить MCP Memory к Claude Code?
  3. Как настроить память проекта после подключения?
  4. Где хранятся файлы памяти и конфигурация MCP?
  5. Markdown и SQLite: что проверять первым?
  6. Остаются ли записи локально, без облачного сервиса?
  7. Что делать, если память сохранилась, но не находится?
  8. Вопросы и ответы

Зачем тебе MCP Memory, если Claude Code уже видит проект?

Claude Code работает с файлами проекта как агент: он читает их по мере необходимости, что описано в материале Anthropic о Claude Code. Но новый чат не получает автоматически все решения из старого. Длинную переписку не следует считать надёжным постоянным хранилищем решений.

Anthropic формулирует ограничение прямо:

Anthropic называет контекст критически важным, но конечным ресурсом для ИИ-агентов и разбирает это ограничение в статье Effective context engineering for AI agents.

Поэтому в память стоит выносить результат разговора:

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

Например, запись «долго обсуждали авторизацию» почти бесполезна. Запись «используем magic link, пароль не хранится» уже помогает следующей сессии. Ещё лучше добавить условие: решение действует, пока схема входа не изменена.

У MCP Memory две задачи. Первая - сохранить отдельное решение в Markdown. Вторая - найти его через локальный индекс SQLite. Claude Code получает инструменты memory_store, memory_retrieve, memory_search, memory_get_last и memory_update_last.

Память переносит проверенные решения между сессиями, но не проверяет текущий код и не мешает агенту без причины переписать половину приложения. Её задача уже: переносить проверенные решения из одной сессии в другую.

Как подключить MCP Memory к Claude Code?

Кот одобряет пять шагов подключения MCP Memory на карточках.

Подключение из setup-скрипта репозитория выглядит так:

bash
claude mcp add --scope user memory -- /ABSOLUTE/PATH/TO/run.sh

Здесь memory - имя подключения. /ABSOLUTE/PATH/TO/run.sh нужно заменить абсолютным путём к запускному скрипту. Я передаю серверу абсолютный путь и заранее проверяю его, чтобы project_root не смешивался с местом, из которого запущен run.sh.

  1. Найди запускной скрипт.

    Определи абсолютный путь к run.sh, который запускает mcp-memory.

    Не подставляй путь вида ./run.sh. Серверу нужен полный путь от корня файловой системы.

  2. Добавь сервер в Claude Code.

    Выполни команду подключения в терминале.

    bash
    claude mcp add --scope user memory -- /ABSOLUTE/PATH/TO/run.sh

    --scope user сохраняет подключение в пользовательской конфигурации, поэтому оно доступно в твоих проектах. Для проектной области используй только синтаксис, подтверждённый актуальной документацией Claude Code.

  3. Проверь список серверов.

    Убедись, что подключение с именем memory появилось в Claude Code.

    Сам факт появления строки в списке ещё не доказывает, что сервер отвечает. Нужна пробная запись и обратный поиск.

  4. Сохрани короткое решение.

    Открой проект в Claude Code и попроси сохранить один проверенный факт через memory_store.

    Сохранение первой записи
    Сохрани в памяти проекта короткую запись:
    namespace: project/setup
    key: first-memory-check
    content: Для проверки MCP Memory сохраняем только этот тестовый факт.
    После сохранения сообщи, какой инструмент вызван и какой ключ использован.
  5. Найди запись обратно.

    Попроси Claude Code сначала получить её напрямую, затем найти через поиск.

    Проверка чтения
    Найди запись с ключом first-memory-check через memory_retrieve.
    Затем выполни поиск через memory_search по словам "проверки MCP Memory".
    Покажи результаты обоих вызовов отдельно.

После настройки MCP-клиент запускает сервер автоматически при необходимости вызова. Если Claude отвечает словами «сохранил», но файл не появился в ожидаемой папке, остановись на диагностике. Не переходи к рабочим решениям, пока тестовая запись не проходит полный цикл.

Как настроить память проекта после подключения?

После подключения я проверяю четыре вещи:

  1. Проверь корень проекта. MCP Memory использует абсолютный project_root.

    Память привязывается к корню проекта. Ошибка в пути может создать отдельное хранилище или отправить записи не туда, где ты их ищешь.

  2. Выбери область подключения. Команда setup-скрипта использует --scope user.

    Это пользовательская область. Для проектной области в Claude Code появился .mcp.json, начиная с 0.2.50. Не смешивай эти два варианта без причины: сначала добейся рабочего подключения одним способом.

  3. Сверь версию Claude Code. Проверь, что установленная версия поддерживает нужную команду и область подключения, по актуальному changelog и документации.

  4. Проведи тест записи и чтения. Сохрани один короткий факт и проверь его двумя способами.

Диагностика совместимости
Проверь MCP Memory по порядку:
   1. сохрани запись с ключом compatibility-check;
   2. получи её через memory_retrieve;
   3. найди её через memory_search;
   4. сообщи отдельно результат каждого шага.
   Не называй проверку успешной, если инструмент вернул ошибку или пустой результат.

Не делай вывод о совместимости только по номеру версии. Сверь в актуальном changelog наличие команды подключения, нужной области и поддержки .mcp.json, а затем прогони тест записи и чтения.

Полного списка зависимостей, требований к операционной системе и матрицы поддержки для fellowgeek/mcp-memory в фактуре нет. Поэтому я не буду обещать одинаковый запуск на Windows, macOS и Linux. Если в конкретном MCP-клиенте сервер зависает или не создаёт запись, проверяй запускной скрипт и вывод ошибки отдельно от Claude Code.

Хорошая первая память короткая. Не складывай туда весь README, логи и историю чатов. Запиши решение, причину и границу применимости. Секреты, ключи, пароли, токены и непроверенные инструкции в память не отправляй.

MCP Memory полезен, когда у проекта есть повторяющиеся решения: стек, схема данных, команды миграции, ограничения интерфейса. Для одноразового маленького скрипта дополнительные инструменты могут не окупить служебную нагрузку в контексте.

MCP Memory не заменяет систему работы с ИИ. На практикуме я показываю руками связку из правил, коротких задач, проверки результата и внешней памяти. Это помогает подключить инструмент и не дать агенту снова переписать рабочую часть проекта.

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Где хранятся файлы памяти и конфигурация MCP?

Человек закрывает лицо рядом со схемой папки memory и базы memories.db.

После подключения ищи в проекте две сущности:

memory/
.mcp_memory/
└── memories.db

Папка memory/ содержит записи в формате Markdown с YAML frontmatter. Это понятный слой хранения. Файлы можно открыть, прочитать и проверить глазами.

В этой реализации .mcp_memory/memories.db - локальная SQLite-база с индексом FTS5. Она нужна MCP-серверу для поиска по ключам, тегам и содержимому.

Markdown и SQLite: что проверять первым?

После подключения я проверяю фактическую папку:

  1. записываю тестовый факт;
  2. открываю memory/;
  3. нахожу новый .md-файл;
  4. проверяю содержимое;
  5. запускаю прямое чтение;
  6. запускаю поиск.

Отдельного полного примера всех параметров MCP JSON в фактуре нет. Известно, что проектная область Claude Code использует .mcp.json, а setup-скрипт mcp-memory подключает сервер через команду claude mcp add. Поэтому не копируй случайную конфигурацию из статьи про другой сервер.

Остаются ли записи локально, без облачного сервиса?

Путь хранения находится внутри корня проекта:

  • memory/ - читаемые Markdown-записи;
  • .mcp_memory/memories.db - SQLite-индекс;
  • namespace - логическое разделение записей внутри памяти.

Можно разложить записи по смыслу:

  • project/architecture - архитектурные решения;
  • project/setup - команды запуска и настройки;
  • project/constraints - ограничения;
  • system/last_memory - отдельный checkpoint последней сессии.

Namespace помогает не смешивать разные типы контекста. Проектная изоляция помогает не искать решение одного проекта в другом. Но обе границы зависят от корректного project_root. Если путь задан неправильно, локальность сама по себе не спасает от поиска не в той папке.

В доступном README встречается обозначение mcp-memory/0.2.0 внутри примера записи. Я не использую его как подтверждение установленного релиза или конкретного набора возможностей.

Локальное хранение не означает автоматическое резервное копирование. Markdown-файлы доступны человеку, но решение о добавлении memory/ и .mcp_memory/ в систему контроля версий зависит от процесса проекта. В фактуре нет готового правила для Git, поэтому я не буду придумывать его за репозиторий.

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Что делать, если память сохранилась, но не находится?

Собака в тревоге смотрит на цепочку диагностики от записи до нового запуска клиента.

Начни с короткой тестовой записи. Не проверяй сразу сложный документ с дополнительными полями: запись может пройти, а чтение упереться в несовпадение схемы.

  1. Сохрани простой факт. Используй memory_store и короткий ключ.
Простая проверка записи
Сохрани запись через memory_store:
   namespace: project/diagnostics
   key: read-check
   content: Тестовая запись MCP Memory для проверки полного цикла.
   Используй только эти поля и сообщи результат вызова.
  1. Найди запись напрямую. Вызови memory_retrieve по тому же namespace и ключу.

    Если прямое чтение не находит запись, проверь project_root и фактическую папку memory/.

  2. Проверь файл на диске. Открой ожидаемую папку проекта и найди новый Markdown-файл.

    • файла нет - запись ушла не в тот путь или сервер не был вызван;
    • файл есть - проверь namespace, ключ и содержимое;
    • файл есть, но чтение не работает - возможна несовместимость схемы.
  3. Запусти поиск по словам. Используй memory_search, а не только точное чтение.

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

  4. Перезапусти Claude Code. Закрой текущую сессию, открой её снова и повтори прямое чтение и поиск.

    Так ты отделишь временное зависание MCP-клиента от ошибки в записи или пути.

  5. Обнови устаревшее решение. Сверь найденную запись с текущим кодом проекта.

    Старое решение опаснее пустого результата: Claude находит правдоподобный текст и принимает его за действующий. В запись добавляй дату, статус и условие, после которого решение больше не действует.

Типичные причины выглядят так:

  • абсолютный project_root указывает не на тот проект;
  • Markdown записался во временную папку;
  • MCP-клиент завис и не завершил вызов;
  • запись и чтение используют несовместимые схемы;
  • SQLite-индекс не видит новый файл;
  • поиск выполняется в другом namespace;
  • старое решение больше не соответствует коду;
  • служебное описание MCP-инструментов занимает контекст даже без полезного поиска.

Отдельно держи в голове расходы контекста. MCP-серверы способны добавлять служебную нагрузку ещё до того, как Claude нашёл нужную запись. Для короткой разовой задачи память может оказаться лишней прослойкой. Повторяющиеся архитектурные вопросы получают больше пользы от памяти, когда записи короткие и точные.

Не пытайся лечить сбой добавлением всей истории чата. Сначала локализуй место поломки:

запись -> файл -> прямое чтение -> индексированный поиск -> новый запуск клиента

Если запись есть, но поиск не работает, не объявляй память исправной. Если поиск вернул старую запись, не объявляй её актуальной. В обоих случаях сверяй результат с текущими файлами проекта.

Вопросы и ответы

Как MCP работает с кодовой базой проекта?

Я не использую MCP Memory для индексации всей кодовой базы как готового знания. В описании проекта заявлены отдельные решения, ограничения и факты в памяти проекта, а инструменты memory_store, memory_retrieve и memory_search я вызываю для работы с этим сохранённым контекстом.

Как искать сохраненные решения и контекст проекта?

Я использую memory_retrieve для точного получения записи, а memory_search - для поиска по ключам, тегам и содержимому. Если ты ищешь «mcp filesystem», не приписывай этому серверу индексацию всей кодовой базы: в описании проекта заявлены инструменты для записей памяти. Начни с известного ключа, затем проверь поиск по словам. Если результаты расходятся, проверь namespace, project_root, Markdown-файл и индекс SQLite.

Что такое файл MCP JSON и зачем он нужен?

.mcp.json хранит проектную конфигурацию MCP-серверов в Claude Code и относится к mcp config. Его структуру и доступность проектной области сверяй с актуальной документацией Claude Code. Для подключения из setup-скрипта mcp-memory используется команда claude mcp add --scope user, поэтому полный синтаксис .mcp.json нельзя восстановить только по фактам этой статьи.

Нужны ли плагины для MCP Memory?

MCP Memory описан как отдельный локальный MCP-сервер, а не как набор расширений или плагинов. Если ты ищешь «mcp plugins», проверь подключение через claude mcp add. Прямого подтверждения необходимости отдельного плагина для fellowgeek/mcp-memory в фактуре нет. Не устанавливай плагин из инструкции для другой реализации памяти без проверки README этого репозитория.

Можно ли управлять памятью проекта через MCP CLI?

Подключение выполняется через CLI-команду claude mcp add. Сама работа с записями идёт через MCP-инструменты memory_store, memory_retrieve, memory_search, memory_get_last и memory_update_last. Фактура не подтверждает отдельный CLI для ручного управления содержимым памяти.

В каком файле хранится память проекта?

Записи хранятся не в одном файле. Markdown-файлы находятся в папке memory/, а локальный индекс SQLite - в .mcp_memory/memories.db внутри корня проекта. Поэтому проверяй обе части, особенно когда файл появился, но поиск не возвращает запись.

Как MCP получает доступ к файлам проекта?

Локальный сервер получает корень проекта через абсолютный project_root. По этому пути он работает с папкой memory/ и базой .mcp_memory/memories.db. Ошибка в абсолютном пути может разделить память или отправить запись в другую директорию.

Как подключить MCP-сервер к Claude Code?

Для mcp-memory используется команда claude mcp add --scope user memory -- /ABSOLUTE/PATH/TO/run.sh. После настройки MCP-клиент запускает сервер автоматически в фоне. Для команды claude mcp add нужен Claude Code версии 0.2.32 или новее, а современное имя области user связано с изменениями из 0.2.49.

Источники

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Материал был полезен?
Сергей Мазур
Автор
Сергей Мазур
Основатель Вайбцеха

Собираю продукты с ИИ-агентами и рассказываю, как это делать без программиста.

Читайте также

Термины из инструкции