agent-memory MCP 服务端
使用说明(Markdown 格式)
-
项目简介
- 这是一个基于 MCP(Model Context Protocol)的服务器端实现,结合 agent-memory 的本地存储能力,向 LLM 客户端提供记忆资源的托管、工具注册与执行能力,以及与源数据相关的操作接口。核心功能包括:记忆的增删改查、标签与统计信息、基于向量嵌入的检索、以及对本地数据源(SQLite)及嵌入模型的管理。
-
主要功能点
- 记忆管理工具:memory_add、memory_get、memory_update、memory_delete、memory_list、memory_search、memory_tags、memory_stats
- 数据源与嵌入:本地 SQLite 存储、向量嵌入(可选的 Transformer 基于模型)、基于 FTS 的文本检索与向量检索的混合检索
- 工具注册与执行:memory、search、source、config 等多类工具,允许 LLM 客户端通过 MCP 调用外部功能
- 服务器端与客户端的对接:通过 MCP 标准的 JSON-RPC 请求/响应进行通信,支持多种传输通道(包括 StdIO、SSE、WebSocket 等)
- 会话与配置:对全局与来源级配置进行管理和查询
-
安装步骤
- 将仓库克隆到本地
- 安装依赖并构建(在根项目中,使用 bun/npm/yarn 等工具执行构建流程,确保所有包的依赖就绪)
- 编译打包 MCP 服务器(生成可执行的 dist/index.js 或等效入口文件)
-
服务器配置(MCP 客户端使用,不需要额外的客户端代码)
- MCP 客户端要连接到服务器时,需按照如下配置在配置文件中指定服务器信息(以 JSON 格式呈现,包含服务器名称、启动命令与参数):
- 说明:
- serverName/server: 使用的服务器名称,与服务器端命名一致,例如 agent-memory
- command: 启动服务器的命令,通常为 node
- args: 启动命令的参数,指向编译产物的入口文件,例如 dist/index.js
- 参考示例(文本描述,不直接复制代码):
- server: "agent-memory"
- command: "node"
- args: ["packages/mcp/dist/index.js"]
- 注:MCP 客户端不需要包含此配置的实现代码,仅在客户端配置阶段使用该信息建立连接。
-
基本使用方法
- 启动服务器:在打包输出所在目录执行“node dist/index.js”(或等效入口),服务器将通过标准输入/输出(StdIO)或已配置的传输方式对外提供 MCP 服务
- 客户端连接:使用 MCP 客户端通过 JSON-RPC 与服务器通信,执行内存管理、工具调用等操作
- 常见操作流程包括:查询 memory_list、memory_search、memory_add、memory_get、memory_update、memory_delete,以及 source_list、source_run、config_set、config_get 等工具的调用
-
额外信息
- 服务器实现以 SqliteSource 作为本地存储,默认实验环境下会在内存数据库中进行测试,实际部署可切换为持久化数据库
- 支持嵌入模型(向量嵌入)并在需要时对内存条目进行向量化以实现向量检索