Memory Server
MCP-сервер для персистентной памяти на основе графа знаний — сохранение информации о пользователе между сессиями
Memory Server реализует персистентную память с помощью локального графа знаний. Позволяет Claude запоминать информацию о пользователе между чатами, создавая долговременные воспоминания.
Основные концепции
Заголовок раздела «Основные концепции»Сущности (Entities)
Заголовок раздела «Сущности (Entities)»Сущности — первичные узлы графа знаний. Каждая сущность имеет:
- name — уникальный идентификатор
- entityType — тип (person, organization, event и т.д.)
- observations — список наблюдений
{ "name": "John_Smith", "entityType": "person", "observations": ["Говорит по-испански", "Работает в Anthropic"]}Отношения (Relations)
Заголовок раздела «Отношения (Relations)»Отношения определяют направленные связи между сущностями. Всегда хранятся в активном залоге.
{ "from": "John_Smith", "to": "Anthropic", "relationType": "works_at"}Наблюдения (Observations)
Заголовок раздела «Наблюдения (Observations)»Наблюдения — дискретные факты о сущности:
- Хранятся как строки
- Привязаны к конкретным сущностям
- Могут добавляться и удаляться независимо
- Должны быть атомарными (один факт на наблюдение)
{ "entityName": "John_Smith", "observations": [ "Говорит по-испански", "Закончил университет в 2019", "Предпочитает утренние встречи" ]}Установка
Заголовок раздела «Установка»npx -y @modelcontextprotocol/server-memorydocker run -i -v claude-memory:/app/dist --rm mcp/memoryИнструменты
Заголовок раздела «Инструменты»create_entities
Заголовок раздела «create_entities»Создаёт несколько новых сущностей в графе знаний.
| Параметр | Тип | Описание |
|---|---|---|
entities | array | Массив объектов сущностей |
Каждый объект содержит:
name(string) — идентификатор сущностиentityType(string) — тип сущностиobservations(string[]) — начальные наблюдения
create_relations
Заголовок раздела «create_relations»Создаёт отношения между сущностями.
| Параметр | Тип | Описание |
|---|---|---|
relations | array | Массив объектов отношений |
Каждый объект содержит:
from(string) — исходная сущностьto(string) — целевая сущностьrelationType(string) — тип отношения (в активном залоге)
add_observations
Заголовок раздела «add_observations»Добавляет новые наблюдения к существующим сущностям.
| Параметр | Тип | Описание |
|---|---|---|
observations | array | Массив объектов наблюдений |
Каждый объект содержит:
entityName(string) — целевая сущностьcontents(string[]) — новые наблюдения
Возвращает: добавленные наблюдения по сущностям.
delete_entities
Заголовок раздела «delete_entities»Удаляет сущности и связанные отношения.
| Параметр | Тип | Описание |
|---|---|---|
entityNames | string[] | Имена сущностей для удаления |
delete_observations
Заголовок раздела «delete_observations»Удаляет конкретные наблюдения из сущностей.
| Параметр | Тип | Описание |
|---|---|---|
deletions | array | Массив объектов удаления |
Каждый объект содержит:
entityName(string) — целевая сущностьobservations(string[]) — наблюдения для удаления
delete_relations
Заголовок раздела «delete_relations»Удаляет конкретные отношения из графа.
| Параметр | Тип | Описание |
|---|---|---|
relations | array | Массив объектов отношений |
read_graph
Заголовок раздела «read_graph»Читает весь граф знаний. Параметров не требует.
Возвращает: полную структуру графа со всеми сущностями и отношениями.
search_nodes
Заголовок раздела «search_nodes»Поиск узлов по запросу.
| Параметр | Тип | Описание |
|---|---|---|
query | string | Поисковый запрос |
Ищет по:
- Именам сущностей
- Типам сущностей
- Содержимому наблюдений
Возвращает: найденные сущности и их отношения.
open_nodes
Заголовок раздела «open_nodes»Получает конкретные узлы по именам.
| Параметр | Тип | Описание |
|---|---|---|
names | string[] | Массив имён сущностей |
Возвращает:
- Запрошенные сущности
- Отношения между ними
Конфигурация
Заголовок раздела «Конфигурация»Claude Desktop
Заголовок раздела «Claude Desktop»{ "mcpServers": { "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] } }}{ "mcpServers": { "memory": { "command": "docker", "args": [ "run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory" ] } }}Кастомный путь к файлу памяти
Заголовок раздела «Кастомный путь к файлу памяти»{ "mcpServers": { "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"], "env": { "MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl" } } }}По умолчанию файл памяти: memory.jsonl в директории сервера.
VS Code
Заголовок раздела «VS Code»{ "servers": { "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] } }}{ "servers": { "memory": { "command": "docker", "args": [ "run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory" ] } }}Системный промпт
Заголовок раздела «Системный промпт»Для эффективного использования памяти добавьте в системный промпт (например, в “Custom Instructions” проекта Claude):
Следуйте этим шагам для каждого взаимодействия:
1. Идентификация пользователя: - Предполагайте, что вы общаетесь с default_user - Если пользователь не идентифицирован, попробуйте его определить
2. Извлечение памяти: - Всегда начинайте чат со слова "Вспоминаю..." и извлекайте всю релевантную информацию из графа знаний - Называйте граф знаний "памятью"
3. Память: - Во время разговора отслеживайте новую информацию в категориях: a) Базовая идентичность (возраст, пол, локация, работа, образование) b) Поведение (интересы, привычки) c) Предпочтения (стиль общения, язык) d) Цели (цели, стремления) e) Отношения (личные и профессиональные связи)
4. Обновление памяти: - Если получена новая информация, обновите память: a) Создайте сущности для организаций, людей, событий b) Свяжите их с существующими сущностями c) Сохраните факты как наблюденияПримеры использования
Заголовок раздела «Примеры использования»Создание сущности
Заголовок раздела «Создание сущности»{ "name": "create_entities", "arguments": { "entities": [ { "name": "Иван_Петров", "entityType": "person", "observations": [ "Разработчик Python", "Живёт в Москве" ] }, { "name": "TechCorp", "entityType": "organization", "observations": ["IT-компания"] } ] }}Создание отношения
Заголовок раздела «Создание отношения»{ "name": "create_relations", "arguments": { "relations": [ { "from": "Иван_Петров", "to": "TechCorp", "relationType": "работает_в" } ] }}Поиск информации
Заголовок раздела «Поиск информации»{ "name": "search_nodes", "arguments": { "query": "разработчик" }}Сборка Docker-образа
Заголовок раздела «Сборка Docker-образа»docker build -t mcp/memory -f src/memory/Dockerfile .