语义记忆存储服务

为Claude Code提供基于Neo4j的知识图谱和语义搜索功能的持久化记忆存储服务,支持项目级和全局级双模式记忆管理。

  • by holydrug
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 holydrug/claude-memory

使用说明

语义记忆mcp

持久内存 克劳德代码带有语义搜索的知识图——由Neo4j提供支持。

快速开始

npx semantic-memory-mcp@3.0.4 init
# Restart Claude Code — done!

交互式向导通过Docker Compose设置Neo4j,并允许您选择嵌入提供程序:

  • 内置 --全MiniLM-L6-v2,384 dim,在CPU上运行,无额外依赖
  • 奥拉玛 --通过当地Ollama提供更高质量的型号(nomic嵌入文本768 dim,mxbai嵌入大1024 dim)

在macOS上,它通过Homebrew原生安装Ollama以实现Metal GPU加速。

需求

  • Node.js>=18
  • Docker+Docker组合

双模式:项目+全局内存

默认情况下,所有事实都会进入一个Neo4j数据库。随着 双模式 你有两层:

图层 位置 包含
项目 ./.semantic-memory/ 当前代码库的错误、解决方法和模式
全球 ~/.cache/claude-memory/ 技术栈、惯例、偏好——跨项目共享

在初始化过程中启用(默认情况下启用):

npx semantic-memory-mcp@3.0.4 init
# → "Share knowledge between projects?" → Y

自动布线

事实在写入时根据谓词路由到正确的层:

→ 全球 → 项目(默认)
uses, depends_on, deployed_on, written_in, has_version, runs_on, built_with, integrates_with, prefers, convention blocked_by, workaround_for, todo, bug_in, fixed_by, needs_refactor, has_pattern, test_for, config_for

未知谓词默认为项目(手动升级)。

搜索和图形查询总是同时访问这两个层——无需手动切换。

手动推广

项目范围的事实可以手动提升到全局:

npx semantic-memory-mcp promote

显示一个编号列表,您可以选择要推广的事实(全部/无/按数字)。

在哪里配置

有三种方法可以将MCP服务器连接到Claude Code:

全球(建议个人使用)

由自动添加 npx semantic-memory-mcp@3.0.4 init.Config位于 ~/.claude.json:

{
  "mcpServers": {
    "semantic-memory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "semantic-memory-mcp@3.0.4"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "memory_pass_2024"
      }
    }
  }
}

每个项目——与团队共享

创建 .mcp.json 在项目根中。致力于回购,因此团队共享设置:

{
  "mcpServers": {
    "semantic-memory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "semantic-memory-mcp@3.0.4"],
      "env": {
        "CLAUDE_MEMORY_DIR": "./.semantic-memory",
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "memory_pass_2024"
      }
    }
  }
}

添加 .semantic-memory/ 到 .gitignore.

双模式(由init自动配置)

单一全球入口 ~/.claude.json 处理所有项目——不需要每个项目的配置:

{
  "mcpServers": {
    "semantic-memory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "semantic-memory-mcp@3.0.4"],
      "env": {
        "CLAUDE_MEMORY_DIR": "./.semantic-memory",
        "CLAUDE_MEMORY_GLOBAL_DIR": "/home/user/.cache/claude-memory",
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "memory_pass_2024"
      }
    }
  }
}

它做什么

Claude Code有5个工具可以在会话中记住事情:

  • memory_store --将事实保存为主题→ 谓词→ 对象三元组
  • memory_search --按意义查找事实(向量相似性)
  • memory_graph --探索实体周围的联系
  • memory_list_entities --列出存储的所有内容
  • memory_delete --按ID删除事实
> "Remember that billing-service uses PostgreSQL 16"
  → Stored: [billing-service] -[uses]-> [PostgreSQL 16]

> "What do you know about billing?"
  → [0.856] [billing-service] -[uses]-> [PostgreSQL 16]

嵌入模型

型号 尺寸 大小 最适合
all-MiniLM-L6-v2 (内置) 384 80 MB 无需设置,对于大多数用例来说已经足够好了
nomic-embed-text 768 274 MB 质量和速度的最佳平衡(建议使用Olama)
mxbai-embed-large 1024 670 MB 最高质量、复杂的语义关系
all-minilm 384 45 MB 最小的Olama型号,速度快

环境变量

变量 默认值 描述
CLAUDE_MEMORY_DIR ~/.cache/claude-memory 数据目录
CLAUDE_MEMORY_MODEL_CACHE <data-dir>/models 嵌入模型缓存
EMBEDDING_PROVIDER builtin builtin 或 ollama
EMBEDDING_DIM 384 / 768 嵌入尺寸(由提供商自动设置)
OLLAMA_URL http://localhost:11434 API终点
OLLAMA_MODEL nomic-embed-text Ollama嵌入模型
NEO4J_URI bolt://localhost:7687 Neo4j螺栓URI
NEO4J_USER neo4j Neo4j用户名
NEO4J_PASSWORD memory_pass_2024 Neo4j密码
CLAUDE_MEMORY_GLOBAL_DIR -- 全局内存目录(启用双模式)
MEMORY_TRIGGERS_STORE -- 额外的触发词 memory_store (逗号分隔)
MEMORY_TRIGGERS_SEARCH -- 额外的触发词 memory_search (逗号分隔)
MEMORY_TRIGGERS_GRAPH -- 额外的触发词 memory_graph (逗号分隔)
MEMORY_TRIGGERS_LIST -- 额外的触发词 memory_list_entities (逗号分隔)

自定义触发词

每个工具都有内置的触发词(俄语和英语),告诉Claude何时使用它。您可以通过环境变量在任何语言中添加自己的触发器。自定义触发器包括 附加 默认值,而不是替换它们。

示例——添加中文和西班牙文触发器:

{
  "mcpServers": {
    "semantic-memory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "semantic-memory-mcp@3.0.4"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "memory_pass_2024",
        "MEMORY_TRIGGERS_STORE": "记住, recuerda, guardar",
        "MEMORY_TRIGGERS_SEARCH": "搜索记忆, buscar en memoria"
      }
    }
  }
}

您还可以在以下过程中交互式配置触发器 npx semantic-memory-mcp@3.0.4 init.

更新

所有命令和配置都使用固定版本(semantic-memory-mcp@3.0.4).此README在每次发布时都会自动更新,因此从这里复制任何命令都会为您提供最新版本。

许可证

麻省理工学院