Skip to main content
Glama

memory-mcp

Постоянная, доступная для поиска, версионируемая память для ИИ-агентов — на базе Valkey (совместим с Redis), предоставляемая как MCP-сервер по HTTP.

Работает с любым агентом, поддерживающим MCP: Claude Code, Cursor, VS Code и другими.

Что он делает

  • Хранит именованные записи памяти с тегами, типами и областями видимости проекта

  • Поиск по пересечению тегов, фильтрация по типу/проекту и поиск по подстроке

  • Отслеживание обращений (записи, к которым обращаются чаще, поднимаются выше)

  • Полная история версий с возможностью отката

  • Эндпоинт для метрик Prometheus

  • Опциональная аутентификация через bearer-токен

Related MCP server: CORTEX Memory MCP

Быстрый старт

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 и отредактируйте по мере необходимости.

Переменная

По умолчанию

Описание

MEMORY_MCP_BIND

127.0.0.1

Интерфейс для привязки. Используйте 0.0.0.0 только при установленном AUTH_TOKEN.

MEMORY_MCP_HOST_PORT

3106

Порт, открытый на хосте

MEMORY_MCP_AUTH_TOKEN

(пусто)

Bearer-токен для /mcp. Пусто = без аутентификации. Сгенерировать: openssl rand -hex 32

MEMORY_MCP_MAX_ENTRIES_WARN

300

Мягкое ограничение — предупреждает при записи при превышении

MEMORY_MCP_MAX_VERSIONS_PER_ENTRY

20

Максимальное количество снимков версий на запись

MEMORY_MCP_MEM_LIMIT

256m

Ограничение памяти контейнера

VALKEY_IMAGE

valkey/valkey:9.0.3

Используемый образ 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 всегда доступны без аутентификации.

Доступные инструменты

Инструмент

Описание

memory_search

Поиск по тегам (пересечение), типу, проекту или подстроке текста

memory_get

Получение одной записи по ID (увеличивает счетчик обращений)

memory_set

Создание или обновление записи (версионируется при каждой записи)

memory_list

Список записей с опциональной фильтрацией по типу/проекту

memory_delete

Удаление записи (сначала записывается версия-метка удаления)

memory_history

Просмотр истории версий записи

memory_rollback

Восстановление записи до предыдущей версии

memory_prune_candidates

Выявление устаревших записей с нулевым количеством обращений для проверки (только чтение)

Типы памяти

pattern, decision, reference, feedback, incident, project, entity, state

Эндпоинты

Метод

Путь

Аутентификация

Описание

POST

/mcp

если настроено

Эндпоинт MCP JSON-RPC

GET

/health

нет

Проверка работоспособности

GET

/metrics

нет

Метрики Prometheus

Модель данных

Каждая запись хранится как хеш Redis по адресу mem:<id>:

Поле

Описание

title

Краткий описательный заголовок

body

Полное содержимое

type

Тип записи

tags

Список тегов через запятую

source

Кто создал

project

Область видимости проекта (пусто = кросс-проектная)

created

Дата создания в формате ISO

updated

Дата последнего обновления

hits

Количество извлечений через memory_get

ttl

Время жизни в секундах (опционально)

История версий хранится в списке Redis по адресу memver:<id> (от новых к старым, ограничено MAX_VERSIONS_PER_ENTRY).

Индексы тегов, типов и проектов — это множества Redis (tag:<name>, type:<name>, project:<name>).

Лицензия

MIT

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers