混合图向量数据库检索服务

GraphRAG MCP 是一个结合Neo4j图数据库和Qdrant向量数据库的混合检索系统,提供语义搜索和图关系扩展功能,适用于文档检索和LLM集成。

  • by rileylemm
  • Python
  • 本地部署
  • 64 星标
  • 更新于
在 GitHub 查看 rileylemm/graphrag_mcp

使用说明

GraphRAG MCP服务器

一种用于查询混合图形和矢量数据库系统的模型上下文协议服务器,结合Neo4j(图形数据库)和Qdrant(矢量数据库)进行强大的语义和基于图形的文档检索。

概述

GraphRAG MCP提供了大型语言模型和混合检索系统之间的无缝集成,该系统利用了图形数据库(Neo4j)和向量数据库(Qdrant)的优势。这使得:

  • 通过文档嵌入进行语义搜索
  • 基于图的上下文扩展遵循关系
  • 结合向量相似性和图关系的混合搜索
  • 通过MCP与Claude和其他LLM完全集成

该项目遵循 模型上下文协议 规范,使其与任何支持MCP的客户端兼容。

特性

  • 语义搜索 使用句子嵌入和Qdrant
  • 基于图的上下文扩展 使用Neo4j
  • 混合搜索 结合这两种方法
  • MCP工具和资源 用于LLM集成
  • Neo4j模式和Qdrant集合信息的完整文档

先决条件

  • Python 3.12+
  • 运行在本地主机上的Neo4j:7687(默认配置)
  • Qdrant在本地主机上运行:6333(默认配置)
  • 在两个数据库中都有索引的文档数据

安装

快速开始

  1. 克隆此存储库:

    git clone https://github.com/rileylemm/graphrag_mcp.git
    cd graphrag_mcp
    
  2. 使用uv安装依赖项:

    uv install
    
  3. 在中配置数据库连接 .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
    
  4. 运行服务器:

    uv run main.py
    

详细设置指南

有关设置底层混合数据库系统的详细指南,请参阅配套存储库: GraphRAG混合数据库

设置Neo4j和Qdrant

  1. 安装并启动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
    
  2. 安装并启动Qdrant:

    # Using Docker
    docker run -p 6333:6333 -p 6334:6334 \
      -v $HOME/qdrant/storage:/qdrant/storage \
      qdrant/qdrant
    

索引文档

要在两个数据库中为文档建立索引,请执行以下步骤:

  1. 准备你的文件
  2. 使用句子变换器创建嵌入
  3. 在Neo4j中存储包含关系信息的文档
  4. 将文档块嵌入存储在Qdrant中

请参阅 GraphRAG混合数据库 用于详细索引脚本和过程的存储库。

与MCP客户端集成

Claude桌面/光标集成

  1. 使运行脚本可执行:

    chmod +x run_server.sh
    
  2. 将服务器添加到MCP配置文件中(~/.cursor/mcp.json 或Claude Desktop等效产品):

    {
      "mcpServers": {
        "GraphRAG": {
          "command": "/path/to/graphrag_mcp/run_server.sh",
          "args": []
        }
      }
    }
    
  3. 重新启动MCP客户端(Cursor、Claude Desktop等)

用法

MCP工具

此服务器提供以下工具供LLM使用:

  1. search_documentation -使用语义搜索搜索信息

    # Example usage in MCP context
    result = search_documentation(
        query="How does graph context expansion work?",
        limit=5,
        category="technical"
    )
    
  2. hybrid_search -使用语义和基于图的方法进行搜索

    # Example usage in MCP context
    result = hybrid_search(
        query="Vector similarity with graph relationships",
        limit=10,
        category=None,
        expand_context=True
    )
    

MCP资源

服务器提供以下资源:

  1. https://graphrag.db/schema/neo4j -关于Neo4j图形模式的信息
  2. https://graphrag.db/collection/qdrant -关于Qdrant矢量集合的信息

故障排除

  • 连接问题:确保Neo4j和Qdrant正在运行且可访问
  • 空结果:检查您的文档集合是否已正确编入索引
  • 缺少的依赖:运行 uv install 确保所有软件包都已安装
  • 数据库身份验证:验证您的凭据 .env 文件

贡献

欢迎投稿!请随时提交拉取请求。

许可证

MIT许可证

版权所有(c)2025莱利莱姆

特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:

上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。

软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。

归因

如果您使用此MCP服务器或将其用于自己的目的,请提供Riley Lemm的归属并链接回此存储库(https://github.com/rileylemm/graphrag_mcp).