Integrations
Enables GitHub Copilot to access the persistent knowledge graph memory system through the model context protocol.
Uses Neo4j as the storage backend for the knowledge graph, providing unified graph storage and vector search capabilities.
Leverages OpenAI's embedding models for semantic search capabilities, supporting multiple models including text-embedding-3-small/large.
Memento MCP: система памяти на основе графа знаний для LLM
Масштабируемая, высокопроизводительная система памяти графа знаний с семантическим поиском, контекстным вызовом и временной осведомленностью. Предоставляет любому клиенту LLM, который поддерживает протокол контекста модели (например, Claude Desktop, Cursor, Github Copilot), устойчивую, адаптивную и постоянную долгосрочную онтологическую память.
Основные концепции
Сущности
Сущности являются основными узлами в графе знаний. Каждая сущность имеет:
- Уникальное имя (идентификатор)
- Тип сущности (например, «лицо», «организация», «событие»)
- Список наблюдений
- Векторные вложения (для семантического поиска)
- Полная история версий
Пример:
Отношения
Отношения определяют направленные связи между сущностями с расширенными свойствами:
- Показатели силы (0,0-1,0)
- Уровни достоверности (0,0-1,0)
- Богатые метаданные (источник, временные метки, теги)
- Временная осведомленность с историей версий
- Снижение уверенности с течением времени
Пример:
Хранилище данных
Memento MCP использует Neo4j в качестве внутреннего хранилища, предоставляя единое решение как для хранения графов, так и для поиска векторов.
Почему Neo4j?
- Унифицированное хранилище : объединяет графическое и векторное хранилище в единую базу данных.
- Собственные графовые операции : созданы специально для обхода графа и запросов.
- Интегрированный поиск векторов : поиск векторного сходства для вложений, встроенный непосредственно в Neo4j
- Масштабируемость : более высокая производительность с большими графами знаний
- Упрощенная архитектура : чистый дизайн с единой базой данных для всех операций
Предпосылки
- Neo4j 5.13+ (требуется для возможностей векторного поиска)
Настройка рабочего стола Neo4j (рекомендуется)
Самый простой способ начать работу с Neo4j — использовать Neo4j Desktop :
- Загрузите и установите Neo4j Desktop с https://neo4j.com/download/
- Создать новый проект
- Добавить новую базу данных
- Установите пароль
memento_password
(или другой пароль по вашему выбору) - Запустить базу данных
База данных Neo4j будет доступна по адресу:
- URI Bolt :
bolt://127.0.0.1:7687
(для подключений драйверов) - HTTP :
http://127.0.0.1:7474
(для пользовательского интерфейса браузера Neo4j) - Учетные данные по умолчанию : имя пользователя:
neo4j
, пароль:memento_password
(или любой другой, который вы настроили)
Настройка Neo4j с Docker (альтернативный вариант)
В качестве альтернативы вы можете использовать Docker Compose для запуска Neo4j:
При использовании Docker база данных Neo4j будет доступна по адресу:
- URI Bolt :
bolt://127.0.0.1:7687
(для подключений драйверов) - HTTP :
http://127.0.0.1:7474
(для пользовательского интерфейса браузера Neo4j) - Учетные данные по умолчанию : имя пользователя:
neo4j
, пароль:memento_password
Сохранение и управление данными
Данные Neo4j сохраняются при перезапуске контейнера и даже при обновлении версии благодаря конфигурации тома Docker в файле docker-compose.yml
:
Эти сопоставления гарантируют, что:
- Каталог
/data
(содержит все файлы базы данных) сохраняется на вашем хосте по адресу./neo4j-data
- Каталог
/logs
сохраняется на вашем хосте по адресу./neo4j-logs
- Каталог
/import
(для импорта файлов данных) сохраняется в./neo4j-import
При необходимости вы можете изменить эти пути в файле docker-compose.yml
чтобы хранить данные в разных местах.
Обновление версии Neo4j
Вы можете менять редакции и версии Neo4j без потери данных:
- Обновите версию образа Neo4j в
docker-compose.yml
- Перезапустите контейнер с помощью
docker-compose down && docker-compose up -d neo4j
- Повторно инициализируйте схему с помощью
npm run neo4j:init
Данные будут сохраняться в ходе этого процесса до тех пор, пока сопоставления объемов остаются прежними.
Полный сброс базы данных
Если вам необходимо полностью сбросить базу данных Neo4j:
Резервное копирование данных
Чтобы создать резервную копию данных Neo4j, вы можете просто скопировать каталог данных:
Утилиты CLI Neo4j
Memento MCP включает утилиты командной строки для управления операциями Neo4j:
Тестирование соединения
Проверьте подключение к вашей базе данных Neo4j:
Инициализация схемы
Для нормальной работы инициализация схемы Neo4j происходит автоматически, когда Memento MCP подключается к базе данных. Вам не нужно запускать какие-либо ручные команды для обычного использования.
Следующие команды необходимы только для сценариев разработки, тестирования или расширенной настройки:
Расширенные функции
Семантический поиск
Найдите семантически связанные сущности, основываясь на значении, а не только на ключевых словах:
- Векторные вложения : сущности автоматически кодируются в многомерное векторное пространство с использованием моделей встраивания OpenAI.
- Косинусное сходство : находите связанные понятия, даже если они используют разную терминологию.
- Настраиваемые пороговые значения : установите минимальные оценки сходства для контроля релевантности результатов.
- Кросс-модальный поиск : запрос с текстом для поиска соответствующих сущностей независимо от того, как они были описаны.
- Поддержка нескольких моделей : совместимость с несколькими моделями встраивания (OpenAI text-embedding-3-small/large)
- Контекстный поиск : поиск информации на основе семантического значения, а не точного соответствия ключевым словам.
- Оптимизированные параметры по умолчанию : настроенные параметры для баланса между точностью и полнотой (порог сходства 0,6, включен гибридный поиск)
- Гибридный поиск : объединяет семантический поиск и поиск по ключевым словам для получения более полных результатов.
- Адаптивный поиск : система разумно выбирает между векторным поиском, поиском только по ключевым словам или гибридным поиском на основе характеристик запроса и доступных данных.
- Оптимизация производительности : приоритет векторного поиска для семантического понимания при сохранении резервных механизмов для обеспечения устойчивости
- Обработка с учетом запросов : настраивает стратегию поиска на основе сложности запроса и доступных внедрений сущностей.
Временное Осознание
Отслеживайте полную историю сущностей и отношений с помощью поиска графика на определенный момент времени:
- Полная история версий : каждое изменение сущности или отношения сохраняется с метками времени.
- Запросы на определенный момент времени : получение точного состояния графа знаний в любой момент в прошлом.
- Отслеживание изменений : автоматически записывает временные метки createdAt, updatedAt, validFrom и validTo.
- Временная последовательность : сохранение исторически точного представления о том, как развивались знания.
- Неразрушающие обновления : обновления создают новые версии, а не перезаписывают существующие данные.
- Фильтрация по времени : фильтрация элементов графика на основе временных критериев.
- Исследование истории : изучение того, как конкретная информация менялась с течением времени.
Упадок уверенности
Отношения автоматически теряют свою достоверность с течением времени на основе настраиваемого периода полураспада:
- Снижение со временем : доверие в отношениях естественным образом снижается со временем, если его не укреплять.
- Настраиваемый период полураспада : определите, как быстро информация становится менее определенной (по умолчанию: 30 дней)
- Минимальные уровни достоверности : установите пороговые значения, чтобы предотвратить чрезмерную потерю важной информации.
- Метаданные распада : каждое отношение включает подробную информацию о расчетах распада.
- Неразрушающий : исходные значения достоверности сохраняются вместе с измененными значениями
- Обучение с подкреплением : отношения обретают уверенность, когда подкрепляются новыми наблюдениями.
- Гибкость в отношении времени отсчета : расчет затухания на основе произвольных времен отсчета для исторического анализа.
Расширенные метаданные
Богатая поддержка метаданных как для сущностей, так и для отношений с настраиваемыми полями:
- Отслеживание источника : запись источника информации (пользовательский ввод, анализ, внешние источники)
- Уровни уверенности : присвойте баллы уверенности (0,0–1,0) отношениям на основе уверенности.
- Сила отношений : укажите важность или силу отношений (0,0–1,0).
- Временные метаданные : отслеживайте, когда информация была добавлена, изменена или проверена.
- Пользовательские теги : добавление произвольных тегов для классификации и фильтрации.
- Структурированные данные : хранение сложных структурированных данных в полях метаданных.
- Поддержка запросов : поиск и фильтрация на основе свойств метаданных
- Расширяемая схема : добавляйте пользовательские поля по мере необходимости, не изменяя основную модель данных.
Инструменты API MCP
Следующие инструменты доступны хостам клиентов LLM через протокол контекста модели:
Управление сущностями
- создать_сущности
- Создайте несколько новых сущностей в графе знаний
- Входные данные:
entities
(массив объектов)- Каждый объект содержит:
name
(строка): Идентификатор сущностиentityType
(строка): Классификация типовobservations
(string[]): Связанные наблюдения
- Каждый объект содержит:
- добавить_наблюдения
- Добавить новые наблюдения к существующим сущностям
- Вход:
observations
(массив объектов)- Каждый объект содержит:
entityName
(строка): Целевая сущностьcontents
(string[]): Новые наблюдения для добавления
- Каждый объект содержит:
- удалить_сущности
- Удалить сущности и их связи
- Ввод:
entityNames
(string[])
- удалить_наблюдения
- Удалить определенные наблюдения из сущностей
- Вход:
deletions
(массив объектов)- Каждый объект содержит:
entityName
(строка): Целевая сущностьobservations
(string[]): Наблюдения для удаления
- Каждый объект содержит:
Управление отношениями
- создать_отношения
- Создание нескольких новых отношений между сущностями с улучшенными свойствами
- Вход:
relations
(массив объектов)- Каждый объект содержит:
from
(строка): Имя исходной сущностиto
(строка): Имя целевого объектаrelationType
(строка): Тип отношенияstrength
(число, необязательно): Сила связи (0,0-1,0)confidence
(число, необязательно): Уровень достоверности (0,0-1,0)metadata
(объект, необязательно): пользовательские поля метаданных
- Каждый объект содержит:
- получить_отношение
- Получите определенное отношение с его улучшенными свойствами
- Вход:
from
(строка): Имя исходной сущностиto
(строка): Имя целевого объектаrelationType
(строка): Тип отношения
- обновление_отношения
- Обновить существующее отношение с улучшенными свойствами
- Вход:
relation
(объект):- Содержит:
from
(string): Имя исходной сущностиto
(строка): Имя целевого объектаrelationType
(строка): Тип отношенияstrength
(число, необязательно): Сила связи (0,0-1,0)confidence
(число, необязательно): Уровень достоверности (0,0-1,0)metadata
(объект, необязательно): пользовательские поля метаданных
- Содержит:
- удалить_отношения
- Удалить определенные отношения из графика
- Вход:
relations
(массив объектов)- Каждый объект содержит:
from
(string): Имя исходной сущностиto
(строка): Имя целевого объектаrelationType
(строка): Тип отношения
- Каждый объект содержит:
Графические операции
- читать_граф
- Прочитать всю схему знаний
- Ввод не требуется
- поисковые_узлы
- Поиск узлов на основе запроса
- Ввод:
query
(строка)
- открытые_узлы
- Извлечь определенные узлы по имени
- Ввод:
names
(string[])
Семантический поиск
- семантический_поиск
- Семантический поиск сущностей с использованием векторных вложений и сходства
- Вход:
query
(строка): Текстовый запрос для семантического поискаlimit
(число, необязательно): Максимальное количество возвращаемых результатов (по умолчанию: 10)min_similarity
(число, необязательно): минимальный порог сходства (0,0–1,0, по умолчанию: 0,6)entity_types
(string[], необязательно): Фильтрация результатов по типам сущностейhybrid_search
(логическое значение, необязательно): Объединить ключевое слово и семантический поиск (по умолчанию: true)semantic_weight
(число, необязательно): Вес семантических результатов в гибридном поиске (0,0-1,0, по умолчанию: 0,6)
- Функции:
- Интеллектуальный выбор оптимального метода поиска (векторный, по ключевым словам или гибридный) на основе контекста запроса
- Изящно обрабатывает запросы без семантических совпадений с помощью резервных механизмов
- Поддерживает высокую производительность благодаря автоматическим решениям по оптимизации
- получить_сущность_внедрение
- Получить векторное вложение для определенной сущности
- Вход:
entity_name
(string): Имя сущности, для которой необходимо получить вложение
Временные характеристики
- получить_историю_сущности
- Получить полную историю версий объекта
- Ввод:
entityName
(строка)
- получить_историю_отношений
- Получить полную историю версий отношения
- Вход:
from
(строка): Имя исходной сущностиto
(строка): Имя целевого объектаrelationType
(строка): Тип отношения
- получить_граф_в_время
- Получить состояние графика на определенную временную метку
- Ввод:
timestamp
(число): временная метка Unix (миллисекунды с начала эпохи)
- получить_распавшийся_график
- Получить график с уменьшающимися во времени значениями достоверности
- Входные данные:
options
(объект, необязательно):reference_time
(число): временная метка для расчета распада (миллисекунды с начала эпохи)decay_factor
(число): Необязательное переопределение фактора распада
Конфигурация
Переменные среды
Настройте Memento MCP с помощью следующих переменных среды:
Параметры командной строки
Инструменты Neo4j CLI поддерживают следующие параметры:
Встраиваемые модели
Доступные модели встраивания OpenAI:
text-embedding-3-small
: Эффективный, экономичный (1536 измерений)text-embedding-3-large
: Более высокая точность, более высокая стоимость (3072 измерения)text-embedding-ada-002
: Устаревшая модель (1536 измерений)
Конфигурация API OpenAI
Для использования семантического поиска вам необходимо настроить учетные данные API OpenAI:
- Получите ключ API от OpenAI
- Настройте свою среду с помощью:
Примечание : Для тестовых сред система будет имитировать генерацию встраивания, если не предоставлен ключ API. Однако для интеграционного тестирования рекомендуется использовать реальные встраивания.
Интеграция с Claude Desktop
Конфигурация
Добавьте это в ваш claude_desktop_config.json
:
В качестве альтернативы для локального развития вы можете использовать:
Важно : всегда явно указывайте модель внедрения в конфигурации Claude Desktop, чтобы обеспечить единообразное поведение.
Рекомендуемые системные подсказки
Для оптимальной интеграции с Клодом добавьте следующие операторы в системную строку:
Тестирование семантического поиска
После настройки Клод может получить доступ к возможностям семантического поиска через естественный язык:
- Чтобы создать сущности с семантическими вложениями:Copy
- Для семантического поиска:Copy
- Чтобы получить конкретную информацию:Copy
Преимущество этого подхода в том, что пользователи могут взаимодействовать естественным образом, в то время как LLM берет на себя всю сложность выбора и использования соответствующих инструментов запоминания.
Реальные приложения
Возможности адаптивного поиска Memento обеспечивают практические преимущества:
- Универсальность запросов : пользователям не нужно беспокоиться о том, как формулировать вопросы — система автоматически адаптируется к различным типам запросов.
- Устойчивость к сбоям : даже если семантические соответствия недоступны, система может вернуться к альтернативным методам без вмешательства пользователя.
- Эффективность работы : разумно выбирая оптимальный метод поиска, система обеспечивает баланс производительности и релевантности для каждого запроса.
- Улучшенный поиск контекста : беседы LLM выигрывают от лучшего поиска контекста, поскольку система может находить релевантную информацию в сложных графах знаний.
Например, когда пользователь спрашивает: «Что вы знаете о машинном обучении?», система может извлечь концептуально связанные сущности, даже если они явно не упоминают «машинное обучение» — возможно, сущности о нейронных сетях, науке о данных или конкретных алгоритмах. Но если семантический поиск дает недостаточные результаты, система автоматически корректирует свой подход, чтобы гарантировать, что полезная информация все еще возвращается.
Поиск неисправностей
Диагностика поиска векторов
Memento MCP включает в себя встроенные диагностические возможности, помогающие устранять неполадки векторного поиска:
- Проверка встраивания : система проверяет, имеют ли сущности допустимые встраивания, и автоматически генерирует их, если они отсутствуют.
- Статус векторного индекса : проверяет, что векторный индекс существует и находится в состоянии ONLINE.
- Резервный поиск : если векторный поиск не удается, система возвращается к текстовому поиску.
- Подробное ведение журнала : комплексное ведение журнала операций поиска векторов для устранения неполадок.
Инструменты отладки (когда DEBUG=true)
При включении режима отладки становятся доступны дополнительные инструменты диагностики:
- diagnostic_vector_search : Информация о векторном индексе Neo4j, количестве внедрений и функциональности поиска
- force_generate_embedding : принудительно генерирует внедрение для определенной сущности
- debug_embedding_config : Информация о текущей конфигурации службы встраивания
Сброс разработчика
Чтобы полностью сбросить базу данных Neo4j во время разработки:
Строительство и развитие
Установка
Установка через Smithery
Чтобы автоматически установить memento-mcp для Claude Desktop через Smithery :
Глобальная установка с npx
Вы можете запустить Memento MCP напрямую с помощью npx, не устанавливая его глобально:
Этот метод рекомендуется использовать с Claude Desktop и другими MCP-совместимыми клиентами.
Локальная установка
Для разработки или участия в проекте:
Лицензия
Массачусетский технологический институт
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Масштабируемая, высокопроизводительная система памяти графов знаний с семантическим поиском, временной осведомленностью и расширенным управлением связями.
- Основные концепции
- Хранилище данных
- Расширенные функции
- Инструменты API MCP
- Конфигурация
- Интеграция с Claude Desktop
- Поиск неисправностей
- Строительство и развитие
- Установка
- Лицензия
Related Resources
Related MCP Servers
- -securityAlicense-qualityThis project is based on the Knowledge Graph Memory Server from the MCP servers repository and retains its core functionality.Last updated -44107TypeScriptMIT License
- AsecurityAlicenseAqualityA customized MCP memory server that enables creation and management of a knowledge graph with features like custom memory paths and timestamping for capturing interactions via language models.Last updated -112JavaScriptMIT License
- -securityAlicense-qualityProvides knowledge graph functionality for managing entities, relations, and observations in memory with strict validation rules to maintain data consistency.Last updated -6PythonMIT License
- AsecurityFlicenseAqualityProvides a scalable knowledge graph implementation for Model Context Protocol using Elasticsearch, enabling AI models to store and query information with advanced search capabilities, memory-like behavior, and multi-zone architecture.Last updated -176TypeScript