Long Term Memory

Long Term Memory

🚀 记忆 MCP 服务器

记忆 MCP 服务器是一个专为大型语言模型 (LLMs) 打造的长期记忆存储系统,它遵循 Model Context Protocol (MCP) 标准。该系统能助力 LLMs 记住整个项目历史中的上下文信息,即便跨越多个会话也能轻松实现。借助语义搜索和嵌入式向量技术,它可提供过去交互和决策的相关上下文。

🚀 快速开始

先决条件

  • Node.js (v18 或更高版本)
  • 在本地运行 Ollama(用于嵌入),且必须安装 nomic-embed-text 模型
  • SQLite3

安装步骤

  1. 克隆仓库
  2. 安装依赖:
    npm install
    
  3. 构建项目:
    npm run build
    
  4. 创建配置文件 .env
    OLLAMA_HOST=http://localhost:11434
    DB_PATH=memory.db
    

使用方法

  1. 以开发模式启动服务器:

    npm run dev
    

    这将:

    • 编译 TypeScript
    • 复制 schema 文件
    • 启动带有自动重载功能的服务器
  2. 通过标准输入输出与 Cursor 兼容连接

✨ 主要特性

  • 基于项目的记忆组织:按项目管理记忆
  • 语义搜索:使用 Ollama 嵌入(nomic-embed-text 模型,768 维度)
  • 多种记忆类型
    • 对话:对话上下文和重要讨论
    • 代码:实现细节和更改
    • 决策:关键架构和设计选择
    • 引用:外部资源和文档链接
  • 丰富的元数据存储,包括:
    • 实现状态
    • 关键决策
    • 创建/修改的文件
    • 代码更改
    • 添加的依赖项
  • 标签系统:用于记忆组织
  • 关系跟踪:在记忆之间建立联系

📦 安装指南

克隆仓库

首先,克隆项目仓库到本地。

安装依赖

在项目根目录下,执行以下命令安装所需依赖:

npm install

构建项目

安装完依赖后,构建项目:

npm run build

配置文件

创建配置文件 .env,并添加以下内容:

OLLAMA_HOST=http://localhost:11434
DB_PATH=memory.db

💻 使用示例

基础用法

启动服务器

安装并配置完成后,以开发模式启动服务器:

npm run dev

存储记忆

nomic store-dev-memory --content "这是一个测试记忆" --tags test,example

列出记忆

nomic list-dev-memories

搜索记忆

nomic search --query example

📚 详细文档

数据库架构

系统使用 SQLite,包含以下表:

核心表

  • projects:项目信息和元数据
  • memories:存储各种开发上下文的记忆条目
  • embeddings:语义搜索的嵌入式向量(768 维度)

组织表

  • tags:记忆组织标签
  • memory_tags:记忆与标签之间的多对多关系
  • memory_relationships:记忆条目之间的有向关系

MCP 工具

以下工具通过 MCP 协议可用:

记忆管理

  • store-dev-memory:创建新的开发记忆,包含:
    • 内容
    • 类型(对话/代码/决策/引用)
    • 标签
    • 代码更改
    • 创建/修改的文件
    • 关键决策
    • 实现状态
  • list-dev-memories:列出现有记忆,可选标签过滤
  • get-dev-memory:通过 ID 获取特定记忆
  • search:语义搜索,跨记忆使用嵌入式向量

开发环境

在开发时,执行以下命令:

npm run dev

这将:

  1. 杀死现有服务器实例
  2. 重建 TypeScript 代码
  3. 将 schema.sql 复制到 dist 目录
  4. 启动开发模式的服务器

依赖项

关键依赖:

  • @modelcontextprotocol/sdk@^1.7.0:MCP 协议实现
  • better-sqlite3@^9.4.3:SQLite 数据库接口
  • node-fetch@^3.3.2:Ollama API 的 HTTP 客户端
  • zod@^3.22.4:运行时类型检查和验证

项目结构

memory-mcp-server/
├── src/
│   ├── db/
│   │   ├── init.ts     # 数据库初始化
│   │   └── service.ts  # 数据库服务层
│   ├── memory.js      # 记忆管理逻辑
│   └── search.js      # 语义搜索功能
├── package.json       # 依赖管理和脚本
└── .env               # 环境变量配置

🔧 技术细节

本系统采用 Model Context Protocol (MCP) 标准,利用语义搜索和嵌入式向量技术,为大型语言模型 (LLMs) 提供长期记忆存储功能。系统使用 SQLite 数据库来存储记忆和相关元数据,通过 Ollama 的 nomic-embed-text 模型进行语义搜索的嵌入式向量生成。在开发过程中,使用 TypeScript 进行编码,并通过 npm 管理依赖。同时,系统提供了一系列 MCP 工具,方便用户进行记忆的管理和搜索。

📄 许可证

文档中未提及许可证相关信息。

⚠️ 重要提示

  • 确保 Ollama 服务在本地运行,并且 nomic-embed-text 模型已加载。
  • 数据库文件 (memory.db) 会在项目目录中创建,用于存储记忆数据。
  • 代码和配置文件请根据具体需求进行调整。

💡 使用建议

在使用过程中,可根据项目需求合理设置记忆的标签和类型,以便更高效地管理和搜索记忆。同时,定期备份数据库文件,防止数据丢失。

🤝 贡献指南

欢迎贡献!请参考 CONTRIBUTING.md 参与开发。

  • 0 关注
  • 0 收藏,31 浏览
  • system 提出于 2025-09-20 03:42

相似服务问题

相关AI产品