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

> MCP Memory сохраняет решения проекта в локальных Markdown-файлах и возвращает их Claude Code между сессиями. Ниже показано подключение, настройка и проверка памяти.

Источник: https://vibeceh.ru/guides/mcp-memory-pamyat-proekta-dlya-claude-code
Автор: Сергей Мазур · опубликовано 2026-08-18

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

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

я использую codebase memory mcp как локальную систему памяти через MCP. Запрос «mcp система» здесь относится к такому способу хранения решений между чатами и сессиями. Claude Code [видит текущий проект](/guides/claude-code-bezopasnyy-dopusk-agenta-k-proektu) и окно диалога, но контекст конечен. MCP Memory выносит наружу отдельные правила, ограничения и договорённости, а потом возвращает их по запросу, не складывая всю историю общения в каждый новый чат.

Claude Code работает с файлами проекта как агент: он читает их по мере необходимости, что описано в [материале Anthropic о Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code). Но новый чат не получает автоматически все решения из старого. Длинную переписку не следует считать надёжным постоянным хранилищем решений.

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

Anthropic называет контекст критически важным, но конечным ресурсом для ИИ-агентов и разбирает это ограничение в статье [Effective context engineering for AI agents](https://www.anthropic.com/engineering/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-сервер командой `claude mcp add` с путём к `run.sh`, а затем проверяю тестовую запись в папке проекта. После добавления подключения MCP-клиент запускает сервер, когда ему нужен вызов. Отдельный процесс в терминале держать не требуется.

![Кот одобряет пять шагов подключения MCP Memory на карточках.](https://s3.regru.cloud/crossmark/statejnik/images/guides/mcp-memory-pamyat-proekta-dlya-claude-code/kadr-1.webp)

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

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

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

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

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

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

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

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

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

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

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

   

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

   

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

Если Claude сообщает: «память сохранена», это не подтверждает правильный путь и успешное чтение. Проверь Markdown-файл в папке проекта и найди ту же запись через `memory_retrieve` и `memory_search`.

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

после подключения я проверяю абсолютный `project_root`, область сервера и совместимость версии Claude Code. Команду и доступные области сверяю с актуальным [changelog Claude Code](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md).

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

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

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

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

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

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

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

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

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

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

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

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

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

в описываемой реализации MCP Memory локальное хранение состоит из двух частей: Markdown-файлы лежат в `memory/`, а индекс SQLite - в `.mcp_memory/memories.db` внутри корня проекта. Markdown можно открыть человеку, но наличие файла ещё не доказывает успешный поиск. Индекс или схема чтения могут быть не готовы вернуть запись агенту.

![Человек закрывает лицо рядом со схемой папки memory и базы memories.db.](https://s3.regru.cloud/crossmark/statejnik/images/guides/mcp-memory-pamyat-proekta-dlya-claude-code/kadr-2.webp)

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

```text
memory/
.mcp_memory/
└── memories.db
```

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

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

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

сначала проверь Markdown-файл, затем прямое чтение и только после этого индексированный поиск. Если файл есть, а результат пустой, проверь обновление индекса, корень проекта и формат запроса.

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

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

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

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

MCP Memory работает как локальный инструмент и mcp система, а не как облачный сервис и не как встроенная функция Claude Code. Записи разделяются по проектам и namespace, например `project/architecture`, остаются доступными человеку в Markdown, а SQLite хранит локальный индекс для поиска.

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

- `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, поэтому я не буду придумывать его за репозиторий.

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

я локализую сбой по цепочке: сохранить через `memory_store`, найти напрямую через `memory_retrieve`, проверить `memory_search`, перезапустить Claude Code и повторить поиск. Для безопасной проверки изменений используй подход с [просмотром diff до правки](/guides/claude-code-prosit-agenta-pokazat-diff-do-pravki). Файл на диске подтверждает наличие записи, но для проверки работы памяти дополнительно выполни прямое чтение и поиск.

![Собака в тревоге смотрит на цепочку диагностики от записи до нового запуска клиента.](https://s3.regru.cloud/crossmark/statejnik/images/guides/mcp-memory-pamyat-proekta-dlya-claude-code/kadr-3.webp)

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

1. **Сохрани простой факт.** Используй `memory_store` и короткий ключ.

2. **Найди запись напрямую.** Вызови `memory_retrieve` по тому же namespace и ключу.

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

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

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

4. **Запусти поиск по словам.** Используй `memory_search`, а не только точное чтение.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подключение выполняется через 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` внутри корня проекта. Поэтому проверяй обе части, особенно когда файл появился, но поиск не возвращает запись.

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

Для `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`.

- [GitHub - fellowgeek/mcp-memory](https://github.com/fellowgeek/mcp-memory)
- [mcp-memory/setup.py](https://github.com/fellowgeek/mcp-memory/blob/main/setup.py)
- [Effective context engineering for AI agents - Anthropic](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
- [Effective harnesses for long-running agents - Anthropic](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents)
- [How Anthropic teams use Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code)
- [How we contain Claude across products - Anthropic](https://www.anthropic.com/engineering/how-we-contain-claude)
- [Claude Code CHANGELOG](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md)
- [Memory MCP ignores custom storage path setting](https://github.com/modelcontextprotocol/servers/issues/692)
- [Memory MCP schema validation error on read_graph](https://github.com/modelcontextprotocol/servers/issues/3144)
- [MCP Server Communication Failure on Windows](https://github.com/modelcontextprotocol/servers/issues/3278)
