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(默认配置)
- 在两个数据库中都有索引的文档数据
安装
快速开始
- 克隆此存储库:
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混合数据库
设置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索引文档
要在两个数据库中为文档建立索引,请执行以下步骤:
- 准备你的文件
- 使用句子变换器创建嵌入
- 在Neo4j中存储包含关系信息的文档
- 将文档块嵌入存储在Qdrant中
请参阅 GraphRAG混合数据库 用于详细索引脚本和过程的存储库。
与MCP客户端集成
Claude桌面/光标集成
- 使运行脚本可执行:
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文件
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证
版权所有(c)2025莱利莱姆
特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:
上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。
软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。
归因
如果您使用此MCP服务器或将其用于自己的目的,请提供Riley Lemm的归属并链接回此存储库(https://github.com/rileylemm/graphrag_mcp).
