Skip to main content
Glama

mem0 Memory System

Логотип Mem0

@pinkpixel/mem0-mcp MCP-сервер ✨

Сервер Model Context Protocol (MCP), который интегрируется с Mem0.ai для предоставления возможностей постоянной памяти для LLM. Он позволяет агентам ИИ хранить и извлекать информацию между сеансами.

Этот сервер использует mem0ai Node.js SDK для своей основной функциональности.

Особенности 🧠

Инструменты

  • add_memory : Сохраняет фрагмент текстового содержимого как память, связанную с определенным userId .
    • Обязательно: content (строка), userId (строка)
    • Необязательно: sessionId (строка), agentId (строка), orgId (строка), projectId (строка), metadata (объект)
    • Расширенный (Cloud API): includes (строка), excludes (строка), infer (логическое значение), outputFormat (строка), customCategories (объект), customInstructions (строка), immutable (логическое значение), expirationDate (строка)
    • Сохраняет предоставленный текст, позволяя вызывать его при будущих взаимодействиях.
  • search_memory : Поиск сохраненных воспоминаний на основе запроса на естественном языке для определенного userId .
    • Требуется: query (строка), userId (строка)
    • Необязательно: sessionId (строка), agentId (строка), orgId (строка), projectId (строка), filters (объект), threshold (число)
    • Расширенный (Cloud API): topK (число), fields (массив), rerank (логическое значение), keywordSearch (логическое значение), filterMemories (логическое значение)
    • Извлекает соответствующие воспоминания на основе семантического сходства.
  • delete_memory : удаляет определенную память из хранилища по ее идентификатору.
    • Обязательно: memoryId (строка), userId (строка)
    • Необязательно: agentId (строка), orgId (строка), projectId (строка)
    • Удаляет указанную память навсегда.

Предварительные условия 🔑

Этот сервер поддерживает два режима хранения:

  1. Режим облачного хранения ☁️ (рекомендуется)
    • Требуется API-ключ Mem0 (предоставляется как переменная среды MEM0_API_KEY )
    • Воспоминания постоянно хранятся на облачных серверах Mem0.
    • Локальная база данных не требуется
  2. Режим локального хранения 💾
    • Требуется ключ API OpenAI (предоставляется как переменная среды OPENAI_API_KEY )
    • Воспоминания хранятся в векторной базе данных в памяти (по умолчанию она непостоянна)
    • Данные теряются при перезапуске сервера, если они не настроены для постоянного хранения.

Установка и настройка ⚙️

Вы можете запустить этот сервер тремя основными способами:

1. Глобальная установка (рекомендуется для частого использования)

Установите пакет глобально и используйте команду mem0-mcp :

npm install -g @pinkpixel/mem0-mcp

После глобальной установки вы можете запустить сервер напрямую:

mem0-mcp

Настройте свой клиент MCP для использования глобальной команды:

Конфигурация облачного хранилища (глобальная установка)
{ "mcpServers": { "mem0-mcp": { "command": "mem0-mcp", "args": [], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123", "ORG_ID": "your-org-id", "PROJECT_ID": "your-project-id" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory", "delete_memory" ] } } }
Конфигурация локального хранилища (глобальная установка)
{ "mcpServers": { "mem0-mcp": { "command": "mem0-mcp", "args": [], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory", "delete_memory" ] } } }

2. Использование npx (рекомендуется для эпизодического использования)

Настройте свой MCP-клиент (например, Claude Desktop, Cursor, Cline, Roo Code и т. д.) для запуска сервера с помощью npx :

Конфигурация облачного хранилища (npx)
{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123", "ORG_ID": "your-org-id", "PROJECT_ID": "your-project-id" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory", "delete_memory" ] } } }
Конфигурация локального хранилища (npx)
{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory", "delete_memory" ] } } }

3. Запуск из клонированного репозитория

Примечание: этот метод требует сначала клонирования репозитория с помощью git.

Клонируйте репозиторий, установите зависимости и соберите сервер:

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install npm run build

Затем настройте клиент MCP для запуска созданного скрипта напрямую с помощью node :

Конфигурация облачного хранилища (клонированный репозиторий)
{ "mcpServers": { "mem0-mcp": { "command": "node", "args": [ "/absolute/path/to/mem0-mcp/build/index.js" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123", "ORG_ID": "your-org-id", "PROJECT_ID": "your-project-id" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory", "delete_memory" ] } } }
Конфигурация локального хранилища (клонированный репозиторий)
{ "mcpServers": { "mem0-mcp": { "command": "node", "args": [ "/absolute/path/to/mem0-mcp/build/index.js" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory", "delete_memory" ] } } }

Важные примечания:

  1. Замените /absolute/path/to/mem0-mcp/ на фактический абсолютный путь к вашему клонированному репозиторию.
  2. Используйте файл build/index.js , а не src/index.ts
  3. Серверу MCP требуется чистый stdout для протокольной связи — любые библиотеки или код, которые записывают в stdout, могут помешать протоколу.

Идентификатор пользователя по умолчанию (необязательный резерв)

Инструменты add_memory и search_memory требуют аргумент userId для связывания воспоминаний с конкретным пользователем.

Для удобства во время тестирования или в однопользовательских сценариях вы можете опционально задать переменную окружения DEFAULT_USER_ID при запуске сервера. Если эта переменная установлена, а аргумент userId опущен при вызове инструмента search_memory , сервер будет использовать значение DEFAULT_USER_ID для поиска.

Примечание: хотя этот резервный вариант и существует, обычно рекомендуется, чтобы вызывающий агент (LLM) явно предоставлял правильный userId как для добавления, так и для поиска воспоминаний, чтобы избежать неоднозначности.

Пример конфигурации с использованием DEFAULT_USER_ID :

{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123", "ORG_ID": "your-org-id", "PROJECT_ID": "your-project-id" } } } }

Или при запуске напрямую с node :

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install npm run build
{ "mcpServers": { "mem0-mcp": { "command": "node", "args": [ "path/to/mem0-mcp/build/index.js" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" } } } }

Облако против локального хранилища 🔄

Облачное хранилище (API Mem0)

  • Постоянный по умолчанию — ваши воспоминания остаются доступными во время сеансов и перезапусков сервера.
  • Локальная база данных не требуется — все данные хранятся на серверах Mem0
  • Более высокое качество поиска — использует оптимизированные алгоритмы поиска Mem0
  • Дополнительные поля — поддерживает параметры agent_id и threshold
  • Требуется - API-ключ Mem0

Локальное хранилище (API OpenAI)

  • В памяти по умолчанию - данные хранятся только в оперативной памяти и не являются постоянными в долгосрочной перспективе . Хотя некоторое кэширование может иметь место, не следует полагаться на это для постоянного хранения.
  • Риск потери данных . Данные памяти будут потеряны при перезапуске сервера, перезагрузке системы или в случае завершения процесса.
  • Рекомендуется для — разработки, тестирования или временного использования.
  • Для постоянного хранения — используйте опцию облачного хранилища с API Mem0, если вам нужна надежная долговременная память.
  • Использует вложения OpenAI — для функциональности поиска векторов
  • Автономность — все данные остаются на вашем компьютере
  • Требуется - API-ключ OpenAI

Развитие 💻

Клонируйте репозиторий и установите зависимости:

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install

Сборка сервера:

npm run build

Для разработки с автоматической пересборкой при изменении файла:

npm run watch

Отладка 🐞

Поскольку серверы MCP взаимодействуют через stdio, отладка может быть сложной. Вот несколько подходов:

  1. Используйте MCP Inspector : этот инструмент может контролировать связь по протоколу MCP:
npm run inspector
  1. Ведение журнала консоли : при добавлении журналов консоли всегда используйте console.error() вместо console.log() чтобы избежать вмешательства в протокол MCP.
  2. Файлы среды : используйте файл .env для локальной разработки, чтобы упростить настройку ключей API и других параметров конфигурации.

Технические заметки по реализации 🔧

Расширенные параметры API Mem0

При использовании режима Cloud Storage с API Mem0 вы можете использовать дополнительные параметры для более сложного управления памятью. Хотя они явно не представлены в схеме инструмента, их можно включить в объект metadata при добавлении воспоминаний:

Расширенные параметры для add_memory :
ПараметрТипОписание
metadataобъектСохраните дополнительный контекст о памяти (например, местоположение, время, идентификаторы). Это может быть использовано для фильтрации во время поиска.
includesнитьКонкретные предпочтения для включения в память.
excludesнитьКонкретные предпочтения, которые следует исключить из памяти.
inferбулевВыводить ли воспоминания или напрямую хранить сообщения (по умолчанию: true).
output_formatнитьВерсия формата: v1.0 (по умолчанию, устарела) или v1.1 (рекомендуется).
custom_categoriesобъектСписок категорий с названиями и описаниями.
custom_instructionsнитьРекомендации по обработке и организации воспоминаний для конкретных проектов.
immutableбулевЯвляется ли память неизменной (по умолчанию: false).
expiration_dateнитьКогда истекает срок действия памяти (формат: ГГГГ-ММ-ДД).
org_idнитьИдентификатор организации, связанный с этим воспоминанием.
project_idнитьИдентификатор проекта, связанный с этим воспоминанием.
versionнитьВерсия памяти (v1 устарела, v2 рекомендуется для новых приложений).

Чтобы использовать эти параметры с сервером MCP, включите их в свой объект метаданных при вызове инструмента add_memory . Например:

{ "content": "Important information to remember", "userId": "user123", "sessionId": "project-abc", "metadata": { "includes": "important context", "excludes": "sensitive data", "immutable": true, "expiration_date": "2025-12-31", "custom_instructions": "Prioritize this memory for financial questions", "version": "v2" } }
Расширенные параметры для search_memory :

API поиска Mem0 v2 предлагает мощные возможности фильтрации, которые можно использовать с помощью параметра filters :

ПараметрТипОписание
filtersобъектСложные фильтры с логическими операторами и условиями сравнения
top_kцелое числоКоличество возвращаемых лучших результатов (по умолчанию: 10)
fieldsнить[]Конкретные поля для включения в ответ
rerankбулевСледует ли переоценивать воспоминания (по умолчанию: false)
keyword_searchбулевВыполнять ли поиск по ключевым словам (по умолчанию: false)
filter_memoriesбулевФильтровать ли воспоминания (по умолчанию: false)
thresholdчислоМинимальный порог схожести результатов (по умолчанию: 0,3)
org_idнитьИдентификатор организации для фильтрации воспоминаний
project_idнитьИдентификатор проекта для фильтрации воспоминаний

Параметр filters поддерживает сложные логические операции (И, ИЛИ) и различные операторы сравнения:

ОператорОписание
inСоответствует любому из указанных значений
gteБольше или равно
lteМеньше или равно
gtБольше чем
ltМеньше, чем
neНе равно
icontainsПроверка на наличие без учета регистра

Пример использования сложных фильтров с помощью инструмента search_memory :

{ "query": "What are Alice's hobbies?", "userId": "user123", "filters": { "AND": [ { "user_id": "alice" }, { "agent_id": {"in": ["travel-agent", "sports-agent"]} } ] }, "threshold": 0.5, "top_k": 5 }

Это позволит найти воспоминания, связанные с увлечениями Алисы, где user_id — «alice» И agent_id — либо «travel-agent», либо «sports-agent», возвращая не более 5 результатов с показателем схожести не менее 0,5.

Более подробную информацию об этих параметрах можно найти в документации API Mem0 .

SafeLogger

Сервер MCP реализует класс SafeLogger , который выборочно перенаправляет вызовы console.log из библиотеки mem0ai в stderr, не нарушая протокол MCP:

  • Перехватывает вызовы console.log и проверяет трассировки стека для определения источника
  • Перенаправляет только вызовы журнала из библиотеки mem0ai или нашего собственного кода
  • Сохраняет чистый stdout для связи по протоколу MCP
  • Автоматически очищает ресурсы при завершении процесса

Это обеспечивает корректную работу клиентов MCP, сохраняя при этом полезную отладочную информацию.

Переменные среды

Сервер распознает несколько переменных среды, которые управляют его поведением:

  • MEM0_API_KEY : API-ключ для режима облачного хранения
  • OPENAI_API_KEY : API-ключ для режима локального хранения (встраивание)
  • DEFAULT_USER_ID : идентификатор пользователя по умолчанию для операций с памятью
  • ORG_ID / YOUR_ORG_ID : идентификатор организации по умолчанию для режима облачного хранения
  • PROJECT_ID / YOUR_PROJECT_ID : идентификатор проекта по умолчанию для режима облачного хранения

Важные примечания:

  • Идентификаторы сеансов передаются как параметры инструмента (например, "sessionId": "my-session" ), а не как переменные среды.
  • При использовании инструментов параметры, предоставленные напрямую (например, orgId , projectId , sessionId ), имеют приоритет над переменными среды, что обеспечивает максимальную гибкость.

Сделано с ❤️ Pink Pixel

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Гибкая система памяти для приложений ИИ, которая поддерживает несколько поставщиков LLM и может использоваться как сервер MCP или как прямая интеграция библиотеки, обеспечивая автономное управление памятью без явных команд.

  1. Особенности 🧠
    1. Инструменты
  2. Предварительные условия 🔑
    1. Установка и настройка ⚙️
      1. Глобальная установка (рекомендуется для частого использования)
      2. Использование npx (рекомендуется для эпизодического использования)
      3. Запуск из клонированного репозитория
      4. Идентификатор пользователя по умолчанию (необязательный резерв)
    2. Облако против локального хранилища 🔄
      1. Облачное хранилище (API Mem0)
      2. Локальное хранилище (API OpenAI)
    3. Развитие 💻
      1. Отладка 🐞
        1. Технические заметки по реализации 🔧
          1. Расширенные параметры API Mem0
          2. SafeLogger
          3. Переменные среды

        Related MCP Servers

        • -
          security
          F
          license
          -
          quality
          An MCP server that allows Claude and other LLMs to manage persistent memories across conversations through text file storage, enabling commands to add, search, delete and list memory entries.
          Last updated -
          2
          TypeScript
        • -
          security
          A
          license
          -
          quality
          An MCP server that provides persistent memory capabilities for Claude, offering tiered memory architecture with semantic search, memory consolidation, and integration with the Claude desktop application.
          Last updated -
          5
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          An MCP-native server that enables intelligent task delegation from advanced AI agents like Claude to more cost-effective LLMs, optimizing for cost while maintaining output quality.
          Last updated -
          74
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that provides AI agents with persistent memory capabilities through Mem0, allowing them to store, retrieve, and semantically search memories.
          Last updated -
          2
          Python
          MIT License

        View all related MCP servers

        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/pinkpixel-dev/mem0-mcp'

        If you have feedback or need assistance with the MCP directory API, please join our Discord server