Сервер памяти графа знаний MCP DuckDB
Форк-версия официального сервера памяти Knowledge Graph .
Установка
Установка через Smithery
Чтобы автоматически установить DuckDB Knowledge Graph Memory Server для Claude Desktop через Smithery :
Ручная установка
В противном случае добавьте @IzumiSy/mcp-duckdb-memory-server в ваш claude_desktop_config.json вручную ( MEMORY_FILE_PATH необязателен)
Данные, хранящиеся по этому пути, представляют собой файл базы данных DuckDB.
Докер
Строить
Бегать
Related MCP server: MCP Memory Service
Использование
Используйте пример инструкции ниже.
Мотивация
Этот проект улучшает исходный сервер памяти MCP Knowledge Graph, заменяя его бэкэнд на DuckDB.
Почему DuckDB?
Оригинальный сервер памяти MCP Knowledge Graph использовал файл JSON в качестве хранилища данных и выполнял поиск в памяти. Хотя этот подход хорошо работает для небольших наборов данных, он создает несколько проблем:
Производительность : производительность поиска в памяти снижается по мере роста набора данных.
Масштабируемость : использование памяти значительно увеличивается при обработке большого количества сущностей и отношений.
Гибкость запросов : сложные запросы и условные поиски трудно реализовать.
Целостность данных : обеспечение атомарности транзакций и операций CRUD является сложной задачей.
Для решения следующих задач была выбрана DuckDB:
Быстрая обработка запросов : DuckDB оптимизирован для аналитических запросов и хорошо работает даже с большими наборами данных.
Интерфейс SQL : стандартный SQL может использоваться для легкого выполнения сложных запросов.
Поддержка транзакций : поддерживает обработку транзакций для сохранения целостности данных.
Возможности индексирования : позволяет создавать индексы для повышения производительности поиска.
Встроенная база данных : работает внутри приложения, не требуя внешнего сервера базы данных.
Подробности реализации
В данной реализации в качестве внутренней системы хранения данных используется DuckDB, при этом особое внимание уделяется двум ключевым аспектам:
Структура базы данных
Граф знаний хранится в реляционной структуре базы данных, как показано ниже:
Такая конструкция схемы обеспечивает эффективное хранение и извлечение компонентов графа знаний, сохраняя при этом взаимосвязи между сущностями, наблюдениями и отношениями.
Реализация нечеткого поиска
Реализация объединяет SQL-запросы с Fuse.js для гибкого поиска сущностей:
Запросы DuckDB SQL извлекают базовые данные из базы данных
Fuse.js предоставляет возможности нечеткого сопоставления на основе извлеченных данных
Этот гибридный подход позволяет выполнять как структурированные запросы, так и гибкое сопоставление текста.
Результаты поиска включают как точные, так и частичные совпадения, ранжированные по релевантности.
Разработка
Настраивать
Тестирование
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .