MCP Memory Server with Qdrant Persistence

Integrations

  • Supports reverse proxy configurations with Apache for routing traffic to the MCP memory server in secure deployment scenarios.

  • Provides containerized deployment of the MCP memory server, enabling easy setup and management with Docker images and containers.

  • Supports HTTPS connections and reverse proxy configurations with Nginx for secure and flexible deployment architectures.

Servidor de memoria MCP con persistencia Qdrant

Este servidor MCP proporciona una implementación de gráfico de conocimiento con capacidades de búsqueda semántica impulsadas por la base de datos vectorial Qdrant.

Características

  • Representación de conocimiento basada en gráficos con entidades y relaciones
  • Persistencia basada en archivos (memory.json)
  • Búsqueda semántica utilizando la base de datos vectorial Qdrant
  • Integraciones de OpenAI para similitud semántica
  • Compatibilidad con HTTPS y proxy inverso
  • Compatibilidad con Docker para una implementación sencilla

Variables de entorno

Se requieren las siguientes variables de entorno:

# OpenAI API key for generating embeddings OPENAI_API_KEY=your-openai-api-key # Qdrant server URL (supports both HTTP and HTTPS) QDRANT_URL=https://your-qdrant-server # Qdrant API key (if authentication is enabled) QDRANT_API_KEY=your-qdrant-api-key # Name of the Qdrant collection to use QDRANT_COLLECTION_NAME=your-collection-name

Configuración

Configuración local

  1. Instalar dependencias:
npm install
  1. Construir el servidor:
npm run build

Configuración de Docker

  1. Construya la imagen de Docker:
docker build -t mcp-qdrant-memory .
  1. Ejecute el contenedor Docker con las variables de entorno requeridas:
docker run -d \ -e OPENAI_API_KEY=your-openai-api-key \ -e QDRANT_URL=http://your-qdrant-server:6333 \ -e QDRANT_COLLECTION_NAME=your-collection-name \ -e QDRANT_API_KEY=your-qdrant-api-key \ --name mcp-qdrant-memory \ mcp-qdrant-memory

Agregar a la configuración de MCP:

{ "mcpServers": { "memory": { "command": "/bin/zsh", "args": ["-c", "cd /path/to/server && node dist/index.js"], "env": { "OPENAI_API_KEY": "your-openai-api-key", "QDRANT_API_KEY": "your-qdrant-api-key", "QDRANT_URL": "http://your-qdrant-server:6333", "QDRANT_COLLECTION_NAME": "your-collection-name" }, "alwaysAllow": [ "create_entities", "create_relations", "add_observations", "delete_entities", "delete_observations", "delete_relations", "read_graph", "search_similar" ] } } }

Herramientas

Gestión de entidades

  • create_entities : Crea múltiples entidades nuevas
  • create_relations : Crea relaciones entre entidades
  • add_observations : Agregar observaciones a las entidades
  • delete_entities : Eliminar entidades y sus relaciones
  • delete_observations : Eliminar observaciones específicas
  • delete_relations : Eliminar relaciones específicas
  • read_graph : Obtenga el gráfico de conocimiento completo

Búsqueda semántica

  • search_similar : Busca entidades y relaciones semánticamente similares
    interface SearchParams { query: string; // Search query text limit?: number; // Max results (default: 10) }

Detalles de implementación

El servidor mantiene dos formas de persistencia:

  1. Basado en archivos (memory.json):
    • Estructura completa del gráfico de conocimiento
    • Acceso rápido al gráfico completo
    • Se utiliza para operaciones gráficas
  2. Base de datos vectorial de Qdrant:
    • Incrustaciones semánticas de entidades y relaciones
    • Permite la búsqueda de similitud
    • Sincronizado automáticamente con el almacenamiento de archivos

Sincronización

Cuando se modifican entidades o relaciones:

  1. Los cambios se escriben en memory.json
  2. Las incrustaciones se generan utilizando OpenAI
  3. Los vectores se almacenan en Qdrant
  4. Ambos sistemas de almacenamiento se mantienen consistentes

Proceso de búsqueda

Al buscar:

  1. El texto de la consulta se convierte en incrustación
  2. Qdrant realiza una búsqueda de similitud
  3. Los resultados incluyen tanto entidades como relaciones
  4. Los resultados se clasifican por similitud semántica.

Ejemplo de uso

// Create entities await client.callTool("create_entities", { entities: [{ name: "Project", entityType: "Task", observations: ["A new development project"] }] }); // Search similar concepts const results = await client.callTool("search_similar", { query: "development tasks", limit: 5 });

Configuración de HTTPS y proxy inverso

El servidor admite la conexión a Qdrant mediante HTTPS y proxies inversos. Esto resulta especialmente útil cuando:

  • Ejecutar Qdrant detrás de un proxy inverso como Nginx o Apache
  • Uso de certificados autofirmados
  • Requerir configuraciones SSL/TLS personalizadas

Configuración con un proxy inverso

  1. Configure su proxy inverso (ejemplo usando Nginx):
server { listen 443 ssl; server_name qdrant.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:6333; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
  1. Actualice sus variables de entorno:
QDRANT_URL=https://qdrant.yourdomain.com

Consideraciones de seguridad

El servidor implementa un manejo robusto de HTTPS con:

  • Configuración personalizada de SSL/TLS
  • Opciones adecuadas de verificación de certificados
  • Agrupación de conexiones y keepalive
  • Reintento automático con retroceso exponencial
  • Tiempos de espera configurables

Solución de problemas de conexiones HTTPS

Si experimenta problemas de conexión:

  1. Verifique sus certificados:
openssl s_client -connect qdrant.yourdomain.com:443
  1. Pruebe la conectividad directa:
curl -v https://qdrant.yourdomain.com/collections
  1. Verifique si hay alguna configuración de proxy:
env | grep -i proxy

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Realiza tus cambios
  4. Enviar una solicitud de extracción

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Facilita la representación de gráficos de conocimiento con búsqueda semántica utilizando Qdrant, compatible con incrustaciones de OpenAI para similitud semántica e integración HTTPS robusta con persistencia de gráficos basada en archivos.

  1. Características
    1. Variables de entorno
      1. Configuración
        1. Configuración local
        2. Configuración de Docker
        3. Agregar a la configuración de MCP:
      2. Herramientas
        1. Gestión de entidades
        2. Búsqueda semántica
      3. Detalles de implementación
        1. Sincronización
        2. Proceso de búsqueda
      4. Ejemplo de uso
        1. Configuración de HTTPS y proxy inverso
          1. Configuración con un proxy inverso
          2. Consideraciones de seguridad
          3. Solución de problemas de conexiones HTTPS
        2. Contribuyendo
          1. Licencia

            Related MCP Servers

            • -
              security
              A
              license
              -
              quality
              Provides RAG capabilities for semantic document search using Qdrant vector database and Ollama/OpenAI embeddings, allowing users to add, search, list, and delete documentation with metadata support.
              Last updated -
              5
              4
              TypeScript
              Apache 2.0
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol server that enables semantic search capabilities by providing tools to manage Qdrant vector database collections, process and embed documents using various embedding services, and perform semantic searches across vector embeddings.
              Last updated -
              89
              TypeScript
              MIT License
            • -
              security
              F
              license
              -
              quality
              This server enables semantic search capabilities using Qdrant vector database and OpenAI embeddings, allowing users to query collections, list available collections, and view collection information.
              Last updated -
              Python
            • -
              security
              F
              license
              -
              quality
              Enables storage and retrieval of knowledge in a graph database format, allowing users to create, update, search, and delete entities and relationships in a Neo4j-powered knowledge graph through natural language.
              Last updated -
              Python
              • Linux

            View all related MCP servers

            ID: hbn6r7in36