GraphRAG
Consulta una base de datos híbrida de grafos (Neo4j) y vectores (Qdrant) para una potente recuperación semántica y basada en grafos de documentos.
Documentación
GraphRAG MCP Server
Un servidor de Model Context Protocol para consultar un sistema híbrido de base de datos de grafos y vectores, que combina Neo4j (base de datos de grafos) y Qdrant (base de datos vectorial) para una potente recuperación de documentos semántica y basada en grafos.
Descripción general
GraphRAG MCP proporciona una integración perfecta entre modelos de lenguaje grandes y un sistema de recuperación híbrido que aprovecha las fortalezas tanto de las bases de datos de grafos (Neo4j) como de las bases de datos vectoriales (Qdrant). Esto permite:
- Búsqueda semántica mediante embeddings de documentos
- Expansión de contexto basada en grafos siguiendo relaciones
- Búsqueda híbrida que combina similitud vectorial con relaciones de grafos
- Integración completa con Claude y otros LLM a través de MCP
Este proyecto sigue la especificación Model Context Protocol, lo que lo hace compatible con cualquier cliente compatible con MCP.
Características
- Búsqueda semántica usando embeddings de oraciones y Qdrant
- Expansión de contexto basada en grafos usando Neo4j
- Búsqueda híbrida que combina ambos enfoques
- Herramientas y recursos MCP para integración con LLM
- Documentación completa del esquema de Neo4j e información de la colección de Qdrant
Requisitos previos
- Python 3.12+
- Neo4j ejecutándose en localhost:7687 (configuración predeterminada)
- Qdrant ejecutándose en localhost:6333 (configuración predeterminada)
- Datos de documentos indexados en ambas bases de datos
Instalación
Inicio rápido
-
Clona este repositorio:
git clone https://github.com/rileylemm/graphrag_mcp.git cd graphrag_mcp -
Instala las dependencias con uv:
uv install -
Configura tus conexiones de base de datos en el archivo
.env:# Neo4j Configuration NEO4J_URI=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_PASSWORD=password # Qdrant Configuration QDRANT_HOST=localhost QDRANT_PORT=6333 QDRANT_COLLECTION=document_chunks -
Ejecuta el servidor:
uv run main.py
Guía de configuración detallada
Para una guía detallada sobre la configuración del sistema híbrido de base de datos subyacente, consulta el repositorio complementario: GraphRAG Hybrid Database
Configuración de Neo4j y Qdrant
-
Instala e inicia Neo4j:
# Using Docker docker run \ --name neo4j \ -p 7474:7474 -p 7687:7687 \ -e NEO4J_AUTH=neo4j/password \ -v $HOME/neo4j/data:/data \ -v $HOME/neo4j/logs:/logs \ -v $HOME/neo4j/import:/import \ -v $HOME/neo4j/plugins:/plugins \ neo4j:latest -
Instala e inicia Qdrant:
# Using Docker docker run -p 6333:6333 -p 6334:6334 \ -v $HOME/qdrant/storage:/qdrant/storage \ qdrant/qdrant
Indexación de documentos
Para indexar tus documentos en ambas bases de datos, sigue estos pasos:
- Prepara tus documentos
- Crea embeddings usando sentence-transformers
- Almacena los documentos en Neo4j con información de relaciones
- Almacena los embeddings de los fragmentos de documentos en Qdrant
Consulta el repositorio GraphRAG Hybrid Database para obtener scripts y procedimientos de indexación detallados.
Integración con clientes MCP
Integración con Claude Desktop / Cursor
-
Haz ejecutable el script de ejecución:
chmod +x run_server.sh -
Agrega el servidor a tu archivo de configuración de MCP (
~/.cursor/mcp.jsono equivalente de Claude Desktop):{ "mcpServers": { "GraphRAG": { "command": "/path/to/graphrag_mcp/run_server.sh", "args": [] } } } -
Reinicia tu cliente MCP (Cursor, Claude Desktop, etc.)
Uso
Herramientas MCP
Este servidor proporciona las siguientes herramientas para uso de LLM:
-
search_documentation- Busca información usando búsqueda semántica# Example usage in MCP context result = search_documentation( query="How does graph context expansion work?", limit=5, category="technical" ) -
hybrid_search- Busca usando enfoques semánticos y basados en grafos# Example usage in MCP context result = hybrid_search( query="Vector similarity with graph relationships", limit=10, category=None, expand_context=True )
Recursos MCP
El servidor proporciona los siguientes recursos:
https://graphrag.db/schema/neo4j- Información sobre el esquema de grafos de Neo4jhttps://graphrag.db/collection/qdrant- Información sobre la colección vectorial de Qdrant
Solución de problemas
- Problemas de conexión: Asegúrate de que Neo4j y Qdrant estén ejecutándose y sean accesibles
- Resultados vacíos: Verifica que tu colección de documentos esté correctamente indexada
- Dependencias faltantes: Ejecuta
uv installpara asegurarte de que todos los paquetes estén instalados - Autenticación de base de datos: Verifica las credenciales en tu archivo
.env
Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.
Licencia
Licencia MIT
Copyright (c) 2025 Riley Lemm
Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a quienes se les proporcione el Software que lo hagan, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, O EN RELACIÓN CON, EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.
Atribución
Si usas este servidor MCP o lo adaptas para tus propios fines, proporciona atribución a Riley Lemm y enlaza de vuelta a este repositorio (https://github.com/rileylemm/graphrag_mcp).