使用说明
个人Neo4j内存服务器-增强的Cloudflare访问支持
一个模型上下文协议(MCP)服务器,使用Neo4j的图形数据库为AI助手提供持久、智能的内存功能 增强的Cloudflare访问隧道支持.
🎯 它做什么
此服务器使AI助手能够:
- 记住 -将记忆存储为具有观察和元数据的互连知识节点
- 搜索 -使用语义向量搜索、精确匹配和图遍历查找相关记忆
- 连接 -通过批处理操作和交叉引用在内存之间创建有意义的关系
- 组织 -使用不同的数据库按项目分离内存
- 进化 -使用时间元数据和关系网络跟踪知识如何随时间发展
- 🚀 新功能:可靠的远程访问 -通过Cloudflare零信任访问从任何地方连接
✨ 主要特点
核心能力
- 🧠 图形存储器 -记忆是节点,关系是边缘,观察是内容
- 🔍 统一搜索 -语义向量、精确匹配、通配符和图遍历在一个工具中
- 🔗 智能关系 -具有强度、源跟踪和时间元数据的类型化连接
- 📊 多数据库 -具有即时切换功能的孤立项目上下文
- ☁️ Cloudflare访问就绪 -用于安全远程连接的零信任隧道
高级操作
- ⚡ 批量操作 -使用localId在单个请求中创建具有关系的多个内存
- 🎯 上下文控制 -响应详细级别:最小(列表)、完整(完整数据)、仅关系
- 📅 时间查询 -按任何时间字段上的相对日期(“7d”、“30d”)或绝对日期过滤
- 🌐 图的遍历 -使用深度控制在任何方向上导航网络
- 🛡️ 零信任安全 -通过Cloudflare Access进行mTLS加密
建筑
- 🚀 MCP本地 -与Claude Desktop和MCP客户端无缝集成
- 💾 持久化存储 -带有GDS插件的Neo4j图形数据库,用于矢量运算
- ☁️ Cloudflare优化 -解决了BOLT协议隧道问题
- ⚠️ 零回退 -显式错误可实现可靠调试,无无声故障
🚀 快速入门-NPM安装
选项1:从NPM安装(推荐)
# Coming soon - after publication
npm install @jeelidev/personal-neo4j-memory-server
选项2:从GitHub安装(现在可用)
npx -y https://github.com/jeelidev/personal-neo4j-memory-server.git
📝 Claude代码配置
添加到克劳德桌面/Claude代码配置:
对于NPM包(发布时):
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@jeelidev/personal-neo4j-memory-server"],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "your-password"
}
}
}
}
GitHub安装(当前):
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "https://github.com/jeelidev/personal-neo4j-memory-server.git"],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "your-password"
}
}
}
}
☁️ Cloudflare访问设置(对于远程设置至关重要)
🎯 问题已解决
使用TCP的传统Cloudflare隧道(cloudflared tunnel --url tcp://localhost:7687) 失败 对于Neo4j BOLT协议,会导致HTTP 400错误。
✅ 解决方案:Cloudflare Access
使用 cloudflared access tcp 而不是 cloudflared tunnel 用于可靠的BOLT协议连接。
1.Cloudflare仪表板配置
导航到: 零信任→ 网络→ 隧道→ 公共主机名
添加公共主机名:
- 类型:TCP
- 主机名:
neo4j-bolt.jeelidev.uk(或您的域名) - 服务:
tcp://localhost:7687
2.本地Cloudflare访问命令
# Start tunnel for Neo4j BOLT
cloudflared access tcp --hostname neo4j-bolt.jeelidev.uk --url localhost:7687
# For multiple services (MySQL, PostgreSQL, SSH, etc.)
cloudflared access tcp --hostname mysql-server.jeelidev.uk --url localhost:3306
cloudflared access tcp --hostname postgres-server.jeelidev.uk --url localhost:5432
3.SSH配置(可选但推荐)
添加到 ~/.ssh/config:
Host *.jeelidev.uk
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
🛠️ 自动TCP隧道服务
📁 包含的脚本
此软件包包括自动化隧道管理 任何TCP服务:
cloudflare-tcp-tunnels.sh -主脚本
# Start all configured tunnels
./cloudflare-tcp-tunnels.sh start
# Check tunnel status
./cloudflare-tcp-tunnels.sh status
# Add new tunnel
./cloudflare-tcp-tunnels.sh add my-service api.jeelidev.uk 3000
# List configured tunnels
./cloudflare-tcp-tunnels.sh list
# Remove existing tunnel
./cloudflare-tcp-tunnels.sh remove my-service
# Clean all tunnels (resets configuration)
./cloudflare-tcp-tunnels.sh clean
# Stop all tunnels
./cloudflare-tcp-tunnels.sh stop
预配置服务:
- Neo4j螺栓:
neo4j-bolt.jeelidev.uk:7687 - Neo4j路由:
neo4j-routing.jeelidev.uk:7688 - MySQL:
mysql-server.jeelidev.uk:3306 - PostgreSQL:
postgres-server.jeelidev.uk:5432 - 安全外壳协议:
ssh-server.jeelidev.uk:22 - 瑞迪斯:
redis-server.jeelidev.uk:6379 - MongoDB:
mongodb-server.jeelidev.uk:27017 - 定制服务:轻松添加更多
add命令
cloudflare-tcp-tunnels.service -系统化服务
# Install for automatic startup on boot
sudo cp cloudflare-tcp-tunnels.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable cloudflare-tcp-tunnels.service
sudo systemctl start cloudflare-tcp-tunnels.service
🗄️ Neo4j设置
工作设置:DozerDB与GDS插件
对于数据库,使用DozerDB和图形数据科学插件,GDS不仅是推荐的,而且是必要的:
有关当前的安装说明,请参阅:https://dozerdb.org/
示例设置:
# Run DozerDB container with latest version
docker run \
-p 7474:7474 -p 7687:7687 \
-v $HOME/neo4j/data:/data \
-v $HOME/neo4j/logs:/logs \
-v $HOME/neo4j/plugins:/plugins \
--env NEO4J_AUTH=neo4j/password \
--env NEO4J_dbms_security_procedures_unrestricted='gds.*' \
graphstack/dozerdb:latest
# Install GDS plugin - see dozerdb.org for current instructions
# Verify GDS plugin works
# In Neo4j Browser (http://localhost:7474):
# RETURN gds.similarity.cosine([1,2,3], [2,3,4]) as similarity
具有Cloudflare访问权限的远程Neo4j
对于远程Neo4j服务器,请使用Cloudflare Access而不是传统的隧道:
# On remote server: configure Zero Trust hostname
# On local machine: start access tunnel
cloudflared access tcp --hostname neo4j-remote.jeelidev.uk --url localhost:7687
# Connect Neo4j Browser to: bolt://localhost:7687
# MCP connects through localhost proxy
🛠️ 统一工具
服务器提供 4个统一的MCP工具 与Claude自动集成:
memory_store-在一次操作中通过观察和直接关系创建记忆memory_find-具有语义搜索、直接ID查找、日期过滤和图遍历的统一搜索/检索memory_modify-全面的修改操作(更新、删除、观察、关系)database_switch-为隔离环境切换数据库上下文
📊 存储结构
{
"id": "dZ$abc123",
"name": "Project Alpha",
"memoryType": "project",
"metadata": {"status": "active", "priority": "high"},
"observations": [
{"id": "dZ$obs456", "content": "Started development", "createdAt": "2025-06-08T10:00:00Z"}
],
"related": {
"ancestors": [{"id": "dZ$def789", "name": "Initiative", "relation": "PART_OF", "distance": 1}],
"descendants": [{"id": "dZ$ghi012", "name": "Task", "relation": "INCLUDES", "distance": 1}]
}
}
🎯 系统提示
最简单的使用记忆工具,以下通常就足够了。
## Memory Tool Usage
- Store all memory for this project in database: 'project-database-name'
- Use MCP memory tools exclusively for storing project-related information
- Begin each session by:
1. Switching to this project's database
2. Searching memory for data relevant to the user's prompt
🔧 故障排除
Cloudflare访问问题
❌ HTTP 400传统隧道错误:
# WRONG - This causes HTTP 400 errors
cloudflared tunnel --url tcp://localhost:7687
# CORRECT - Use Cloudflare Access
cloudflared access tcp --hostname neo4j-bolt.jeelidev.uk --url localhost:7687
✅ 连接验证:
# Verify tunnel is working
netcat -zv localhost 7687
# Should show: Connection to localhost port 7687 [tcp/*] succeeded!
矢量搜索问题:
- 检查日志
[VectorSearch] GDS Plugin detected - GDS插件需要DozerDB设置(请参阅Neo4j设置部分)
连接问题:
- 验证Neo4j是否正在运行:
docker ps - 测试连接:
curl http://localhost:7474 - 检查环境变量中的凭据
- 确保Cloudflare访问隧道正在运行
📚 Cloudflare访问命令参考
支持的协议:
# TCP Services (Neo4j, MySQL, PostgreSQL, etc.)
cloudflared access tcp --hostname service.domain.com --url localhost:PORT
# SSH Services
cloudflared access ssh --hostname ssh.domain.com
# HTTP/HTTPS Services
cloudflared access https://app.domain.com
# RDP (Windows Remote Desktop)
cloudflared access rdp --hostname rdp.domain.com --local-port 3389
# VNC
cloudflared access vnc --hostname vnc.domain.com --local-port 5900
🚀 生产部署
用于生产用途:
- 安装systemd服务 用于自动隧道启动
- 配置正确的SSL证书 Cloudflare零信任
- 设置访问策略 为了增加安全性
- 监控隧道健康状况 使用提供的状态命令
- 使用环境变量 用于敏感配置
📄 许可证
麻省理工学院
🤝 贡献
这是一个增强了Cloudflare Access兼容性的个人分叉。sylweriusz的原创项目。
此分叉中的主要增强功能:
- ✅ Cloudflare访问TCP兼容性
- ✅ 针对隧道问题的增强错误日志记录
- ✅ 自动化隧道管理脚本
- ✅ 生产就绪系统服务
- ✅ 全面的文件