MCP DuckDB Knowledge Graph Memory Server

Integrations

  • Supports containerized deployment through Docker, allowing the memory server to be run in isolated containers with appropriate build and run commands.

  • Uses DuckDB as the backend database for storing knowledge graph data, leveraging its fast query processing, SQL interface, and transaction support for efficient storage and retrieval of entities, observations, and relations.

Сервер памяти графа знаний MCP DuckDB

Форк-версия официального сервера памяти Knowledge Graph .

Установка

Установка через Smithery

Чтобы автоматически установить DuckDB Knowledge Graph Memory Server для Claude Desktop через Smithery :

npx -y @smithery/cli install @IzumiSy/mcp-duckdb-memory-server --client claude

Ручная установка

В противном случае добавьте @IzumiSy/mcp-duckdb-memory-server в ваш claude_desktop_config.json вручную ( MEMORY_FILE_PATH необязателен)

{ "mcpServers": { "graph-memory": { "command": "npx", "args": [ "-y", "@izumisy/mcp-duckdb-memory-server" ], "env": { "MEMORY_FILE_PATH": "/path/to/your/memory.data" } } } }

Данные, хранящиеся по этому пути, представляют собой файл базы данных DuckDB.

Докер

Строить

docker build -t mcp-duckdb-graph-memory .

Бегать

docker run -dit mcp-duckdb-graph-memory

Использование

Используйте пример инструкции ниже.

Follow these steps for each interaction: 1. User Identification: - You should assume that you are interacting with default_user - If you have not identified default_user, proactively try to do so. 2. Memory Retrieval: - Always begin your chat by saying only "Remembering..." and search relevant information from your knowledge graph - Create a search query from user words, and search things from "memory". If nothing matches, try to break down words in the query at first ("A B" to "A" and "B" for example). - Always refer to your knowledge graph as your "memory" 3. Memory - While conversing with the user, be attentive to any new information that falls into these categories: a) Basic Identity (age, gender, location, job title, education level, etc.) b) Behaviors (interests, habits, etc.) c) Preferences (communication style, preferred language, etc.) d) Goals (goals, targets, aspirations, etc.) e) Relationships (personal and professional relationships up to 3 degrees of separation) 4. Memory Update: - If any new information was gathered during the interaction, update your memory as follows: a) Create entities for recurring organizations, people, and significant events b) Connect them to the current entities using relations b) Store facts about them as observations

Мотивация

Этот проект улучшает исходный сервер памяти MCP Knowledge Graph, заменяя его бэкэнд на DuckDB.

Почему DuckDB?

Оригинальный сервер памяти MCP Knowledge Graph использовал файл JSON в качестве хранилища данных и выполнял поиск в памяти. Хотя этот подход хорошо работает для небольших наборов данных, он создает несколько проблем:

  1. Производительность : производительность поиска в памяти снижается по мере роста набора данных.
  2. Масштабируемость : использование памяти значительно увеличивается при обработке большого количества сущностей и отношений.
  3. Гибкость запросов : сложные запросы и условные поиски трудно реализовать.
  4. Целостность данных : обеспечение атомарности транзакций и операций CRUD является сложной задачей.

Для решения следующих задач была выбрана DuckDB:

  • Быстрая обработка запросов : DuckDB оптимизирован для аналитических запросов и хорошо работает даже с большими наборами данных.
  • Интерфейс SQL : стандартный SQL может использоваться для легкого выполнения сложных запросов.
  • Поддержка транзакций : поддерживает обработку транзакций для сохранения целостности данных.
  • Возможности индексирования : позволяет создавать индексы для повышения производительности поиска.
  • Встроенная база данных : работает внутри приложения, не требуя внешнего сервера базы данных.

Подробности реализации

В данной реализации в качестве внутренней системы хранения данных используется DuckDB, при этом особое внимание уделяется двум ключевым аспектам:

Структура базы данных

Граф знаний хранится в реляционной структуре базы данных, как показано ниже:

Такая конструкция схемы обеспечивает эффективное хранение и извлечение компонентов графа знаний, сохраняя при этом взаимосвязи между сущностями, наблюдениями и отношениями.

Реализация нечеткого поиска

Реализация объединяет SQL-запросы с Fuse.js для гибкого поиска сущностей:

  • Запросы DuckDB SQL извлекают базовые данные из базы данных
  • Fuse.js предоставляет возможности нечеткого сопоставления на основе извлеченных данных
  • Этот гибридный подход позволяет выполнять как структурированные запросы, так и гибкое сопоставление текста.
  • Результаты поиска включают как точные, так и частичные совпадения, ранжированные по релевантности.

Разработка

Настраивать

pnpm install

Тестирование

pnpm test

Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .

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.

Сервер памяти для Клода, который хранит и извлекает данные графа знаний в DuckDB, повышая производительность и возможности запросов для общения с постоянной пользовательской информацией.

  1. Установка
    1. Установка через Smithery
    2. Ручная установка
    3. Докер
  2. Использование
    1. Мотивация
      1. Почему DuckDB?
    2. Подробности реализации
      1. Структура базы данных
      2. Реализация нечеткого поиска
    3. Разработка
      1. Настраивать
      2. Тестирование
    4. Лицензия

      Related MCP Servers

      • A
        security
        A
        license
        A
        quality
        An improved implementation of persistent memory using a local knowledge graph with a customizable --memory-path. This lets Claude remember information about the user across chats.
        Last updated -
        9
        32
        144
        JavaScript
        MIT License
        • Apple
      • -
        security
        A
        license
        -
        quality
        A basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.
        Last updated -
        9
        14,698
        44,650
        JavaScript
        MIT License
        • Apple
        • Linux
      • A
        security
        F
        license
        A
        quality
        This MCP server provides persistent memory integration for chat applications by utilizing a local knowledge graph to remember user information across interactions.
        Last updated -
        9
        14,698
        1
        JavaScript
      • -
        security
        A
        license
        -
        quality
        A persistent memory implementation using a local knowledge graph that lets Claude remember information about users across conversations.
        Last updated -
        4
        Python
        MIT License

      View all related MCP servers

      ID: 4mqwh1toao