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 Memory Server

Eine gegabelte Version des offiziellen Knowledge Graph Memory Server .

Installation

Installation über Smithery

So installieren Sie den DuckDB Knowledge Graph Memory Server für Claude Desktop automatisch über Smithery :

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

Manuelle Installation

Andernfalls fügen Sie @IzumiSy/mcp-duckdb-memory-server manuell in Ihre claude_desktop_config.json ein ( MEMORY_FILE_PATH ist optional).

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

Die auf diesem Pfad gespeicherten Daten sind eine DuckDB-Datenbankdatei.

Docker

Bauen

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

Laufen

docker run -dit mcp-duckdb-graph-memory

Verwendung

Verwenden Sie die Beispielanweisung unten

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

Motivation

Dieses Projekt erweitert den ursprünglichen MCP Knowledge Graph Memory Server, indem sein Backend durch DuckDB ersetzt wird.

Warum DuckDB?

Der ursprüngliche MCP Knowledge Graph Memory Server verwendete eine JSON-Datei als Datenspeicher und führte In-Memory-Suchen durch. Dieser Ansatz eignet sich zwar gut für kleine Datensätze, bringt aber einige Herausforderungen mit sich:

  1. Leistung : Die Leistung der In-Memory-Suche nimmt mit zunehmendem Datensatz ab
  2. Skalierbarkeit : Der Speicherverbrauch steigt erheblich, wenn eine große Anzahl von Entitäten und Beziehungen verarbeitet wird
  3. Abfrageflexibilität : Komplexe Abfragen und bedingte Suchen sind schwierig zu implementieren
  4. Datenintegrität : Die Gewährleistung der Atomizität von Transaktionen und CRUD-Operationen ist eine Herausforderung

DuckDB wurde ausgewählt, um diese Herausforderungen zu bewältigen:

  • Schnelle Abfrageverarbeitung : DuckDB ist für analytische Abfragen optimiert und bietet auch bei großen Datensätzen eine gute Leistung
  • SQL-Schnittstelle : Mit Standard-SQL können komplexe Abfragen einfach ausgeführt werden
  • Transaktionsunterstützung : Unterstützt die Transaktionsverarbeitung, um die Datenintegrität aufrechtzuerhalten
  • Indizierungsfunktionen : Ermöglicht die Erstellung von Indizes zur Verbesserung der Suchleistung
  • Eingebettete Datenbank : Funktioniert innerhalb der Anwendung, ohne dass ein externer Datenbankserver erforderlich ist

Implementierungsdetails

Diese Implementierung verwendet DuckDB als Backend-Speichersystem und konzentriert sich auf zwei Schlüsselaspekte:

Datenbankstruktur

Der Wissensgraph wird in einer relationalen Datenbankstruktur gespeichert, wie unten dargestellt:

Dieses Schemadesign ermöglicht die effiziente Speicherung und Abfrage von Wissensgraphkomponenten, während die Beziehungen zwischen Entitäten, Beobachtungen und Relationen erhalten bleiben.

Implementierung der Fuzzy-Suche

Die Implementierung kombiniert SQL-Abfragen mit Fuse.js für eine flexible Entitätssuche:

  • DuckDB SQL-Abfragen rufen die Basisdaten aus der Datenbank ab
  • Fuse.js bietet Fuzzy-Matching-Funktionen zusätzlich zu den abgerufenen Daten
  • Dieser hybride Ansatz ermöglicht sowohl strukturierte Abfragen als auch flexibles Textmatching
  • Die Suchergebnisse umfassen sowohl exakte als auch teilweise Übereinstimmungen, sortiert nach Relevanz

Entwicklung

Aufstellen

pnpm install

Testen

pnpm test

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei 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.

Ein Speicherserver für Claude, der Wissensgraphdaten in DuckDB speichert und abruft und so die Leistung und Abfragefunktionen für Gespräche mit persistenten Benutzerinformationen verbessert.

  1. Installation
    1. Installation über Smithery
    2. Manuelle Installation
    3. Docker
  2. Verwendung
    1. Motivation
      1. Warum DuckDB?
    2. Implementierungsdetails
      1. Datenbankstruktur
      2. Implementierung der Fuzzy-Suche
    3. Entwicklung
      1. Aufstellen
      2. Testen
    4. Lizenz

      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