一个基于FastMCP构建的超快速模型上下文协议(MCP)服务器,它无缝结合了Neo4j的图数据库能力和通过嵌入实现的高级向量搜索。此服务器支持在知识图谱上进行智能语义搜索,允许您通过自然语言查询以闪电般的速度发现上下文相关的数据。
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP 客户端 │◄──►│ 向量搜索 │◄──►│ Neo4j │
│ (Claude AI) │ │ 服务器 │ │ 数据库 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ 嵌入 │
└──────────────────┘
安装 uv(如果尚未安装)
# 在 macOS 和 Linux 上
curl -LsSf https://astral.sh/uv/install.sh | sh
# 在 Windows 上
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
克隆并设置项目
git clone https://github.com/omarguzmanm/mcp-server-vector-search.git
cd mcp-server-vector-search
# 创建虚拟环境并安装依赖项
uv venv
uv pip install fastmcp neo4j openai python-dotenv sentence-transformers pydantic
环境配置
# 创建 .env 文件
cp .env.example .env
编辑 .env 文件,添加您的配置:
NEO4J_URI=bolt://localhost:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your_neo4j_password
NEO4J_DATABASE=neo4j
OPENAI_API_KEY=your_openai_api_key
Neo4j 向量索引设置
// 创建针对 1536 维度 OpenAI 嵌入的向量索引
// 如果不工作
CREATE VECTOR INDEX embeddableIndex FOR (n:Document) ON (n.embedding)
OPTIONS {indexConfig: {
`vector.dimensions`: 1536,
`vector.similarity_function`: 'cosine'
}}
启动服务器
# 激活虚拟环境
source .venv/bin/activate # 在 Linux/macOS 上
# 或
.venv\Scripts\activate # 在 Windows 上
# 启动 FastMCP 服务器
python main.py
服务器提供了一个强大的工具,优化用于向量搜索:
vector_search_neo4j(
prompt="查找关于机器学习和神经网络的文档"
)
功能:
| 变量 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
NEO4J_URI | Neo4j 连接 URI | ✅ | bolt://localhost:7687 |
NEO4J_USERNAME | Neo4j 用户名 | ✅ | neo4j |
NEO4J_PASSWORD | Neo4j 密码 | ✅ | password |
NEO4J_DATABASE | Neo4j 数据库名称 | ✅ | neo4j |
OPENAI_API_KEY | OpenAI API 密钥 | ❌ | all-MiniLM-L6-v2 模型 |
embedding 属性添加到您的 Claude Desktop MCP 设置中:
{
"mcpServers": {
"mcp-neo4j-vector-search": {
"command": "python",
"args": [
"you\\server.py",
"--with",
"mcp[cli]",
"--with",
"neo4j",
"--with",
"pydantic"
],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "your_password",
"NEO4J_DATABASE": "neo4j",
"OPENAI_API_KEY": "your_api_key"
}
}
}
}
“模块未找到”错误
# 重新安装依赖项
uv pip install --force-reinstall fastmcp neo4j openai
“向量索引未找到”
// 检查现有索引
SHOW INDEXES
// 如有缺失,请创建
CREATE VECTOR INDEX embeddableIndex FOR (n:Document) ON (n.embedding)
OPTIONS {indexConfig: {`vector.dimensions`: 1536, `vector.similarity_function`: 'cosine'}}
OpenAI API 错误
# 验证 API 密钥
uv run python -c "
import os
from openai import OpenAI
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))
print('API 密钥有效!' if client.api_key else '缺少 API 密钥!')
"
git checkout -b feature/amazing-featureuv pip install -e ".[dev]"git commit -m '添加精彩功能'git push origin feature/amazing-feature本项目采用 MIT 许可证 - 查看 LICENSE 文件获取详情。