关于 GraphRAG MCP Server
GraphRAG MCP Server 是一个 MCP 服务,用于查询结合 Neo4j 图数据库与 Qdrant 向量数据库的混合检索系统。适合已经建立了这类索引、希望让 LLM 同时利用语义相似度与图关系检索文档的用户。
主要功能
- 01基于 Qdrant 的语义搜索
- 02基于 Neo4j 的图关系上下文扩展
- 03结合向量与图关系的混合搜索
- 04提供 Neo4j 模式与 Qdrant 集合的资源
适用场景
- 01让 Claude 或 Cursor 检索已索引的技术文档
- 02沿文档关系扩展检索到的上下文
- 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(默认配置)
- 两个数据库中均已建立索引的文档数据
安装
快速开始
-
克隆此仓库:
git clone https://github.com/rileylemm/graphrag_mcp.git cd graphrag_mcp -
使用 uv 安装依赖:
uv install -
在
.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 -
运行服务:
uv run main.py
详细设置指南
有关设置底层混合数据库系统的详细指南,请参阅配套仓库:GraphRAG Hybrid Database
设置 Neo4j 和 Qdrant
-
安装并启动 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 -
安装并启动 Qdrant:
# Using Docker docker run -p 6333:6333 -p 6334:6334 \ -v $HOME/qdrant/storage:/qdrant/storage \ qdrant/qdrant
为文档建立索引
要在两个数据库中为文档建立索引,请按以下步骤操作:
- 准备文档
- 使用 sentence-transformers 创建嵌入
- 将文档及关系信息存储在 Neo4j 中
- 将文档块嵌入存储在 Qdrant 中
有关详细的索引脚本和流程,请参阅 GraphRAG Hybrid Database 仓库。
与 MCP 客户端集成
Claude Desktop / Cursor 集成
-
将运行脚本设为可执行:
chmod +x run_server.sh -
将服务添加到 MCP 配置文件(
~/.cursor/mcp.json或 Claude Desktop 的对应配置文件):{ "mcpServers": { "GraphRAG": { "command": "/path/to/graphrag_mcp/run_server.sh", "args": [] } } } -
重启 MCP 客户端(Cursor、Claude Desktop 等)
用法
MCP 工具
此服务提供以下工具供 LLM 使用:
-
search_documentation- 使用语义搜索查找信息# Example usage in MCP context result = search_documentation( query="How does graph context expansion work?", limit=5, category="technical" ) -
hybrid_search- 同时使用语义搜索和基于图的方法进行搜索# Example usage in MCP context result = hybrid_search( query="Vector similarity with graph relationships", limit=10, category=None, expand_context=True )
MCP 资源
此服务提供以下资源:
https://graphrag.db/schema/neo4j- Neo4j 图架构信息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)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。