返回市场
图谱抽取_mcp

图谱抽取_mcp

作者:rileylemm48 星标更新:2025-04-03

项目介绍

GraphRAG MCP Server

这是一个用于查询混合图和向量数据库系统的模型上下文协议(MCP)服务器,结合了Neo4j(图数据库)和Qdrant(向量数据库),以实现强大的语义和基于图的文档检索。

概述

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

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

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

特性

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

预备条件

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

安装

快速开始

  1. 克隆此仓库:

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

    uv install
    
  3. .env文件中配置您的数据库连接:

    # Neo4j 配置
    NEO4J_URI=bolt://localhost:7687
    NEO4J_USER=neo4j
    NEO4J_PASSWORD=password
    
    # Qdrant 配置
    QDRANT_HOST=localhost
    QDRANT_PORT=6333
    QDRANT_COLLECTION=document_chunks
    
  4. 运行服务器:

    uv run main.py
    

详细设置指南

对于详细的底层混合数据库系统设置指南,请参阅配套仓库:GraphRAG 混合数据库

设置Neo4j和Qdrant

  1. 安装并启动Neo4j:

    # 使用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:

    # 使用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 混合数据库仓库中的详细索引脚本和程序。

与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 - 使用语义搜索查找信息

    # 在MCP上下文中使用的示例
    result = search_documentation(
        query="图上下文扩展是如何工作的?",
        limit=5,
        category="技术"
    )
    
  2. hybrid_search - 使用语义和基于图的方法进行搜索

    # 在MCP上下文中使用的示例
    result = hybrid_search(
        query="向量相似性与图关系",
        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 Riley Lemm

在此授权任何人免费获得此软件及其相关文档文件(“软件”)的副本,在不受限制的情况下处理软件,包括但不限于以下权利:

  • 使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本;
  • 向接收软件的人提供上述权利,前提是遵守以下条件:

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

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

致谢

如果您使用此MCP服务器或将它适应自己的用途,请提供致谢给Riley Lemm,并链接回此仓库(https://github.com/rileylemm/graphrag_mcp)。