Marvis Working Memory MCP
# Marvis Working Memory MCP
一个本地、持久化的工作记忆 MCP,让智能体在每次任务前读取规则、偏好和项目状态,并在任务成功后沉淀可复用经验。
适用于支持 stdio MCP 的客户端,包括 Marvis,以及可连接 MCP 的本地智能体框架。所有数据保存在本机 `memory.json`,不会上传云端。
## 能解决什么
- 避免智能体在新对话中遗忘已确认的工作规则与偏好。
- 让项目进度、待办和关键决定可在后续任务中恢复。
- 让成功排错路径沉淀为经验,下次相似任务优先复用。
## 导入 Marvis
在 Marvis 的 MCP 配置中加入:
```json
{
"mcpServers": {
"working-memory": {
"command": "node",
"args": ["C:\\path\\to\\marvis-memory-mcp\\server.js"]
}
}
}
```
## 加到 Marvis 的全局规则
将下面文本放入 Marvis 的全局指令、助手规则或每个自动任务模板的开头:
```text
你拥有 working-memory MCP。执行任何实质任务前,必须先调用 load_context:传入当前项目名和任务关键词。先依据返回的固定规则、长期偏好、项目状态和相关记忆规划与执行;若信息缺失或冲突,先向用户确认。
仅当用户明确确认某项长期偏好、规则、关键决定、事实或待办时,调用 remember,并传 confirmed: true;不得把你的推测写入记忆。任务出现稳定进展时调用 update_project。每个任务结束前必须调用 close_task,记录结果和下一步。
当任务最终成功、或解决了过程中出现的问题时,必须调用 record_experience:写入最终验证成功的步骤,以及“问题—解决方式”。下次相近任务开始时,使用任务关键词调用 load_context 并优先复用这些已验证经验。不得存储密码、验证码、访问令牌或私密个人数据。
```
## 工具
| 工具 | 调用时机 |
| --- | --- |
| `load_context` | **每个任务开始前** |
| `remember` | 用户明确确认需要长期保留的信息后 |
| `update_project` | 项目状态发生稳定变化时 |
| `close_task` | **每个任务结束前** |
| `record_experience` | 任务成功、尤其是排错成功后 |
## 第一次使用
第一次可让 Marvis 用 `remember` 记录你的工作偏好与规则,并传 `confirmed: true`。随后每个项目第一次执行时,用 `update_project` 建立项目状态。数据文件可以手动备份;修改前建议先复制一份。
## 重要边界
- MCP 提供稳定的读写能力,但不能独自强迫 Marvis 调用;全局规则或任务模板中的“必须调用”约束仍然必要。
- 这里保存的是可审阅的结构化文字,不会保存完整聊天记录。
## 开发
需要 Node.js 18 或更高版本。项目没有第三方依赖:
```bash
node server.js
```
首次启动时会自动创建本地 `memory.json`。该文件已被 `.gitignore` 排除,避免把个人记忆提交到仓库。
## 许可证
[MIT](LICENSE)
TDQS
Scored across 5 tools
Each tool targets a distinct memory lifecycle stage: load, save confirmed memory, update project state, close task, and record experience. Some overlap exists between saving todos in remember and close_task, and between update_project and close_task, but descriptions clarify the intended use cases.
Most tools follow a clear verb_noun pattern: load_context, update_project, close_task, record_experience. The tool 'remember' breaks the pattern slightly by being a bare verb, but it is still recognizable and consistent in style.
Five tools is well-scoped for a working memory server. Each tool covers a distinct lifecycle need without redundancy or bloat.
The core lifecycle is covered: load context, save memories, update project state, close tasks, and record experiences. However, there is no explicit way to delete or update an already saved memory, which could create dead ends when memories become obsolete or incorrect.