mcpField
G
GraphRAG MCP Server

GraphRAG MCP Server

本地服务
github.com/rileylemm记忆与知识6482 周前更新

关于 GraphRAG MCP Server

GraphRAG MCP Server 是一个 MCP 服务,用于查询结合 Neo4j 图数据库与 Qdrant 向量数据库的混合检索系统。适合已经建立了这类索引、希望让 LLM 同时利用语义相似度与图关系检索文档的用户。

主要功能

  1. 01基于 Qdrant 的语义搜索
  2. 02基于 Neo4j 的图关系上下文扩展
  3. 03结合向量与图关系的混合搜索
  4. 04提供 Neo4j 模式与 Qdrant 集合的资源

适用场景

  1. 01让 Claude 或 Cursor 检索已索引的技术文档
  2. 02沿文档关系扩展检索到的上下文
  3. 03查看图数据库模式以辅助编写查询

MCP 相关

服务通过 stdio 启动,向 MCP 客户端提供 search_documentation 与 hybrid_search 两个工具,以及 Neo4j 模式和 Qdrant 集合两个资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

GraphRAG MCP Server

用于查询混合图数据库和向量数据库系统的模型上下文协议服务,将 Neo4j(图数据库)和 Qdrant(向量数据库)结合起来,实现强大的语义检索和基于图的文档检索。

概述

GraphRAG MCP 在大模型与混合检索系统之间提供无缝集成,充分发挥图数据库(Neo4j)和向量数据库(Qdrant)的优势。它支持:

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

本项目遵循 Model Context Protocol 规范,因此兼容任何支持 MCP 的客户端。

功能

  • 使用句子嵌入和 Qdrant 进行语义搜索
  • 使用 Neo4j 进行基于图的上下文扩展
  • 混合搜索,结合上述两种方法
  • 用于 LLM 集成的 MCP 工具和资源
  • 提供 Neo4j 架构和 Qdrant 集合信息的完整文档

先决条件

  • Python 3.12+
  • Neo4j 运行于 localhost:7687(默认配置)
  • Qdrant 运行于 localhost: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 Hybrid Database

设置 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. 使用 sentence-transformers 创建嵌入
  3. 将文档及关系信息存储在 Neo4j 中
  4. 将文档块嵌入存储在 Qdrant 中

有关详细的索引脚本和流程,请参阅 GraphRAG Hybrid Database 仓库。

与 MCP 客户端集成

Claude Desktop / Cursor 集成
  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 文件中的凭据

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT 许可证

版权所有 (c) 2025 Riley Lemm

特此免费授予任何获得本软件及相关文档文件(以下简称“软件”)副本的人不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本,并允许获得本软件的人这样做,但须符合以下条件:

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

本软件按“原样”提供,不提供任何形式的明示或暗示担保,包括但不限于对适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权所有者均不对因本软件或本软件的使用或其他交易而引起的任何索赔、损害或其他责任承担责任,无论是合同诉讼、侵权行为还是其他诉讼。

署名

如果您使用此 MCP 服务或将其改编用于自己的用途,请注明 Riley Lemm,并链接回此代码库(https://github.com/rileylemm/graphrag_mcp)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。