配置存储系统MCP
处置记忆系统是一个MCP服务器,为代理人提供具有认知和情绪状态的持久记忆。代理人记录性格——行为、决策和实现的结构化记录,以及他们的信心、价值观、显著性、未解决的紧张关系和从过去的自我到未来的自我的取向笔记。
先决条件
- Node.js >= 20.0.0
- SQL Server Express (2022年测试)
localhost\SQLEXPRESS - SQL Server的ODBC驱动程序18 (Windows身份验证/可信连接)
- 这
DispositionMemory创建了所有14个表和13个索引的数据库
设置
- 克隆存储库并安装依赖项:
npm install- 创建一个
.env文件(参见.env.example):
DB_SERVER=localhost\SQLEXPRESS
DB_NAME=DispositionMemory
AGENT_ID=
MODEL_VERSION=claude-sonnet-4-5- 构建项目:
npm run build跑步
| 命令 | 目的 |
|---|---|
npm start | 运行已编译的MCP服务器(dist/index.js) |
npm run dev | 从源代码运行 tsx (无构建步骤) |
npm run build | 将TypeScript编译为 dist/ |
npm run inspect | 启动MCP检查器进行交互式测试 |
npm test | 构建并运行集成测试套件 |
测试
集成测试
该项目包括一个集成测试套件,该套件针对实时数据库对所有9个MCP工具进行端到端的测试。运行它:
npm test这将:
- 构建TypeScript源代码
- 将MCP服务器作为子进程生成
- 通过MCP SDK连接
StdioClientTransport - 在所有9个工具中运行31个断言
- 报告通过/失败结果
测试内容:
| 工具 | 断言 |
|---|---|
| 工具注册 | 存在9个名称正确的工具 |
orient | 会话创建、未解决的紧张局势、贡献的记忆 |
log_disposition | 内存创建、标签、状态响应 |
recall_recent | 作用域筛选、会话id筛选、内存存在 |
recall_unresolved | 计数、张力非零约束 |
recall_salient | 显著性降序, memory_type 过滤器 |
recall_search | 标签匹配、条目文本匹配、AND/OR运算符 |
contest_memory | 自我竞争检测,不存在内存错误 |
resolve_tension | 分辨率,双重分辨率保护 |
close_session | 会话关闭,会话ID匹配,双重关闭保护 |
使用MCP检查员进行手动测试
对于交互式测试,启动MCP检查器:
npm run inspect这将在以下位置打开浏览器UI http://localhost:6274 在那里,您可以使用自定义参数调用任何工具并查看完整的JSON响应。
需求
- 测试针对 生活
DispositionMemory数据库,因此数据库必须可访问 - 指定的代理
AGENT_ID在.env必须存在于agents桌子与status = 'active' - 测试创建真实数据(会话、内存、竞争、访问记录)——这是设计好的,因为它验证了整个堆栈
MCP工具
| 工具 | 说明 |
|---|---|
orient | 冷启动简报,包括会话创建、模型转换检测和上下文恢复 |
log_disposition | 用认知/情绪状态和上下文标签记录记忆 |
recall_recent | 具有范围过滤的逆时间顺序内存历史记录 |
recall_unresolved | 按突出程度排列的公开紧张局势 |
recall_salient | 按有效显著性排列的最重要记忆 |
recall_search | 跨标签、关键字和条目文本的关键字搜索 |
close_session | 以叙述性总结结束会议 |
resolve_tension | 将先前记忆的紧张标记为已解决 |
contest_memory | 挑战记忆(自我挑战或外部挑战) |
建筑
- 运输: stdio(JSON-RPC)——与任何MCP客户端兼容
- 数据库: SQL Server通过
mssql/msnodesqlv8使用Windows身份验证 - 会话跟踪: 内存中(每个stdio进程一个客户端)
- 范围界定: 自己的记忆总是可见的;其他人只有当
contributed,代理人active,未隔离
