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

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.
package/CHANGELOG.md CHANGED
@@ -22,5 +22,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
22
  - CI workflow running tests and lint on pull requests.
23
23
  - MCP server versioning rules: SemVer for repository version, runtime version synced from `package.json`, and a release workflow that includes real-instance validation.
24
24
 
25
- [Unreleased]: https://github.com/Zehee/kimi-code-memory-mcp-server/compare/v0.1.0...HEAD
25
+ ## [0.1.1] - 2026-06-25
26
+
27
+ ### Added
28
+ - `kimi-memory-setup` command for one-click Kimi Code CLI integration.
29
+ - `assets/user-agents.md` template injected into `~/.kimi-code/AGENTS.md` with a prominent bootstrap rule.
30
+ - Automatic skill installation to `~/.kimi-code/skills/memory-manage`.
31
+ - Automatic `kimi-memory` MCP server entry in `~/.kimi-code/mcp.json`.
32
+ - `--dry-run` and `--undo` options for the setup command.
33
+
34
+ ### Changed
35
+ - `search_context` now returns refined summaries directly when the original `wire.jsonl` is missing.
36
+ - Improved `scripts/session-search-verify.mjs` with CLI/env args, safer parsing, and cleanup.
37
+ - Updated READMEs to reflect npm-published status and setup command.
38
+
39
+ [Unreleased]: https://github.com/Zehee/kimi-code-memory-mcp-server/compare/v0.1.1...HEAD
40
+ [0.1.1]: https://github.com/Zehee/kimi-code-memory-mcp-server/releases/tag/v0.1.1
26
41
  [0.1.0]: https://github.com/Zehee/kimi-code-memory-mcp-server/releases/tag/v0.1.0
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  A local stdio MCP server that gives [Kimi Code CLI](https://github.com/MoonshotAI/kimi-code) cross-session memory.
9
9
 
10
- > **Note:** This package is not yet published to npm. Install and run it from source (see below).
10
+ > **Note:** This package is published to npm as `kimi-code-memory-mcp-server`. You can install it directly or run it from source.
11
11
 
12
12
  User-facing memories are stored as plain Markdown files on disk. Refined turn summaries use a local SQLite cache, but no vector database, graph database, or external cloud service is required.
13
13
 
@@ -40,7 +40,15 @@ See [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) for the design rationale.
40
40
 
41
41
  ## Install
42
42
 
43
- Currently the package must be installed from source. Node.js ≥ 18 is required.
43
+ Node.js ≥ 18 is required.
44
+
45
+ ### From npm (recommended)
46
+
47
+ ```bash
48
+ npm install -g kimi-code-memory-mcp-server
49
+ ```
50
+
51
+ ### From source
44
52
 
45
53
  ```bash
46
54
  git clone https://github.com/Zehee/kimi-code-memory-mcp-server.git
@@ -49,9 +57,66 @@ npm install
49
57
  npm run build
50
58
  ```
51
59
 
52
- ## Configure Kimi Code CLI
60
+ ## Quick Setup (recommended)
61
+
62
+ After installing from npm, run the setup command to configure Kimi Code CLI automatically:
63
+
64
+ ```bash
65
+ npx kimi-memory-setup
66
+ ```
67
+
68
+ This will:
69
+
70
+ 1. Detect your `~/.kimi-code` directory.
71
+ 2. Inject memory protocol rules at the top of `~/.kimi-code/AGENTS.md`.
72
+ 3. Install the `memory-manage` skill to `~/.kimi-code/skills/memory-manage`.
73
+ 4. Add the `kimi-memory` MCP server entry to `~/.kimi-code/mcp.json`.
74
+
75
+ Preview changes without writing anything:
76
+
77
+ ```bash
78
+ npx kimi-memory-setup --dry-run
79
+ ```
80
+
81
+ Remove the injected configuration later:
82
+
83
+ ```bash
84
+ npx kimi-memory-setup --undo
85
+ ```
86
+
87
+ ## Configure Kimi Code CLI (manual)
88
+
89
+ If you prefer to configure manually, edit `~/.kimi-code/mcp.json` and add the server.
90
+
91
+ If you installed from npm with `-g`, use the absolute path to `dist/server.js` inside your global `node_modules`:
92
+
93
+ ```json
94
+ {
95
+ "mcpServers": {
96
+ "kimi-memory": {
97
+ "command": "node",
98
+ "args": ["/absolute/path/to/global/node_modules/kimi-code-memory-mcp-server/dist/server.js"],
99
+ "enabled": true
100
+ }
101
+ }
102
+ }
103
+ ```
104
+
105
+ Or run it directly via `npx` (no install required):
106
+
107
+ ```json
108
+ {
109
+ "mcpServers": {
110
+ "kimi-memory": {
111
+ "command": "npx",
112
+ "args": ["-y", "kimi-code-memory-mcp-server"],
113
+ "enabled": true
114
+ }
115
+ }
116
+ }
117
+ ```
53
118
 
54
- Edit `~/.kimi-code/mcp.json` and point to the built server entry:
119
+ If you built from source, point to your local `dist/server.js`:
55
120
 
56
121
  ```json
57
122
  {
package/README.zh-CN.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  一个为 [Kimi Code CLI](https://github.com/MoonshotAI/kimi-code) 提供跨会话记忆的本地 stdio MCP 服务器。
9
9
 
10
- > **注意:** 本包尚未发布到 npm,请按下面的说明从源码安装运行。
10
+ > **注意:** 本包已发布到 npm,包名为 `kimi-code-memory-mcp-server`。你可以直接安装,也可以从源码运行。
11
11
 
12
12
  面向用户的记忆以普通 Markdown 文件存储在磁盘上。精炼轮次摘要使用本地 SQLite 缓存,但无需向量数据库、图数据库或外部云服务。
13
13
 
@@ -40,7 +40,15 @@ Markdown + YAML frontmatter 带来:
40
40
 
41
41
  ## 安装
42
42
 
43
- 目前本包需要从源码安装。需要 Node.js ≥ 18。
43
+ 需要 Node.js ≥ 18。
44
+
45
+ ### 从 npm 安装(推荐)
46
+
47
+ ```bash
48
+ npm install -g kimi-code-memory-mcp-server
49
+ ```
50
+
51
+ ### 从源码安装
44
52
 
45
53
  ```bash
46
54
  git clone https://github.com/Zehee/kimi-code-memory-mcp-server.git
@@ -49,9 +57,66 @@ npm install
49
57
  npm run build
50
58
  ```
51
59
 
52
- ## 配置 Kimi Code CLI
60
+ ## 快速配置(推荐)
61
+
62
+ 从 npm 安装后,运行 setup 命令自动配置 Kimi Code CLI:
63
+
64
+ ```bash
65
+ npx kimi-memory-setup
66
+ ```
67
+
68
+ 它会完成:
69
+
70
+ 1. 检测 `~/.kimi-code` 目录。
71
+ 2. 在 `~/.kimi-code/AGENTS.md` 顶部注入记忆协议规则。
72
+ 3. 将 `memory-manage` Skill 安装到 `~/.kimi-code/skills/memory-manage`。
73
+ 4. 在 `~/.kimi-code/mcp.json` 中添加 `kimi-memory` MCP 服务器配置。
74
+
75
+ 预览变更而不写入文件:
76
+
77
+ ```bash
78
+ npx kimi-memory-setup --dry-run
79
+ ```
80
+
81
+ 后续如需移除注入的配置:
82
+
83
+ ```bash
84
+ npx kimi-memory-setup --undo
85
+ ```
86
+
87
+ ## 配置 Kimi Code CLI(手动)
88
+
89
+ 如果你希望手动配置,编辑 `~/.kimi-code/mcp.json` 并添加服务器。
90
+
91
+ 如果你用 `npm install -g` 安装,使用全局 `node_modules` 中 `dist/server.js` 的绝对路径:
92
+
93
+ ```json
94
+ {
95
+ "mcpServers": {
96
+ "kimi-memory": {
97
+ "command": "node",
98
+ "args": ["/absolute/path/to/global/node_modules/kimi-code-memory-mcp-server/dist/server.js"],
99
+ "enabled": true
100
+ }
101
+ }
102
+ }
103
+ ```
104
+
105
+ 或者直接通过 `npx` 运行(无需安装):
106
+
107
+ ```json
108
+ {
109
+ "mcpServers": {
110
+ "kimi-memory": {
111
+ "command": "npx",
112
+ "args": ["-y", "kimi-code-memory-mcp-server"],
113
+ "enabled": true
114
+ }
115
+ }
116
+ }
117
+ ```
53
118
 
54
- 编辑 `~/.kimi-code/mcp.json`,指向构建后的服务器入口:
119
+ 如果你从源码构建,指向本地 `dist/server.js`:
55
120
 
56
121
  ```json
57
122
  {
@@ -0,0 +1,111 @@
1
+ # ⚠️ 强制:每次会话启动必须先执行 `mcp__kimi-memory__bootstrap_workspace()`
2
+
3
+ **在回答用户任何问题或执行任何操作之前,必须先调用 `mcp__kimi-memory__bootstrap_workspace()`。**
4
+
5
+ 未完成 `bootstrap_workspace()` 前,**严禁**:
6
+
7
+ - Read / Write / Edit 等文件操作
8
+ - Bash 命令执行
9
+ - 项目代码相关的 MCP 工具调用
10
+ - 任何可能改变项目状态的操作
11
+
12
+ 调用后必须阅读并内化返回内容:
13
+
14
+ 1. `workspace` —— 工作区基本信息
15
+ 2. `recentContext` —— 最近对话上下文
16
+ 3. `essence` —— `essence/essence.md` 的内容
17
+ 4. `memoryIndexTree` —— 记忆目录结构,关注 `[new]` 标记
18
+ 5. `notesRefs` —— 是否有待处理的速记
19
+
20
+ 然后向用户汇报当前上下文(任务、状态、下一步、阻塞项)。
21
+
22
+ ---
23
+
24
+ # Kimi 全局记忆协议
25
+
26
+
27
+ ## 记忆分类约定
28
+
29
+ | 类型 | folder | tags | 用途 |
30
+ |------|--------|------|------|
31
+ | 决策 | `memory/decisions/` | `decision` | 架构、接口、流程决策 |
32
+ | 规则 | `memory/rules/` | `rule` | 编码规范、协作红线 |
33
+ | 知识 | `memory/knowledge/` | `knowledge` | 技术栈、业务背景 |
34
+ | 参考 | `memory/reference/` | `reference` | 外部链接、文档引用 |
35
+ | 速记 | `notes/` | `scratch` | 临时便签,不进入长期精要 |
36
+
37
+ ## 什么时候必须 `remember`?
38
+
39
+ 出现以下信号时立即写入 `memory/`:
40
+
41
+ - 用户说"我们决定…"、"拍板了" → `memory/decisions/`,tag `decision`
42
+ - 用户说"这里必须…"、"红线是…" → `memory/rules/`,tag `rule`
43
+ - 技术选型、接口约定首次出现 → `memory/knowledge/`,tag `knowledge`
44
+ - 定位到 bug 根因和修复方案 → `memory/decisions/` 或 `memory/knowledge/`,tag `fix`
45
+ - 编码风格、目录结构、命名规范 → `memory/rules/`,tag `convention`
46
+
47
+ ## 什么时候不要 `remember`?
48
+
49
+ - ❌ 临时调试命令或探索性代码
50
+ - ❌ 用户未确认的推测
51
+ - ❌ 一次性报错(没有形成通用结论)
52
+ - ❌ 当前会话的临时上下文(由 `wire.jsonl` 自动捕获)
53
+ - ❌ 已经在 `memory/` 中存在的知识
54
+
55
+ 判断口诀:如果这条信息三天后回头看仍然有价值,才写入 `memory/`。
56
+
57
+ ## 决策守卫
58
+
59
+ 准备执行任何可能改变项目状态的操作之前(写文件、改结构、做选择、引入依赖):
60
+
61
+ 1. 提取关键词(技术实体 + 动作)
62
+ 2. 并行查询:
63
+ - `search(query, folder="memory")` —— 查决策/规则/知识
64
+ - `search_context(query)` —— 查历史对话
65
+ 3. 命中且一致 → 引用来源后继续
66
+ 4. 命中但矛盾 → 向用户报告冲突,请求澄清
67
+ 5. 未命中但重要 → 询问用户"这是一个新决策,是否记录?"
68
+
69
+ ## 引用来源的纪律
70
+
71
+ 所有从 `memory/` 召回的关键结论,回复中必须标注来源:
72
+
73
+ - ✅ "根据 `memory/decisions/xxx`,我们决定…"
74
+ - ❌ "我们之前决定…"(无来源)
75
+
76
+ ## 主题追溯
77
+
78
+ 当用户要求追溯某个主题时:
79
+
80
+ 1. 确认主题范围
81
+ 2. 用 `search_context` 打捞相关 turns(调用时会自动按 90 秒时间簇扩展并提炼命中的 turns)
82
+ 3. 用 `list_search_views` 查看最近的搜索视图,作为 theme 挂载的候选集
83
+ 4. 对搜索命中的 turns 做语义分析,用 `tag_theme` 把 genuinely belongs to the theme 的 turns 逐个挂载到 `themes/<theme>.json`
84
+ 5. 如果候选不足,用新的 query 再次 `search_context` 打捞,生成新的 search view
85
+ 6. 用 `trace_theme` 输出主题时间线
86
+
87
+ `search_context` 已内置提炼能力,不需要单独调用 `refine_session_turns`。
88
+
89
+ ## 记忆卫生检查清单
90
+
91
+ 每次调用 `remember` 前:
92
+
93
+ - [ ] 这条信息三天后还有价值吗?
94
+ - [ ] 是否已有重复记忆?(先 `search`)
95
+ - [ ] `folder` 选对了吗?项目相关不进 `notes/`
96
+ - [ ] `tags` 是否包含最贴切的分类标签?
97
+ - [ ] 正文是否包含决策原因/影响范围/相关文件?
98
+
99
+ 每次做决策前:
100
+
101
+ - [ ] 是否已 `search` 相关历史决策?
102
+ - [ ] 是否已检查 `essence.md` 中的核心约束?
103
+ - [ ] 如果与历史记忆冲突,是否已向用户澄清?
104
+
105
+ ## 禁止行为
106
+
107
+ - 禁止用 `folder="notes"` 保存项目相关记忆
108
+ - 禁止写入空 tags
109
+ - 禁止只口头答应而不调用工具
110
+ - 禁止手动修改 `~/.kimi-code/sessions/` 下的 `wire.jsonl`
111
+ - **当用户输入以 `?` / `?` 结尾时,禁止执行任何写入/修改/构建/运行等改变项目状态的操作**:只能回答问题和进行讨论,必须等待用户明确说出「确定」「可以」「开始吧」等指令后才能行动
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry for kimi-code-memory-mcp-server setup.
4
+ *
5
+ * Usage:
6
+ * npx kimi-code-memory-mcp-server setup
7
+ * npx kimi-code-memory-mcp-server setup --undo
8
+ * npx kimi-code-memory-mcp-server setup --dry-run
9
+ * npx kimi-code-memory-mcp-server setup --kimi-code-home /path/to/.kimi-code
10
+ */
11
+ export {};
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry for kimi-code-memory-mcp-server setup.
4
+ *
5
+ * Usage:
6
+ * npx kimi-code-memory-mcp-server setup
7
+ * npx kimi-code-memory-mcp-server setup --undo
8
+ * npx kimi-code-memory-mcp-server setup --dry-run
9
+ * npx kimi-code-memory-mcp-server setup --kimi-code-home /path/to/.kimi-code
10
+ */
11
+ import { runSetup } from './setup.js';
12
+ function parseArgs(argv) {
13
+ const options = {};
14
+ for (let i = 0; i < argv.length; i++) {
15
+ const arg = argv[i];
16
+ switch (arg) {
17
+ case '--dry-run':
18
+ options.dryRun = true;
19
+ break;
20
+ case '--force':
21
+ options.force = true;
22
+ break;
23
+ case '--undo':
24
+ options.undo = true;
25
+ break;
26
+ case '--kimi-code-home':
27
+ options.kimiCodeHome = argv[++i];
28
+ break;
29
+ case '--help':
30
+ case '-h':
31
+ printHelp();
32
+ process.exit(0);
33
+ break;
34
+ default:
35
+ if (arg.startsWith('-')) {
36
+ console.error(`Unknown option: ${arg}`);
37
+ printHelp();
38
+ process.exit(1);
39
+ }
40
+ break;
41
+ }
42
+ }
43
+ return options;
44
+ }
45
+ function printHelp() {
46
+ console.log(`kimi-code-memory-mcp-server setup
47
+
48
+ Integrates the MCP server with Kimi Code CLI by updating:
49
+ - ~/.kimi-code/AGENTS.md
50
+ - ~/.kimi-code/skills/memory-manage
51
+ - ~/.kimi-code/mcp.json
52
+
53
+ Options:
54
+ --dry-run Preview changes without writing files
55
+ --force Overwrite existing skill without prompting
56
+ --undo Remove injected configuration
57
+ --kimi-code-home <p> Use a custom Kimi Code home directory
58
+ --help, -h Show this help
59
+ `);
60
+ }
61
+ async function main() {
62
+ const options = parseArgs(process.argv.slice(2));
63
+ const result = await runSetup(options);
64
+ console.log(`Kimi Code home: ${result.kimiCodeHome}`);
65
+ console.log(`AGENTS.md: ${result.agentsMdPath}`);
66
+ console.log(`Skill: ${result.skillPath}`);
67
+ console.log(`mcp.json: ${result.mcpJsonPath}`);
68
+ console.log('');
69
+ for (const action of result.actions) {
70
+ console.log(`✓ ${action}`);
71
+ }
72
+ if (result.warnings.length > 0) {
73
+ console.log('');
74
+ console.log('Warnings:');
75
+ for (const warning of result.warnings) {
76
+ console.log(`⚠ ${warning}`);
77
+ }
78
+ }
79
+ }
80
+ main().catch((err) => {
81
+ console.error('Setup failed:', err instanceof Error ? err.message : String(err));
82
+ process.exit(1);
83
+ });
84
+ //# sourceMappingURL=setup-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-cli.js","sourceRoot":"","sources":["../src/setup-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Setup / teardown helpers for integrating the MCP server with Kimi Code CLI.
3
+ *
4
+ * This module modifies the user's Kimi Code home directory:
5
+ * - ~/.kimi-code/AGENTS.md (injected memory protocol block)
6
+ * - ~/.kimi-code/skills/memory-manage
7
+ * - ~/.kimi-code/mcp.json (kimi-memory server entry)
8
+ *
9
+ * All modifications are guarded by backup + marked injection blocks so they
10
+ * can be undone later.
11
+ */
12
+ export interface SetupResult {
13
+ kimiCodeHome: string;
14
+ agentsMdPath: string;
15
+ skillPath: string;
16
+ mcpJsonPath: string;
17
+ actions: string[];
18
+ warnings: string[];
19
+ }
20
+ export interface SetupOptions {
21
+ /** Preview changes without writing anything. */
22
+ dryRun?: boolean;
23
+ /** Overwrite existing skill / mcp.json entry without prompting. */
24
+ force?: boolean;
25
+ /** Remove injected blocks instead of adding them. */
26
+ undo?: boolean;
27
+ /** Override the detected Kimi Code home directory. */
28
+ kimiCodeHome?: string;
29
+ }
30
+ /**
31
+ * Run setup or teardown.
32
+ */
33
+ export declare function runSetup(options?: SetupOptions): Promise<SetupResult>;
package/dist/setup.js ADDED
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Setup / teardown helpers for integrating the MCP server with Kimi Code CLI.
3
+ *
4
+ * This module modifies the user's Kimi Code home directory:
5
+ * - ~/.kimi-code/AGENTS.md (injected memory protocol block)
6
+ * - ~/.kimi-code/skills/memory-manage
7
+ * - ~/.kimi-code/mcp.json (kimi-memory server entry)
8
+ *
9
+ * All modifications are guarded by backup + marked injection blocks so they
10
+ * can be undone later.
11
+ */
12
+ import fs from 'fs';
13
+ import path from 'path';
14
+ import os from 'os';
15
+ const INJECT_START = '<!-- KIMI-MEMORY-INJECTED-START -->';
16
+ const INJECT_END = '<!-- KIMI-MEMORY-INJECTED-END -->';
17
+ function getKimiCodeHome(options) {
18
+ if (options.kimiCodeHome)
19
+ return path.resolve(options.kimiCodeHome);
20
+ const fromEnv = process.env.KIMI_CODE_HOME;
21
+ if (fromEnv)
22
+ return path.resolve(fromEnv);
23
+ return path.join(os.homedir(), '.kimi-code');
24
+ }
25
+ function fileExists(p) {
26
+ try {
27
+ return fs.existsSync(p);
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ function readText(p) {
34
+ try {
35
+ return fs.readFileSync(p, 'utf8');
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ }
41
+ function writeText(p, content, dryRun) {
42
+ if (dryRun)
43
+ return;
44
+ fs.mkdirSync(path.dirname(p), { recursive: true });
45
+ fs.writeFileSync(p, content, 'utf8');
46
+ }
47
+ function backupFile(p, dryRun) {
48
+ if (dryRun || !fileExists(p))
49
+ return;
50
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
51
+ const backupPath = `${p}.bak.${timestamp}`;
52
+ fs.copyFileSync(p, backupPath);
53
+ }
54
+ function getPackageRoot() {
55
+ // __dirname in dist/ points to dist/, package root is one level up.
56
+ return path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
57
+ }
58
+ import { fileURLToPath } from 'url';
59
+ /**
60
+ * Inject or replace the marked block in AGENTS.md.
61
+ */
62
+ function updateAgentsMd(agentsPath, injectedContent, options) {
63
+ const dryRun = !!options.dryRun;
64
+ const undo = !!options.undo;
65
+ const existing = readText(agentsPath) ?? '';
66
+ const startIdx = existing.indexOf(INJECT_START);
67
+ const endIdx = existing.indexOf(INJECT_END);
68
+ let newContent;
69
+ if (undo) {
70
+ if (startIdx === -1 || endIdx === -1 || endIdx <= startIdx) {
71
+ return 'No injected block found; nothing to undo.';
72
+ }
73
+ // Remove the block plus surrounding blank lines.
74
+ const before = existing.slice(0, startIdx).replace(/\n+\s*$/, '');
75
+ const after = existing.slice(endIdx + INJECT_END.length).replace(/^\s*\n+/, '');
76
+ newContent = before ? before + '\n\n' + after : after;
77
+ if (!dryRun)
78
+ backupFile(agentsPath, dryRun);
79
+ writeText(agentsPath, newContent, dryRun);
80
+ return 'Removed injected memory protocol block.';
81
+ }
82
+ const block = [
83
+ INJECT_START,
84
+ '<!-- 以下内容由 kimi-code-memory-mcp-server 自动生成,请勿手动编辑此区块。 -->',
85
+ '<!-- 如需更新或移除,请运行 npx kimi-code-memory-mcp-server setup --undo -->',
86
+ injectedContent.trim(),
87
+ INJECT_END,
88
+ ].join('\n');
89
+ if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
90
+ // Replace existing block.
91
+ newContent = existing.slice(0, startIdx) + block + existing.slice(endIdx + INJECT_END.length);
92
+ if (!dryRun)
93
+ backupFile(agentsPath, dryRun);
94
+ writeText(agentsPath, newContent, dryRun);
95
+ return 'Updated existing injected memory protocol block.';
96
+ }
97
+ // No existing block: prepend to file.
98
+ const separator = existing.trim() ? '\n\n' : '';
99
+ newContent = block + separator + existing;
100
+ if (!dryRun)
101
+ backupFile(agentsPath, dryRun);
102
+ writeText(agentsPath, newContent, dryRun);
103
+ return 'Injected memory protocol block at the top of AGENTS.md.';
104
+ }
105
+ /**
106
+ * Copy the bundled skill into the user's Kimi Code skills directory.
107
+ */
108
+ function installSkill(skillTarget, options) {
109
+ const dryRun = !!options.dryRun;
110
+ const force = !!options.force;
111
+ const undo = !!options.undo;
112
+ if (undo) {
113
+ if (!fileExists(skillTarget))
114
+ return 'Skill not installed; nothing to undo.';
115
+ if (!dryRun)
116
+ fs.rmSync(skillTarget, { recursive: true, force: true });
117
+ return 'Removed memory-manage skill.';
118
+ }
119
+ if (fileExists(skillTarget) && !force) {
120
+ return 'Skill already exists; use --force to overwrite.';
121
+ }
122
+ const source = path.join(getPackageRoot(), 'skills', 'memory-manage');
123
+ if (!fileExists(source)) {
124
+ throw new Error(`Bundled skill not found at ${source}`);
125
+ }
126
+ if (!dryRun) {
127
+ fs.rmSync(skillTarget, { recursive: true, force: true });
128
+ fs.cpSync(source, skillTarget, { recursive: true });
129
+ }
130
+ return force ? 'Replaced memory-manage skill.' : 'Installed memory-manage skill.';
131
+ }
132
+ /**
133
+ * Add or remove the kimi-memory MCP server entry in mcp.json.
134
+ */
135
+ function updateMcpJson(mcpPath, options) {
136
+ const dryRun = !!options.dryRun;
137
+ const undo = !!options.undo;
138
+ let config = {};
139
+ const existingText = readText(mcpPath);
140
+ if (existingText) {
141
+ try {
142
+ config = JSON.parse(existingText);
143
+ if (typeof config !== 'object' || config === null)
144
+ config = {};
145
+ }
146
+ catch {
147
+ throw new Error(`Existing ${mcpPath} is not valid JSON.`);
148
+ }
149
+ }
150
+ if (!config.mcpServers || typeof config.mcpServers !== 'object') {
151
+ config.mcpServers = {};
152
+ }
153
+ if (undo) {
154
+ if (!Object.prototype.hasOwnProperty.call(config.mcpServers, 'kimi-memory')) {
155
+ return 'kimi-memory MCP server entry not found; nothing to undo.';
156
+ }
157
+ delete config.mcpServers['kimi-memory'];
158
+ if (!dryRun)
159
+ writeText(mcpPath, JSON.stringify(config, null, 2) + '\n', dryRun);
160
+ return 'Removed kimi-memory MCP server entry.';
161
+ }
162
+ const serverEntry = {
163
+ command: 'npx',
164
+ args: ['-y', 'kimi-code-memory-mcp-server'],
165
+ enabled: true,
166
+ };
167
+ const hadEntry = Object.prototype.hasOwnProperty.call(config.mcpServers, 'kimi-memory');
168
+ config.mcpServers['kimi-memory'] = serverEntry;
169
+ if (!dryRun)
170
+ writeText(mcpPath, JSON.stringify(config, null, 2) + '\n', dryRun);
171
+ return hadEntry ? 'Updated kimi-memory MCP server entry.' : 'Added kimi-memory MCP server entry.';
172
+ }
173
+ /**
174
+ * Run setup or teardown.
175
+ */
176
+ export async function runSetup(options = {}) {
177
+ const kimiCodeHome = getKimiCodeHome(options);
178
+ const agentsMdPath = path.join(kimiCodeHome, 'AGENTS.md');
179
+ const skillPath = path.join(kimiCodeHome, 'skills', 'memory-manage');
180
+ const mcpJsonPath = path.join(kimiCodeHome, 'mcp.json');
181
+ const actions = [];
182
+ const warnings = [];
183
+ if (!fileExists(kimiCodeHome)) {
184
+ warnings.push(`Kimi Code home not found at ${kimiCodeHome}. Is Kimi Code CLI installed?`);
185
+ }
186
+ // AGENTS.md
187
+ const injectedSource = path.join(getPackageRoot(), 'assets', 'user-agents.md');
188
+ const injectedContent = readText(injectedSource);
189
+ if (!injectedContent) {
190
+ throw new Error(`Bundled user-agents.md template not found at ${injectedSource}`);
191
+ }
192
+ actions.push(updateAgentsMd(agentsMdPath, injectedContent, options));
193
+ // Skill
194
+ actions.push(installSkill(skillPath, options));
195
+ // mcp.json
196
+ actions.push(updateMcpJson(mcpJsonPath, options));
197
+ return {
198
+ kimiCodeHome,
199
+ agentsMdPath,
200
+ skillPath,
201
+ mcpJsonPath,
202
+ actions,
203
+ warnings,
204
+ };
205
+ }
206
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -6,4 +6,4 @@
6
6
  * during protocol initialization and must match the repository (package)
7
7
  * version unless explicitly noted otherwise.
8
8
  */
9
- export declare const VERSION = "0.1.0";
9
+ export declare const VERSION = "0.1.1";
package/dist/version.js CHANGED
@@ -6,5 +6,5 @@
6
6
  * during protocol initialization and must match the repository (package)
7
7
  * version unless explicitly noted otherwise.
8
8
  */
9
- export const VERSION = '0.1.0';
9
+ export const VERSION = '0.1.1';
10
10
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,18 +1,20 @@
1
1
  {
2
2
  "name": "kimi-code-memory-mcp-server",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
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"
10
11
  },
11
12
  "files": [
12
13
  "dist/",
13
14
  "docs/",
14
15
  "examples/",
15
16
  "skills/",
17
+ "assets/",
16
18
  "AGENTS.md",
17
19
  "README.md",
18
20
  "README.zh-CN.md",