返回市场
mcp-neo4j-内存服务器

mcp-neo4j-内存服务器

作者:sylweriusz30 星标更新:2025-06-12

项目介绍

Neo4j 内存服务器

这是一个使用统一架构的Neo4j图数据库提供持久智能记忆能力的模型上下文协议(MCP)服务器。

功能概述

此服务器使AI助手能够:

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

特性

核心能力

  • 🧠 图记忆 - 记忆作为节点,关系作为边,观察值作为内容。
  • 🔍 统一搜索 - 在一个工具中进行语义向量搜索、精确匹配、通配符和图遍历。
  • 🔗 智能关系 - 带有强度、来源追踪和时间元数据的类型化连接。
  • 📊 多数据库 - 隔离的项目上下文,即时切换。

高级操作

  • 批处理操作 - 使用localId在一个请求中创建多个带有关系的记忆。
  • 🎯 上下文控制 - 响应细节级别:最小(列表)、完整(完整数据)、仅关系。
  • 📅 时间查询 - 按相对日期("7d","30d")或绝对日期过滤任何时间字段。
  • 🌐 图遍历 - 控制深度在任意方向上导航网络。

架构

  • 🚀 MCP原生 - 与Claude Desktop和MCP客户端无缝集成。
  • 💾 持久存储 - 使用GDS插件进行向量操作的Neo4j图数据库。
  • ⚠️ 零回退 - 显示明确错误以可靠调试,无静默失败。

技术亮点

  • 基于Neo4j构建,用于可扩展的图操作。
  • 使用句子转换器进行向量嵌入(384维)。
  • 清晰的架构,采用领域驱动设计。
  • 支持GDS插件进行高级向量操作(必要)。
  • 统一架构 - 四个全面的工具,用于完整的记忆操作。

快速开始

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

添加到Claude Desktop配置:

{
  "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/

示例设置:

# 运行最新版本的DozerDB容器
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

# 安装GDS插件 - 请参阅dozerdb.org获取当前说明

# 验证GDS插件是否工作
# 在Neo4j浏览器(http://localhost:7474)中:
# RETURN gds.similarity.cosine([1,2,3], [2,3,4]) as similarity

统一工具

该服务器提供了四个统一的MCP工具,这些工具会自动与Claude集成:

  • memory_store - 在一次操作中创建带有观察值和即时关系的记忆。
  • memory_find - 统一搜索/检索,包括语义搜索、直接ID查找、日期过滤和图遍历。
  • memory_modify - 全面修改操作(更新、删除、观察值、关系)。
  • database_switch - 切换数据库上下文以隔离环境。

记忆结构

{
  "id": "dZ$abc123",
  "name": "项目Alpha",
  "memoryType": "project",
  "metadata": {"status": "active", "priority": "high"},
  "observations": [
    {"id": "dZ$obs456", "content": "开始开发", "createdAt": "2025-06-08T10:00:00Z"}
  ],
  "related": {
    "ancestors": [{"id": "dZ$def789", "name": "倡议", "relation": "PART_OF", "distance": 1}],
    "descendants": [{"id": "dZ$ghi012", "name": "任务", "relation": "INCLUDES", "distance": 1}]
  }
}

系统提示

记忆工具的最简单用法,通常以下内容已经足够。

## 记忆工具使用
- 将此项目的全部记忆存储在数据库:'project-database-name'
- 仅使用MCP记忆工具存储与项目相关的信息
- 每次会话开始时:
  1. 切换到此项目的数据库
  2. 搜索记忆以找到与用户提示相关的数据

故障排除

向量搜索问题:

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

连接问题:

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

许可

MIT