hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
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.
Servidor de memoria de gráficos de conocimiento MCP DuckDB
Una versión bifurcada del servidor de memoria oficial Knowledge Graph .
Instalación
Instalación mediante herrería
Para instalar DuckDB Knowledge Graph Memory Server para Claude Desktop automáticamente a través de Smithery :
Instalación manual
De lo contrario, agregue @IzumiSy/mcp-duckdb-memory-server
en su claude_desktop_config.json
manualmente ( MEMORY_FILE_PATH
es opcional)
Los datos almacenados en esa ruta son un archivo de base de datos DuckDB.
Estibador
Construir
Correr
Uso
Utilice la instrucción de ejemplo a continuación
Motivación
Este proyecto mejora el servidor de memoria MCP Knowledge Graph original reemplazando su backend con DuckDB.
¿Por qué DuckDB?
El servidor de memoria original de Knowledge Graph de MCP utilizaba un archivo JSON como almacén de datos y realizaba búsquedas en memoria. Si bien este enfoque funciona bien con conjuntos de datos pequeños, presenta varios desafíos:
- Rendimiento : el rendimiento de la búsqueda en memoria se degrada a medida que crece el conjunto de datos
- Escalabilidad : el uso de memoria aumenta significativamente cuando se manejan grandes cantidades de entidades y relaciones.
- Flexibilidad de consultas : las consultas complejas y las búsquedas condicionales son difíciles de implementar
- Integridad de los datos : garantizar la atomicidad de las transacciones y las operaciones CRUD es un desafío
Se eligió DuckDB para abordar estos desafíos:
- Procesamiento rápido de consultas : DuckDB está optimizado para consultas analíticas y funciona bien incluso con grandes conjuntos de datos
- Interfaz SQL : se puede utilizar SQL estándar para ejecutar consultas complejas fácilmente
- Soporte de transacciones : admite el procesamiento de transacciones para mantener la integridad de los datos
- Capacidades de indexación : permite la creación de índices para mejorar el rendimiento de la búsqueda.
- Base de datos integrada : funciona dentro de la aplicación sin necesidad de un servidor de base de datos externo
Detalles de implementación
Esta implementación utiliza DuckDB como sistema de almacenamiento backend, centrándose en dos aspectos clave:
Estructura de la base de datos
El gráfico de conocimiento se almacena en una estructura de base de datos relacional como se muestra a continuación:
Este diseño de esquema permite el almacenamiento y la recuperación eficientes de los componentes del gráfico de conocimiento manteniendo al mismo tiempo las relaciones entre entidades, observaciones y relaciones.
Implementación de búsqueda difusa
La implementación combina consultas SQL con Fuse.js para una búsqueda flexible de entidades:
- Las consultas SQL de DuckDB recuperan los datos base de la base de datos
- Fuse.js proporciona capacidades de coincidencia difusa sobre los datos recuperados
- Este enfoque híbrido permite tanto consultas estructuradas como coincidencias de texto flexibles.
- Los resultados de la búsqueda incluyen coincidencias exactas y parciales, clasificadas por relevancia.
Desarrollo
Configuración
Pruebas
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
You must be authenticated.
Tools
Un servidor de memoria para Claude que almacena y recupera datos del gráfico de conocimiento en DuckDB, mejorando el rendimiento y las capacidades de consulta para conversaciones con información de usuario persistente.