持久化记忆存储搜索服务

为Claude Code提供的持久化记忆存储服务,支持跨会话的混合向量和关键词搜索。

  • by AyubMoh1
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AyubMoh1/memory-mcp

使用说明

存储器mcp

用于Claude Code的持久内存MCP服务器。使用SQLite、FTS5和SQLite-vec支持的混合向量+关键字搜索在会话之间存储、搜索和检索记忆。

特性

  • 混合搜索 --70%向量相似度+30%BM25关键字匹配
  • 本地嵌入 --Ollama(必填,本地,免费)
  • 持久存储 --SQLite数据库在会话中生存
  • 令牌感知上下文 --检索符合令牌预算的记忆
  • 文件监视 --更改时自动索引标记和代码文件
  • LRU嵌入缓存 --10k条记录,SHA256密钥加密

设置

git clone https://github.com/AyubMoh1/memory-mcp.git
cd memory-mcp
npm install
npm run build

使用克劳德代码注册

添加 ~/.claude/config.json:

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/path/to/memory-mcp/dist/index.js"]
    }
  }
}

工具

工具 说明
memory_store 用类别、标签和重要性存储内存
memory_search 混合向量+关键字搜索
memory_list 使用过滤器列出最近的记忆
memory_delete 按ID删除内存
memory_get_context 主题的令牌预算上下文检索
memory_get_stats 存储统计

资源

资源 URI 描述
统计数据 memory://stats JSON存储统计
最近 memory://recent 最后20个回忆

配置

所有配置都是通过环境变量进行的:

变量 默认值 描述
MEMORY_DB_PATH ~/.memory-mcp/memory.db 数据库文件位置
MEMORY_WATCH_PATHS (空) 逗号分隔的自动索引文件路径
OLLAMA_URL http://127.0.0.1:11434 Ollama服务器URL
DEBUG -- 启用调试日志记录

嵌入

奥拉玛是 必需的。如果没有安装正在运行的Ollama实例和嵌入模型,服务器将无法启动。

ollama serve                    # Start Ollama
ollama pull nomic-embed-text    # Install embedding model

建筑

src/
├── index.ts              # Entry point: MCP server + stdio transport
├── storage/
│   ├── types.ts          # MemoryChunk, SearchResult, StorageBackend
│   └── database.ts       # SQLite + FTS5 + sqlite-vec
├── embeddings/
│   ├── providers.ts      # Ollama embedding provider
│   ├── cache.ts          # LRU embedding cache
│   └── detect.ts         # Detect Ollama + embedding model
├── sync/
│   ├── file-watcher.ts   # chokidar with debouncing
│   └── chunker.ts        # Split files by headers/paragraphs
├── tools/                # MCP tool handlers
├── resources/            # MCP resource handlers
└── utils/                # Logger, ID gen, token estimation

许可证

麻省理工学院