memorybox

使用说明内容(Markdown格式)

  • 项目简介 memorybox 是一个基于 Model Context Protocol (MCP) 的服务器端实现,提供持久化记忆管理和与代理的交互工具。它将记忆数据保存在本地 SQLite 数据库中,支持全文检索、记忆的创建、检索、召回、删除和列出等操作,并通过 MCP 的工具机制向 LLM 客户端暴露这些功能。无需外部 LLM 服务即可在本地完成记忆管理。

  • 主要功能点

    • 提供五个 MCP 工具:memory_store、memory_search、memory_recall、memory_forget、memory_list
    • 使用 SQLite + FTS5 实现高效的全文检索和并发访问
    • 支持记忆的作用域过滤(global、user:<id>、agent:<id>、session:<id>)及标签过滤
    • 基于 BM25、最近时效和重要性综合得分的混合排序分数
    • 服务器端实现 MCP 请求/响应处理,支持字符串和 JSON 内容的返回
    • 提供 CLI 入口 memorybox serve,独立二进制,无外部 API 依赖
  • 安装步骤

    • 需要的工具:Go 1.x 及以上
    • 安装可执行文件(示例,与源码提供的方式一致): go install github.com/adhaamehab/memorybox/cmd/memorybox@latest
    • 运行数据库并启动 MCP 服务器(示例命令,实际使用时可指定数据库路径): memorybox serve
    • 默认数据库路径为 ~/.memorybox/memories.db;可通过 --db 参数自定义路径
  • 服务器配置(给 MCP 客户端的配置示例,客户端实际不需要这段代码,便于管理员在宿主应用中注册 MCP 服务器) { "mcpServers": { "memorybox": { "command": "memorybox", "args": ["serve"] } } } 说明:

    • server name:memorybox
    • command:memorybox(同仓库提供的二进制入口)
    • args:serve(启动 MCP 服务器的子命令) 注意:该配置用于 MCP 客户端在本地/宿主环境中发现并启动与 memorybox 服务器的连接。实际客户端实现会在运行时使用该配置建立与服务器的通信。
  • 基本使用方法

    • 启动服务器后,客户端通过 MCP 协议与 memorybox 交互,执行以下操作:
      • 存储记忆:memory_store,提供 content、scope、tags、importance、ttl 等参数
      • 全文检索:memory_search,提供 query、scope、tags、limit 等参数
      • 召回记忆:memory_recall,通过 id 获取完整记忆信息
      • 删除记忆:memory_forget,通过 id、scope 或 tags 删除符合条件的记忆
      • 列出记忆:memory_list,按 scope/tags 过滤并分页
    • 典型流程:先通过 memory_store 保存记忆,然后通过 memory_search 查找相关记忆,再可使用 memory_recall 读取具体项,最后通过 memory_forget 删除不再需要的记忆。

服务器信息