图数据库增强查询服务

一个扩展Neo4j功能的MCP服务器,提供向量搜索、全文搜索和增强的Cypher查询功能,适用于GraphRAG应用。

  • by neo4j-field
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 guerinjeanmarc/mcp-neo4j-graphrag

使用说明

Neo4j GraphRAG MCP服务器

一个扩展了Neo4j的MCP服务器 向量搜索, 全文搜索,以及 搜索增强的Cypher查询 用于GraphRAG应用程序。

灵感源自 这 Neo4j实验室 mcp-neo4j-cypher 服务器。该服务器增加了矢量搜索、全文搜索和创新的 search_cypher_query 用于将搜索与图遍历相结合的工具。

概述

此服务器使LLM能够:

  • 🔍 使用语义相似度搜索Neo4j向量索引
  • 📝 使用Lucene语法搜索全文索引
  • ⚡ 通过以下方式将搜索与Cypher查询相结合 search_cypher_query
  • 🕸️ 执行只读Cypher查询

建立在 文学硕士 用于多提供商嵌入支持(OpenAI、Azure、Bedrock、Cohere等)。

相关: 有关官方Neo4j MCP服务器,请参阅 neo4j/mcp有关Neo4j Labs MCP服务器(Cypher、内存、数据建模),请参阅 neo4j控件/mcpneo4j.

安装

# Using pip
pip install mcp-neo4j-graphrag

# Using uv (recommended)
uv pip install mcp-neo4j-graphrag

配置

克劳德桌面版

编辑配置文件:

  • macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "neo4j-graphrag": {
      "command": "uvx",
      "args": ["mcp-neo4j-graphrag"],
      "env": {
        "NEO4J_URI": "neo4j+s://demo.neo4jlabs.com",
        "NEO4J_USERNAME": "recommendations",
        "NEO4J_PASSWORD": "recommendations",
        "NEO4J_DATABASE": "recommendations",
        "OPENAI_API_KEY": "sk-...",
        "EMBEDDING_MODEL": "text-embedding-ada-002"
      }
    }
  }
}

备注: uvx 自动从PyPI下载并运行包。无需本地安装!

光标

编辑 ~/.cursor/mcp.json 或 .cursor/mcp.json 在你的项目中。使用与上述相同的配置。

重新加载配置

  • 克劳德桌面: 退出并重新启动应用程序
  • 光标: 重新加载窗口(Cmd/Ctrl+Shift+P→ “重新加载窗口”)

工具

get_neo4j_schema_and_indexes

发现图模式、向量索引和全文索引。

💡 在使用其他工具理解数据库的模式和索引之前,代理应首先自动调用此工具。

示例提示:

“数据库里面有什么?”

vector_search

使用嵌入进行语义相似性搜索。

参数: text_query, vector_index, top_k, return_properties

示例提示:

“什么电影是关于人工智能的?”

fulltext_search

使用Lucene语法(AND、OR、通配符、模糊)进行关键字搜索。

参数: text_query, fulltext_index, top_k, return_properties

示例提示:

“找个叫汤姆的人”

read_neo4j_cypher

执行只读Cypher查询。

参数: query, params

示例提示:

“显示所有类型以及每种类型有多少部电影”

search_cypher_query

将矢量/全文搜索与Cypher查询相结合。使用 $vector_embedding 和 $fulltext_text 占位符。

参数: cypher_query, vector_query, fulltext_query, params

示例提示:

“在一个问题中,关于‘时间旅行冒险’的电影导演和类型是什么?”

环境变量

变量 必填 默认 描述
NEO4J_URI 是的 bolt://localhost:7687 Neo4j连接URI
NEO4J_USERNAME 是的 neo4j Neo4j用户名
NEO4J_PASSWORD 是的 password Neo4j密码
NEO4J_DATABASE 没有 neo4j 数据库名称
EMBEDDING_MODEL 没有 text-embedding-3-small 嵌入模型(见下文)

嵌入提供者

集 EMBEDDING_MODEL 以及相应的API密钥:

提供程序 模型格式 API密钥变量
OpenAI text-embedding-ada-002 OPENAI_API_KEY
Azure azure/deployment-name AZURE_API_KEY, AZURE_API_BASE
基岩 bedrock/amazon.titan-embed-text-v1 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
科恩 cohere/embed-english-v3.0 COHERE_API_KEY
奥拉马 ollama/nomic-embed-text (无-本地)

高级主题

看 docs/ADVANCED.md 用于:

  • 与Neo4j实验室的比较 mcp-neo4j-cypher 服务器
  • 生产特性(输出净化、令牌限制)
  • 详细的工具文档

许可证

MIT许可证