kimi-code-memory-mcp-server 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/README.en.md +342 -0
  3. package/README.md +267 -125
  4. package/assets/contextFlow.svg +144 -0
  5. package/assets/user-agents.md +111 -0
  6. package/dist/config.d.ts +13 -0
  7. package/dist/config.js +13 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/context/wire-context.d.ts +3 -0
  10. package/dist/context/wire-context.js +20 -50
  11. package/dist/context/wire-context.js.map +1 -1
  12. package/dist/dao/constants.d.ts +33 -0
  13. package/dist/dao/constants.js +17 -0
  14. package/dist/dao/constants.js.map +1 -0
  15. package/dist/dao/index-catalog.d.ts +19 -0
  16. package/dist/dao/index-catalog.js +94 -0
  17. package/dist/dao/index-catalog.js.map +1 -0
  18. package/dist/dao/index-reconciler.d.ts +13 -0
  19. package/dist/dao/index-reconciler.js +162 -0
  20. package/dist/dao/index-reconciler.js.map +1 -0
  21. package/dist/dao/index-store.d.ts +31 -0
  22. package/dist/dao/index-store.js +128 -0
  23. package/dist/dao/index-store.js.map +1 -0
  24. package/dist/dao/index.d.ts +12 -31
  25. package/dist/dao/index.js +50 -404
  26. package/dist/dao/index.js.map +1 -1
  27. package/dist/dao/memory-store.js +2 -10
  28. package/dist/dao/memory-store.js.map +1 -1
  29. package/dist/dao/memory-tree-renderer.d.ts +22 -0
  30. package/dist/dao/memory-tree-renderer.js +75 -0
  31. package/dist/dao/memory-tree-renderer.js.map +1 -0
  32. package/dist/prompts/index.d.ts +26 -0
  33. package/dist/prompts/index.js +103 -0
  34. package/dist/prompts/index.js.map +1 -0
  35. package/dist/refine/adapter.d.ts +6 -0
  36. package/dist/refine/adapter.js +28 -0
  37. package/dist/refine/adapter.js.map +1 -0
  38. package/dist/refine/constants.d.ts +35 -0
  39. package/dist/refine/constants.js +107 -0
  40. package/dist/refine/constants.js.map +1 -0
  41. package/dist/refine/extractor.d.ts +12 -0
  42. package/dist/refine/extractor.js +122 -0
  43. package/dist/refine/extractor.js.map +1 -0
  44. package/dist/refine/store.d.ts +19 -0
  45. package/dist/refine/store.js +139 -0
  46. package/dist/refine/store.js.map +1 -0
  47. package/dist/refine/types.d.ts +56 -0
  48. package/dist/refine/types.js +5 -0
  49. package/dist/refine/types.js.map +1 -0
  50. package/dist/refined-manager.d.ts +10 -56
  51. package/dist/refined-manager.js +22 -341
  52. package/dist/refined-manager.js.map +1 -1
  53. package/dist/resources/index.d.ts +15 -0
  54. package/dist/resources/index.js +134 -0
  55. package/dist/resources/index.js.map +1 -0
  56. package/dist/server.js +46 -2
  57. package/dist/server.js.map +1 -1
  58. package/dist/setup-cli.d.ts +11 -0
  59. package/dist/setup-cli.js +84 -0
  60. package/dist/setup-cli.js.map +1 -0
  61. package/dist/setup.d.ts +33 -0
  62. package/dist/setup.js +206 -0
  63. package/dist/setup.js.map +1 -0
  64. package/dist/tools/context-tools.d.ts +16 -51
  65. package/dist/tools/context-tools.js +247 -55
  66. package/dist/tools/context-tools.js.map +1 -1
  67. package/dist/tools/index.d.ts +5 -827
  68. package/dist/tools/index.js +23 -354
  69. package/dist/tools/index.js.map +1 -1
  70. package/dist/tools/memory-tools.d.ts +4 -60
  71. package/dist/tools/memory-tools.js +129 -79
  72. package/dist/tools/memory-tools.js.map +1 -1
  73. package/dist/tools/system-tools.d.ts +3 -34
  74. package/dist/tools/system-tools.js +86 -32
  75. package/dist/tools/system-tools.js.map +1 -1
  76. package/dist/tools/theme-tools.d.ts +3 -31
  77. package/dist/tools/theme-tools.js +78 -22
  78. package/dist/tools/theme-tools.js.map +1 -1
  79. package/dist/tools/types.d.ts +21 -0
  80. package/dist/tools/types.js +13 -0
  81. package/dist/tools/types.js.map +1 -0
  82. package/dist/types.d.ts +4 -2
  83. package/dist/utils/action-entities.d.ts +16 -0
  84. package/dist/utils/action-entities.js +35 -0
  85. package/dist/utils/action-entities.js.map +1 -0
  86. package/dist/utils/date.d.ts +11 -0
  87. package/dist/utils/date.js +13 -0
  88. package/dist/utils/date.js.map +1 -0
  89. package/dist/utils/file-helpers.d.ts +10 -0
  90. package/dist/utils/file-helpers.js +28 -0
  91. package/dist/utils/file-helpers.js.map +1 -0
  92. package/dist/utils/headings.d.ts +5 -0
  93. package/dist/utils/headings.js +21 -0
  94. package/dist/utils/headings.js.map +1 -0
  95. package/dist/utils/search.d.ts +17 -0
  96. package/dist/utils/search.js +60 -0
  97. package/dist/utils/search.js.map +1 -0
  98. package/dist/utils/tools.d.ts +5 -0
  99. package/dist/utils/tools.js +10 -0
  100. package/dist/utils/tools.js.map +1 -0
  101. package/dist/version.d.ts +1 -1
  102. package/dist/version.js +1 -1
  103. package/dist/vis/api.d.ts +82 -0
  104. package/dist/vis/api.js +212 -0
  105. package/dist/vis/api.js.map +1 -0
  106. package/dist/vis/auto-start.d.ts +12 -0
  107. package/dist/vis/auto-start.js +87 -0
  108. package/dist/vis/auto-start.js.map +1 -0
  109. package/dist/vis/server.d.ts +14 -0
  110. package/dist/vis/server.js +103 -0
  111. package/dist/vis/server.js.map +1 -0
  112. package/dist/vis/static/app.js +395 -0
  113. package/dist/vis/static/index.html +95 -0
  114. package/dist/vis/static/style.css +707 -0
  115. package/dist/vis-cli.d.ts +7 -0
  116. package/dist/vis-cli.js +140 -0
  117. package/dist/vis-cli.js.map +1 -0
  118. package/docs/0.agent-memory-market-research.md +354 -0
  119. package/docs/1.memory-system-proposal-for-kimi-code.md +688 -0
  120. package/docs/2.memory-architecture-overview.md +417 -0
  121. package/docs/3.memory-skill-prompt-design.md +430 -0
  122. package/docs/4.kimi-code-native-evolution-roadmap.md +559 -0
  123. package/docs/5.decision-guard-design-notes.md +500 -0
  124. package/docs/ARCHITECTURE.md +2 -2
  125. package/docs/design-story.md +350 -0
  126. package/docs/three-layer-memory-model.md +153 -0
  127. package/docs/three-layer-memory-model.zh-CN.md +153 -0
  128. package/package.json +14 -6
  129. package/README.zh-CN.md +0 -227
package/package.json CHANGED
@@ -1,30 +1,35 @@
1
1
  {
2
2
  "name": "kimi-code-memory-mcp-server",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Local stdio MCP server providing cross-session memory for Kimi Code CLI",
5
5
  "main": "dist/server.js",
6
6
  "types": "dist/server.d.ts",
7
7
  "type": "module",
8
8
  "bin": {
9
- "kimi-code-memory-mcp-server": "dist/server.js"
9
+ "kimi-code-memory-mcp-server": "dist/server.js",
10
+ "kimi-memory-setup": "dist/setup-cli.js",
11
+ "kimi-memory-vis": "dist/vis-cli.js"
10
12
  },
11
13
  "files": [
12
14
  "dist/",
13
15
  "docs/",
14
16
  "examples/",
15
17
  "skills/",
18
+ "assets/",
16
19
  "AGENTS.md",
17
20
  "README.md",
18
- "README.zh-CN.md",
21
+ "README.en.md",
19
22
  "LICENSE",
20
23
  "CHANGELOG.md"
21
24
  ],
22
25
  "scripts": {
23
26
  "sync-version": "node scripts/sync-version.mjs",
24
- "build": "npm run sync-version && tsc",
27
+ "copy-vis-static": "node scripts/copy-vis-static.mjs",
28
+ "build": "npm run sync-version && tsc && npm run copy-vis-static",
25
29
  "dev": "tsx src/server.ts",
26
30
  "start": "node dist/server.js",
27
- "test": "tsx tests/test.ts",
31
+ "test": "tsx tests/test.ts && tsx tests/vis.test.ts",
32
+ "test:unit": "tsx tests/unit/run-all.ts",
28
33
  "lint": "eslint src tests",
29
34
  "lint:fix": "eslint src tests --fix",
30
35
  "format": "prettier --write src tests",
@@ -51,9 +56,12 @@
51
56
  },
52
57
  "homepage": "https://github.com/Zehee/kimi-code-memory-mcp-server#readme",
53
58
  "dependencies": {
59
+ "@hono/node-server": "^2.0.6",
54
60
  "@modelcontextprotocol/sdk": "^1.0.0",
55
61
  "@types/better-sqlite3": "^7.6.13",
56
- "better-sqlite3": "^12.11.1"
62
+ "better-sqlite3": "^12.11.1",
63
+ "hono": "^4.12.27",
64
+ "open": "^11.0.0"
57
65
  },
58
66
  "devDependencies": {
59
67
  "@types/node": "^26.0.0",
package/README.zh-CN.md DELETED
@@ -1,227 +0,0 @@
1
- # Kimi Code Memory MCP Server
2
-
3
- [English](./README.md)
4
-
5
- [![CI](https://github.com/Zehee/kimi-code-memory-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/Zehee/kimi-code-memory-mcp-server/actions/workflows/ci.yml)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
7
-
8
- 一个为 [Kimi Code CLI](https://github.com/MoonshotAI/kimi-code) 提供跨会话记忆的本地 stdio MCP 服务器。
9
-
10
- > **注意:** 本包尚未发布到 npm,请按下面的说明从源码安装运行。
11
-
12
- 面向用户的记忆以普通 Markdown 文件存储在磁盘上。精炼轮次摘要使用本地 SQLite 缓存,但无需向量数据库、图数据库或外部云服务。
13
-
14
- ## 特性
15
-
16
- - **Markdown 优先的记忆** —— 人类可读、适合 git、兼容 LLM。
17
- - **结构化长期记忆** —— `memory/decisions/`、`memory/knowledge/`、`memory/rules/`、`memory/reference/`。
18
- - **工作区精要** —— 从 `memory/` 提炼生成的浓缩摘要(≤15 KB)。
19
- - **跨会话上下文恢复** —— 直接解析 Kimi Code CLI 的 `wire.jsonl`。
20
- - **主题追溯** —— 将对话轮次和记忆关联到主题,并追踪其演化。
21
- - **精炼轮次摘要** —— 可在多个主题间共享的轮次级原子摘要。
22
- - **可重建索引** —— `index.json` 只是缓存,`.md` 文件才是真相来源。
23
-
24
- ## 为什么用 Markdown?
25
-
26
- 大多数 Agent 记忆系统默认使用向量数据库。这在模糊检索场景有效,但也让记忆变得不透明、难以审计、难以版本控制。
27
-
28
- 本项目从相反的假设出发:
29
-
30
- > 记忆在存储之前应该经过**判断、结构化,并由用户拥有**。
31
-
32
- Markdown + YAML frontmatter 带来:
33
-
34
- - 完全可读、可编辑
35
- - 原生支持 git diff
36
- - 无需外部数据库或云服务
37
- - 兼容任何能读取文本的 LLM
38
-
39
- 设计 rationale 见 [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md)。
40
-
41
- ## 安装
42
-
43
- 目前本包需要从源码安装。需要 Node.js ≥ 18。
44
-
45
- ```bash
46
- git clone https://github.com/Zehee/kimi-code-memory-mcp-server.git
47
- cd kimi-code-memory-mcp-server
48
- npm install
49
- npm run build
50
- ```
51
-
52
- ## 配置 Kimi Code CLI
53
-
54
- 编辑 `~/.kimi-code/mcp.json`,指向构建后的服务器入口:
55
-
56
- ```json
57
- {
58
- "mcpServers": {
59
- "kimi-memory": {
60
- "command": "node",
61
- "args": ["/absolute/path/to/kimi-code-memory-mcp-server/dist/server.js"],
62
- "enabled": true
63
- }
64
- }
65
- }
66
- ```
67
-
68
- 服务器名称 **`kimi-memory`** 很重要,因为本仓库自带的 `AGENTS.md` 规则以 `mcp__kimi-memory__*` 形式调用工具(例如 `mcp__kimi-memory__bootstrap_workspace`)。
69
-
70
- 重启 Kimi Code CLI 以加载该服务器。
71
-
72
- ## 可选:安装用户级 AGENTS.md 启动钩子
73
-
74
- 如需每次会话启动时自动恢复记忆并应用行为规范,将本仓库自带的 `AGENTS.md` 复制到 Kimi Code 用户目录:
75
-
76
- ```bash
77
- cp AGENTS.md ~/.kimi-code/AGENTS.md
78
- ```
79
-
80
- 这会安装一个启动钩子,让 Kimi Code CLI 在每次会话开始时调用 `bootstrap_workspace`,并遵循记忆分类和决策守卫规则。由于 `AGENTS.md` 会注入到**每个**会话中,它是放置记忆相关行为协议的正确位置。
81
-
82
- > **注意:** `AGENTS.md` 规则会注入到每个会话中,请只保留与记忆相关的约定,不要包含属于其他 MCP server 的工具偏好。
83
- >
84
- > **前提条件:** 必须在 `~/.kimi-code/mcp.json` 中将 MCP 服务器注册为 `kimi-memory`,否则 `AGENTS.md` 中的 `mcp__kimi-memory__*` 调用会失败。
85
-
86
- ## 可选:安装记忆 Skill
87
-
88
- 本仓库还包含一个轻量 Skill(`skills/memory-manage/SKILL.md`),用于在用户表达记忆相关意图时提醒 Kimi Code CLI 调用记忆工具。
89
-
90
- ```bash
91
- cp -r skills/memory-manage ~/.kimi-code/skills/memory-manage
92
- ```
93
-
94
- 该 Skill 本身**不强制**行为,它只是一个调度器。真正的协议(何时 remember、决策守卫等)应配置在 `AGENTS.md` 中。
95
-
96
- ## 快速开始
97
-
98
- 服务器加载后,Agent 可以自然地调用记忆工具(工具名带有你在 MCP 配置中注册的 server 名称前缀,例如 `mcp__kimi-memory__*`):
99
-
100
- ```text
101
- 用户:我们用 SQLite 作为缓存层。
102
- Agent:[调用 mcp__kimi-memory__remember] key=use-sqlite-cache, folder=memory/decisions
103
-
104
- 用户:为什么选 SQLite?
105
- Agent:[调用 mcp__kimi-memory__search] query=SQLite cache decision
106
- [调用 mcp__kimi-memory__recall] key=use-sqlite-cache, folder=memory/decisions
107
- → "我们选择 SQLite 而不是 Redis,因为……"
108
-
109
- 用户:缓存设计是怎么演化的?
110
- Agent:[调用 mcp__kimi-memory__tag_theme] theme=cache-design
111
- [调用 mcp__kimi-memory__trace_theme] theme=cache-design
112
- → 展示跨会话的相关轮次和决策
113
- ```
114
-
115
- ## 存储布局
116
-
117
- 服务器将数据存储在 `~/.kimi-code-memory/<workspace-id>/` 下:
118
-
119
- ```text
120
- ~/.kimi-code-memory/workspace-a1b2c3d4/
121
- ├── index.json # v3-kv 元数据缓存(可重建)
122
- ├── memory/
123
- │ ├── decisions/ # 架构与产品决策
124
- │ ├── knowledge/ # 项目相关知识
125
- │ ├── rules/ # 约定与红线
126
- │ └── reference/ # 外部参考
127
- ├── essence/
128
- │ └── essence.md # 工作区精要(≤15 KB)
129
- ├── notes/ # 临时速记
130
- ├── themes/
131
- │ └── my-theme.json # theme -> turn/memory 引用
132
- └── refined/
133
- └── refined.sqlite # 轮次级摘要
134
- ```
135
-
136
- 可通过 `MEMORY_STORE_ROOT` 环境变量覆盖存储根目录。
137
-
138
- ### 环境变量
139
-
140
- | 变量 | 用途 |
141
- |------|------|
142
- | `MEMORY_STORE_ROOT` | 覆盖默认存储根目录 `~/.kimi-code-memory`。 |
143
- | `MEMORY_SESSIONS_ROOT` | 覆盖默认的 `~/.kimi-code/sessions` 路径,用于发现 `wire.jsonl` 文件。 |
144
- | `KIMI_CODE_HOME` | `MEMORY_SESSIONS_ROOT` 的替代方案;会话从 `<KIMI_CODE_HOME>/sessions` 读取。 |
145
-
146
- ## 工具列表
147
-
148
- | 工具 | 用途 |
149
- |------|------|
150
- | `remember` | 写入一条 Markdown 记忆 |
151
- | `recall` | 按 key 读取记忆 |
152
- | `recall_recent` | 列出最近更新的记忆 |
153
- | `search` | 在记忆中关键词搜索 |
154
- | `list` | 列出记忆 |
155
- | `list_tags` | 列出所有标签 |
156
- | `delete` | 删除记忆 |
157
- | `move` | 移动或重命名记忆 |
158
- | `organize_memories` | 将 `memory/` 提炼为 `essence/essence.md` |
159
- | `sync_workspace_index` | 从磁盘重建 `index.json` |
160
- | `bootstrap_workspace` | 加载上下文、精要和记忆树 |
161
- | `load_workspace_context` | 加载最近对话上下文 |
162
- | `load_more_context` | 加载更早的对话轮次 |
163
- | `search_context` | 跨所有会话 wire 搜索 |
164
- | `load_turn_context` | 加载指定轮次详情 |
165
- | `tag_theme` | 将轮次或记忆关联到主题 |
166
- | `trace_theme` | 追溯主题演化 |
167
- | `list_themes` | 列出主题 |
168
- | `refine_session_turns` | 生成精炼轮次摘要 |
169
-
170
- ## 开发
171
-
172
- ```bash
173
- git clone https://github.com/Zehee/kimi-code-memory-mcp-server.git
174
- cd kimi-code-memory-mcp-server
175
- npm install
176
- npm run build
177
- npm test
178
- npm run lint
179
- ```
180
-
181
- 贡献指南见 [`docs/CONTRIBUTING.md`](./docs/CONTRIBUTING.zh-CN.md)。
182
-
183
- ## 项目结构
184
-
185
- ```text
186
- src/
187
- ├── server.ts # MCP 服务器入口
188
- ├── config.ts # 默认值与路径
189
- ├── theme-manager.ts # 主题存储
190
- ├── refined-manager.ts # 精炼轮次存储
191
- ├── dao/
192
- │ ├── index.ts # index.json DAO(v3-kv)
193
- │ └── memory-store.ts # Markdown 文件操作
194
- ├── context/
195
- │ └── wire-context.ts # wire.jsonl 解析
196
- ├── tools/
197
- │ ├── index.ts # 工具 schema 与分发
198
- │ ├── memory-tools.ts # 记忆增删改查
199
- │ ├── context-tools.ts # 上下文恢复
200
- │ ├── theme-tools.ts # 主题追溯
201
- │ └── system-tools.ts # 整理/同步/引导
202
- └── utils/
203
- ├── frontmatter.ts
204
- ├── paths.ts
205
- └── validation.ts
206
- ```
207
-
208
- ## 路线图
209
-
210
- - [x] 模块化源码结构
211
- - [x] ESLint + Prettier
212
- - [x] 基础集成测试
213
- - [x] 上下文/主题工具核心测试覆盖
214
- - [ ] 可选本地 embedding 搜索
215
- - [ ] 可选 LLM 精炼轮次
216
- - [ ] 可插拔 wire 格式适配器
217
- - [ ] 内存使用 benchmark
218
-
219
- ## 相关文档
220
-
221
- - [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) —— 系统设计与数据流
222
- - [`docs/search-logic.zh-CN.md`](./docs/search-logic.zh-CN.md) —— `search` 与 `search_context` 的实现逻辑
223
- - [`docs/CONTRIBUTING.zh-CN.md`](./docs/CONTRIBUTING.zh-CN.md) —— 如何贡献
224
-
225
- ## 许可证
226
-
227
- MIT