memory-mcp
memory-mcp
Постоянная, доступная для поиска, версионируемая память для ИИ-агентов — на базе Valkey (совместим с Redis), предоставляемая как MCP-сервер по HTTP.
Работает с любым агентом, поддерживающим MCP: Claude Code, Cursor, VS Code и другими.
Что он делает
Хранит именованные записи памяти с тегами, типами и областями видимости проекта
Поиск по пересечению тегов, фильтрация по типу/проекту и поиск по подстроке
Отслеживание обращений (записи, к которым обращаются чаще, поднимаются выше)
Полная история версий с возможностью отката
Эндпоинт для метрик Prometheus
Опциональная аутентификация через bearer-токен
Быстрый старт
cp .env.example .env
# Optional: set MEMORY_MCP_AUTH_TOKEN in .env (see Auth section)
docker compose up -dЭта команда загружает предварительно собранный образ из GHCR. Теперь MCP-сервер доступен по адресу http://127.0.0.1:3106/mcp.
Чтобы собрать локально:
docker compose build
docker compose up -dИспользование существующего Redis или Valkey
По умолчанию docker compose up -d запускает встроенный контейнер Valkey. Чтобы подключиться к существующему экземпляру Redis или Valkey, установите VALKEY_URL и запустите только сервис memory-mcp:
# .env
VALKEY_URL=redis://your-host:6379
docker compose up -d memory-mcpРаботает любой сервер, совместимый с Redis (Redis 6+, Valkey, KeyDB, Upstash через rediss:// и т. д.). Сервер использует только базовые структуры данных: хеши, списки и множества.
Настройка агента
Скопируйте AGENTS.md из этого репозитория в корень вашего проекта. В нем описано, как агент должен использовать инструменты памяти, что хранить и когда.
Затем зарегистрируйте MCP-сервер в вашем клиентском приложении агента:
Claude Code
# Without auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp
# With auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp \
--header "Authorization: Bearer your-token"Или добавьте вручную в ~/.claude.json:
{
"mcpServers": {
"memory": {
"type": "http",
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}Cursor
Добавьте в ~/.cursor/mcp.json (глобально) или .cursor/mcp.json (для проекта):
{
"mcpServers": {
"memory": {
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}VS Code (GitHub Copilot, расширение MCP)
Добавьте в .vscode/mcp.json в вашем проекте:
{
"servers": {
"memory": {
"type": "http",
"url": "http://127.0.0.1:3106/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}Если вы не используете аутентификацию, пропустите строку headers / Authorization в любой конфигурации.
Конфигурация
Скопируйте .env.example в .env и отредактируйте по мере необходимости.
Переменная | По умолчанию | Описание |
|
| Интерфейс для привязки. Используйте |
|
| Порт, открытый на хосте |
| (пусто) | Bearer-токен для |
|
| Мягкое ограничение — предупреждает при записи при превышении |
|
| Максимальное количество снимков версий на запись |
|
| Ограничение памяти контейнера |
|
| Используемый образ Valkey |
Аутентификация
По умолчанию сервер работает без аутентификации. Это безопасно при привязке к локальному интерфейсу (127.0.0.1) и доступе только с локальной машины.
Чтобы включить аутентификацию:
# Generate a token
openssl rand -hex 32
# Add to .env
MEMORY_MCP_AUTH_TOKEN=your-generated-token
docker compose up -dВсе запросы к POST /mcp должны затем включать:
Authorization: Bearer <token>GET /health и GET /metrics всегда доступны без аутентификации.
Доступные инструменты
Инструмент | Описание |
| Поиск по тегам (пересечение), типу, проекту или подстроке текста |
| Получение одной записи по ID (увеличивает счетчик обращений) |
| Создание или обновление записи (версионируется при каждой записи) |
| Список записей с опциональной фильтрацией по типу/проекту |
| Удаление записи (сначала записывается версия-метка удаления) |
| Просмотр истории версий записи |
| Восстановление записи до предыдущей версии |
| Выявление устаревших записей с нулевым количеством обращений для проверки (только чтение) |
Типы памяти
pattern, decision, reference, feedback, incident, project, entity, state
Эндпоинты
Метод | Путь | Аутентификация | Описание |
|
| если настроено | Эндпоинт MCP JSON-RPC |
|
| нет | Проверка работоспособности |
|
| нет | Метрики Prometheus |
Модель данных
Каждая запись хранится как хеш Redis по адресу mem:<id>:
Поле | Описание |
| Краткий описательный заголовок |
| Полное содержимое |
| Тип записи |
| Список тегов через запятую |
| Кто создал |
| Область видимости проекта (пусто = кросс-проектная) |
| Дата создания в формате ISO |
| Дата последнего обновления |
| Количество извлечений через |
| Время жизни в секундах (опционально) |
История версий хранится в списке Redis по адресу memver:<id> (от новых к старым, ограничено MAX_VERSIONS_PER_ENTRY).
Индексы тегов, типов и проектов — это множества Redis (tag:<name>, type:<name>, project:<name>).
Лицензия
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/joshdougall/memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server