图数据库记忆服务器

一个基于Neo4j图数据库的MCP服务器,为AI助手提供持久化、智能化的记忆能力,支持记忆存储、搜索、连接和组织。

  • by sylweriusz
  • TypeScript
  • 本地部署
  • 31 星标
  • 更新于
在 GitHub 查看 sylweriusz/mcp-neo4j-memory-server

使用说明

Neo4j内存服务器

一个模型上下文协议(MCP)服务器,使用具有统一架构的Neo4j图形数据库为AI助手提供持久、智能的内存功能

它做什么

此服务器使AI助手能够:

  • 记住 -将记忆存储为具有观察和元数据的互连知识节点
  • 搜索 -使用语义向量搜索、精确匹配和图遍历查找相关记忆
  • 连接 -通过批处理操作和交叉引用在内存之间创建有意义的关系
  • 组织 -使用不同的数据库按项目分离内存
  • 进化 -使用时间元数据和关系网络跟踪知识如何随时间发展

特性

核心能力

  • 🧠 图形存储器 -记忆是节点,关系是边缘,观察是内容
  • 🔍 统一搜索 -语义向量、精确匹配、通配符和图遍历在一个工具中
  • 🔗 智能关系 -具有强度、源跟踪和时间元数据的类型化连接
  • 📊 多数据库 -具有即时切换功能的孤立项目上下文

高级操作

  • ⚡ 批量操作 -使用localId在单个请求中创建具有关系的多个内存
  • 🎯 上下文控制 -响应详细级别:最小(列表)、完整(完整数据)、仅关系
  • 📅 时间查询 -按任何时间字段上的相对日期(“7d”、“30d”)或绝对日期过滤
  • 🌐 图的遍历 -使用深度控制在任何方向上导航网络

建筑

  • 🚀 MCP本地 -与Claude Desktop和MCP客户端无缝集成
  • 💾 永久存储 -带有GDS插件的Neo4j图形数据库,用于矢量运算
  • ⚠️ 零回退 -显式错误可实现可靠调试,无无声故障

技术亮点

  • 基于Neo4j构建,用于可扩展的图形操作
  • 使用句子变换器的向量嵌入(384维)
  • 采用领域驱动设计的干净架构
  • 支持GDS插件进行高级矢量操作(必要)
  • 统一架构 -4个全面的工具,用于完成内存操作

快速开始

npm install @sylweriusz/mcp-neo4j-memory-server

添加到Claude桌面配置:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@sylweriusz/mcp-neo4j-memory-server"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USERNAME": "neo4j", 
        "NEO4J_PASSWORD": "your-password"
      }
    }
  }
}

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

统一工具

服务器提供 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

故障排除

矢量搜索问题:

  • 检查日志 [VectorSearch] GDS Plugin detected
  • GDS插件需要DozerDB设置(请参阅Neo4j设置部分)

连接问题:

  • 验证Neo4j是否正在运行: docker ps
  • 测试连接: curl http://localhost:7474
  • 检查环境变量中的凭据

许可证

麻省理工学院