返回市场
记忆回溯MCP服务器

记忆回溯MCP服务器

作者:ttommyth38 星标更新:2025-05-28

项目介绍

rag-memory-mcp

npm 版本 npm 下载量 GitHub 许可证 平台 GitHub 最后一次提交

一个通过知识图谱和向量搜索能力实现的高级MCP服务器,用于RAG增强的记忆。此服务器扩展了基本的记忆概念,包括语义搜索、文档处理和混合检索,以实现更智能的记忆管理。

灵感来源: 知识图谱记忆服务器,来自Model Context Protocol项目。

注意: 此服务器设计为与MCP客户端(如Claude Desktop、VS Code)本地运行,并需要访问本地文件系统进行数据库存储。

✨ 主要特性

  • 🧠 知识图谱记忆:持久实体、关系和观察
  • 🔍 向量搜索:使用句子转换器进行语义相似性搜索
  • 📄 文档处理:RAG增强的文档分块和嵌入
  • 🔗 混合搜索:结合向量相似性和图遍历
  • ⚡ SQLite 后端:使用sqlite-vec进行快速本地存储和向量操作
  • 🎯 实体提取:从文档中自动提取潜在实体术语

工具

此服务器通过模型上下文协议(MCP)提供全面的记忆管理:

📚 文档管理

  • storeDocument:存储带有元数据的文档以供处理
  • chunkDocument:创建具有可配置参数的文本块
  • embedChunks:生成用于语义搜索的向量嵌入
  • extractTerms:从文档中提取潜在实体术语
  • linkEntitiesToDocument:创建明确的实体-文档关联
  • deleteDocuments:删除文档及其相关数据
  • listDocuments:查看所有存储的文档及其元数据

🧠 知识图谱

  • createEntities:创建带有观察和类型的实体
  • createRelations:在实体之间建立关系
  • addObservations:向现有实体添加上下文信息
  • deleteEntities:删除实体及其关系
  • deleteRelations:删除特定关系
  • deleteObservations:从实体中删除特定观察

🔍 搜索与检索

  • hybridSearch:结合向量相似性和图遍历的高级搜索
  • searchNodes:按名称、类型或观察内容查找实体
  • openNodes:检索特定实体及其关系
  • readGraph:获取完整的知识图谱结构

📊 分析

  • getKnowledgeGraphStats:关于知识库的综合统计

使用场景

此服务器适用于需要智能记忆和文档理解的场景:

  • 研究和文档:存储、处理并智能检索研究论文
  • 知识库构建:从文档中构建相互连接的知识
  • 对话记忆:通过语义理解记住聊天会话中的上下文
  • 内容分析:从大量文档集合中提取和关联概念
  • 智能辅助:基于存储的知识提供上下文感知响应

客户端配置

本节解释如何配置MCP客户端以使用rag-memory-mcp服务器。

与Claude Desktop / Cursor一起使用

在您的claude_desktop_config.json(Claude Desktop)或mcp.json(Cursor)中添加以下配置:

{
  "mcpServers": {
    "rag-memory": {
      "command": "npx",
      "args": ["-y", "rag-memory-mcp"]
    }
  }
}

指定版本:

{
  "mcpServers": {
    "rag-memory": {
      "command": "npx",
      "args": ["-y", "rag-memory-mcp@1.0.0"]
    }
  }
}

自定义数据库路径:

{
  "mcpServers": {
    "rag-memory": {
      "command": "npx",
      "args": ["-y", "rag-memory-mcp"],
      "env": {
        "MEMORY_DB_PATH": "/path/to/custom/memory.db"
      }
    }
  }
}

与VS Code一起使用

在您的用户设置(JSON)文件或.vscode/mcp.json中添加以下配置:

{
  "mcp": {
    "servers": {
      "rag-memory-mcp": {
        "command": "npx",
        "args": ["-y", "rag-memory-mcp"]
      }
    }
  }
}

核心概念

实体

实体是知识图谱中的主要节点。每个实体都有:

  • 唯一名称(标识符)
  • 实体类型(例如,“PERSON”,“CONCEPT”,“TECHNOLOGY”)
  • 观察列表(上下文信息)

示例:

{
  "name": "机器学习",
  "entityType": "CONCEPT",
  "observations": [
    "人工智能的一个子集",
    "专注于从数据中学习",
    "用于推荐系统"
  ]
}

关系

关系定义了实体之间的有向连接,描述它们如何交互:

示例:

{
  "from": "React",
  "to": "JavaScript",
  "relationType": "BUILT_WITH"
}

观察

观察是关于实体的信息片段:

  • 存储为字符串
  • 附属于特定实体
  • 可独立添加或删除
  • 应该是原子的(每个观察一个事实)

文档与向量搜索

文档通过以下步骤处理:

  1. 存储:原始文本与元数据
  2. 分块:拆分为可管理的部分
  3. 嵌入:转换为向量表示
  4. 关联:与相关实体关联

这使混合搜索能够结合:

  • 向量相似性(语义匹配)
  • 图遍历(概念关系)

环境变量

  • MEMORY_DB_PATH:SQLite数据库文件的路径(默认:服务器目录下的memory.db

开发环境设置

本节面向希望修改或贡献于服务器的开发者。

先决条件

  • Node.js:检查package.json中的版本兼容性
  • npm:用于包管理

安装(开发者)

  1. 克隆仓库:
git clone https://github.com/ttommyth/rag-memory-mcp.git
cd rag-memory-mcp
  1. 安装依赖项:
npm install

构建

npm run build

运行(开发)

npm run watch  # 开发时自动重建

开发命令

  • 构建npm run build
  • 监视npm run watch
  • 准备npm run prepare

使用示例

这是一个典型的构建和查询知识库的工作流程:

// 1. 存储文档
await storeDocument({
  id: "ml_intro",
  content: "机器学习是AI的一个子集...",
  metadata: { type: "教育", topic: "ML" }
});

// 2. 处理文档
await chunkDocument({ documentId: "ml_intro" });
await embedChunks({ documentId: "ml_intro" });

// 3. 提取并创建实体
const terms = await extractTerms({ documentId: "ml_intro" });
await createEntities({
  entities: [
    {
      name: "机器学习",
      entityType: "CONCEPT",
      observations: ["人工智能的一个子集", "从数据中学习"]
    }
  ]
});

// 4. 使用混合方法搜索
const results = await hybridSearch({
  query: "人工智能应用",
  limit: 10,
  useGraph: true
});

系统提示建议

为了优化内存利用,请考虑使用以下系统提示:

您有权访问一个具备知识图谱能力的RAG增强型记忆系统。遵循以下指南:

1. **信息存储**:
   - 使用文档管理工具存储重要文档
   - 创建人员、概念、组织和技术实体
   - 在相关概念之间建立关系

2. **信息检索**:
   - 使用混合搜索进行全面信息检索
   - 利用语义相似性和图关系
   - 在创建重复项之前搜索实体

3. **记忆维护**:
   - 添加观察以丰富实体上下文
   - 将文档链接到相关实体以提高可发现性
   - 使用统计数据监控知识库的增长

4. **处理工作流**:
   - 存储 → 分块 → 嵌入 → 提取 → 关联
   - 总是完全处理文档以获得最佳搜索结果

贡献

欢迎贡献!请遵循标准开发实践,并确保所有测试通过后再提交拉取请求。

许可证

本项目根据MIT许可证发布。详情见LICENSE文件。


构建于:TypeScript, SQLite, sqlite-vec, Hugging Face Transformers, Model Context Protocol SDK