Skip to main content
Glama

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

Переменная

По умолчанию

Описание

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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)

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