Neo4j矢量数据库MCP服务器
使用Neo4j作为 纯矢量数据库 --没有图遍历,没有关系。
目的
此服务器旨在 比较矢量RAG与图形RAG。它提供的搜索功能与 mcp-neo4j-graphrag 但有意隐藏图特征,允许您测量图上下文为LLM响应添加的值。
| 特点 | mcp-neo4j-vectordb (这个) | mcp-neo4j-graphrag |
|---|---|---|
| 矢量搜索 | ✅ | ✅ |
| 全文搜索 | ✅ | ✅ |
| 图形遍历 | ❌ | ✅ |
| 密码查询 | ❌ | ✅ |
| 关系 | ❌ 隐藏 | ✅ 可见 |
安装
步骤1:下载存储库
git clone https://github.com/guerinjeanmarc/mcp-neo4j-vectordb.git
cd mcp-neo4j-vectordb步骤2:配置Claude桌面
编辑配置文件:
- macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
添加此服务器配置(更新克隆仓库的路径):
{
"mcpServers": {
"neo4j-vectordb": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-neo4j-vectordb",
"run",
"mcp-neo4j-vectordb"
],
"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"
}
}
}
}步骤3:重新加载配置
退出并重新启动Claude Desktop以加载新配置。
工具
get_searchable_content
发现可用索引和可搜索节点属性(未显示关系)。
💡 代理应首先自动调用此工具,以了解可以搜索什么。
示例提示:
“我可以在这个数据库中搜索什么?”
vector_search
语义相似性搜索。
示例提示:
“寻找关于‘英雄太空之旅’的电影”
fulltext_search
使用Lucene语法进行关键字搜索。
示例提示:
“汤姆·汉克斯出生在哪里?”
get_node_by_id
按ID检索节点的属性(无关系)。
示例提示:
“从我的搜索结果中获取第一部电影的全部详细信息”
______________________________________________________________________
比较工作流程:矢量RAG与图形RAG
使用这两个服务器来比较图上下文如何改进LLM响应。
先决条件
下载两个存储库:
git clone https://github.com/guerinjeanmarc/mcp-neo4j-vectordb.git
git clone https://github.com/guerinjeanmarc/mcp-neo4j-graphrag.git步骤1:在Claude Desktop中配置两个服务器
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"neo4j-vectordb": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-neo4j-vectordb",
"run",
"mcp-neo4j-vectordb"
],
"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"
}
},
"neo4j-graphrag": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-neo4j-graphrag",
"run",
"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"
}
}
}
}步骤2:仅使用VectorDB进行测试
- 在Claude Desktop中,单击 “搜索和工具” 对话界面中的按钮
- 禁用
neo4j-graphrag工具(仅保留neo4j-vectordb活动) - 提出测试问题:
“找到关于人工智能的电影,告诉我哪些导演制作了多部人工智能电影,以及他们通常从事哪些其他类型的电影。”
- 请注意克劳德的回答及其使用的工具
步骤3:仅使用GraphRAG进行测试
- 点击 “搜索和工具” 再次
- 禁用
neo4j-vectordb工具和 启用neo4j-graphrag工具 - 问:
“您现在可以访问Neo4j工具,请回答同样的问题。”
- 请注意克劳德的回答及其使用的工具
步骤4:比较结果
请克劳德进行比较:
“比较你之前的两个答案。哪种方法能给你更好的背景来回答这个问题?请解释哪种技术更适合回答这个问题:VectorDB还是Neo4j?”
比较示例问题
| 问题 | 矢量RAG | 图形RAG |
|---|---|---|
| “《黑客帝国》是关于什么的?” | ✅ 好 | ✅ 很好 |
| “寻找科幻电影” | ✅ 好 | ✅ 很好 |
| “哪些演员与斯皮尔伯格和诺兰都合作过?”⚠️ 有限 | ✅ 太好了 | |
| “汤姆·汉克斯通常演什么类型的戏?” | ⚠️ 有限 | ✅ 太好了 |
| “寻找与《盗梦空间》类似的电影,并展示导演的其他作品” | ⚠️ 有限 | ✅ 太好了 |
______________________________________________________________________
配置
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
NEO4J_URI | 是的 | bolt://localhost:7687 | Neo4j连接URI |
NEO4J_USERNAME | 是的 | neo4j | Neo4j用户名 |
NEO4J_PASSWORD | 是的 | password | Neo4j密码 |
NEO4J_DATABASE | 没有 | neo4j | 数据库名称 |
EMBEDDING_MODEL | 没有 | text-embedding-3-small | 嵌入模型 |
嵌入提供者
支持所有 LiteLLM嵌入提供商:
- OpenAI:
text-embedding-ada-002,text-embedding-3-small - Azure:
azure/deployment-name - 基岩:
bedrock/amazon.titan-embed-text-v1 - 科恩:
cohere/embed-english-v3.0 - 奥拉马:
ollama/nomic-embed-text
______________________________________________________________________
相关
- mcp-neo4j-图形 --带图遍历的完整GraphRAG
- Neo4j MCP文档
- 官方Neo4j MCP服务器
许可证
MIT许可证
