返回市场
MCP内存PouchDB服务器

MCP内存PouchDB服务器

作者:bneil4 星标更新:2025-04-05

项目介绍

内存定制:PouchDB 🧠

smithery 徽章

该项目为MCP团队提供的内存服务器增加了新特性。它允许创建和管理一个知识图谱,该图谱通过语言模型(LLM)捕获交互。🚀

此仓库是从https://github.com/BRO3886/mcp-memory-custom分叉而来,这是一个很好的起点,感谢修复时间戳问题。此仓库的目标是解决上下文不断增加的json文件的问题。

新特性 ✨

1. PouchDB 集成 💾

  • 服务器现在使用PouchDB进行健壮的基于文档的存储。
  • 为什么?:更好的数据一致性,内置版本控制,以及对大数据集的性能改进。
  • 维持文件备份以保证兼容性。

2. 自定义内存路径 📁

  • 用户现在可以指定不同项目的内存文件路径。
  • 为什么?:此功能增强了内存数据的组织和管理,允许特定于项目的内存存储。

3. 时间戳 ⏰

  • 服务器现在为每次交互生成时间戳。
  • 为什么?:时间戳使追踪每个记忆创建或修改的时间成为可能,为存储的数据提供更好的上下文和历史记录。

开始使用 🚀

先决条件 🔧

  • Node.js(版本16或更高)
  • PouchDB(作为依赖项自动安装)

通过Smithery安装 📦

要通过Smithery自动安装Claude桌面的知识图谱内存服务器:

npx -y @smithery/cli install @bneil/mcp-memory-pouchdb --client claude

安装 🛠️

  1. 克隆仓库:

    git clone git@github.com:bneil/mcp-memory-pouchdb.git
    cd mcp-memory-pouchdb
    
  2. 安装依赖项:

    npm install
    

配置 ⚙️

服务器需要设置两个环境变量:

  1. MEMORY_FILE_PATH:内存备份文件将被存储的绝对路径。
  2. POUCHDB_PATH:PouchDB数据库将被存储的绝对路径。

在你的claude_desktop_config.json / .cursor/mcp.json中的示例配置:

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/path/to/mcp-memory-pouchdb/dist/index.js"],
      "env": {
        "MEMORY_FILE_PATH": "/path/to/custom/memory.json",
        "POUCHDB_PATH": "/path/to/custom/pouchdb_directory",
        "DISABLE_MEMORY_FILE": "true"
      }
    }
  }
}

如果未设置任一环境变量,服务器将无法启动。🚫

可选环境变量:

  • POUCHDB_OPTIONS:额外的PouchDB配置选项的JSON字符串。
  • DISABLE_MEMORY_FILE:设置为"true"以禁用保存到memory.json文件(仅使用PouchDB进行存储)。

运行服务器 🚀

更新mcp服务器json文件 📝

添加以下内容到你的claude_desktop_config.json / .cursor/mcp.json文件中:

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/path/to/mcp-memory-pouchdb/dist/index.js"],
      "env" : {
        "MEMORY_FILE_PATH":"/home/.../local_dbs/memory.json",
        "POUCHDB_PATH":"/home/.../local_dbs/pouchdb"
      }
    }
  }
}

系统提示更改:

按照以下步骤进行每次交互:

0. 内存初始化:
   - 启动时执行read_graph函数以初始化内存访问。
   - 如果内存为空,则为用户创建一个带有基本占位符信息的默认实体。
   - 执行初始化序列:read_graph → create_entities → read_graph。

1. 用户识别:
   - 假设你正在与default_user交互。
   - 如果尚未识别default_user,请主动尝试识别。

2. 内存检索:
   - 每次聊天开始时只说“回忆中...”,并从知识图谱中检索所有相关信息。
   - 始终将知识图谱称为你的“记忆”。
   - 验证内存访问是否正常工作。

3. 内存注意:
   - 在与用户交谈时,注意任何新的信息,这些信息属于以下类别:
     a) 基本身份(年龄、性别、位置、职位、教育水平等)。
     b) 行为(兴趣、习惯等)。
     c) 偏好(沟通风格、首选语言等)。
     d) 目标(目标、目标、抱负等)。
     e) 关系(个人和职业关系,最多三度分离)。

4. 内存更新:
   - 如果在交互过程中收集了新的信息,请按如下方式更新记忆:
     a) 为重复出现的组织、人物和重要事件创建实体,并在需要的地方添加时间戳。可以通过get_current_time获取当前时间戳。
     b) 使用关系将它们连接到当前实体。
     c) 将关于它们的事实存储为观察,并通过get_current_time为观察添加时间戳。

5. 错误恢复:
   - 如果内存检索失败,请立即执行read_graph函数。
   - 记录任何内存访问失败以便调试。
   - 使用可用的最佳信息继续对话。

6. 内存验证:
   - 定期检查核心实体以验证内存访问是否正常工作。
   - 如果验证失败,请尝试通过read_graph重新连接。

重要提示:提供有帮助且吸引人的响应,提出相关问题以鼓励用户参与。根据收集的新信息(第3点),在交互过程中更新记忆。

在本地运行服务器 💻

要启动知识图谱内存服务器,请运行:

npm run build
node dist/index.js

服务器将通过标准输入/输出监听请求。

API 端点 🔌

服务器暴露了一些工具,可以通过特定参数调用:

  • 获取当前时间
  • 设置内存文件路径 📁
  • 创建实体
  • 创建关系 🔗
  • 添加观察 📝
  • 删除实体
  • 删除观察 🗑️
  • 删除关系 🔗
  • 读取图谱 📖
  • 搜索节点 🔍
  • 打开节点 🔓

致谢 🙏

  • 受Anthropic的内存服务器启发
  • 由PouchDB提供强大数据存储 💾