@t0ken.ai/memoryx-mcp-server 2.2.8 → 2.2.9
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/README.md +48 -1
- package/dist/index.js +65 -39
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +70 -50
package/README.md
CHANGED
|
@@ -41,6 +41,53 @@ Add to `~/.cursor/mcp.json` or VS Code MCP config:
|
|
|
41
41
|
|
|
42
42
|
**That's it!** The server auto-registers on first use - no additional configuration needed.
|
|
43
43
|
|
|
44
|
+
### Configure Your Agent (System Prompt / Rules)
|
|
45
|
+
|
|
46
|
+
The MCP server only provides the **tools**; the AI will not automatically know when or how to save memory. You must **put the following constraints into your AI’s system prompt or rules** (e.g. Cursor Rules, VS Code rules, or Claude’s custom instructions) so the agent is instructed to call `save_memory` at the right times.
|
|
47
|
+
|
|
48
|
+
**Where to add:**
|
|
49
|
+
- **Cursor**: `.cursor/rules/*.mdc` or project/global rules
|
|
50
|
+
- **VS Code / other MCP hosts**: system prompt or instructions in settings
|
|
51
|
+
- **Claude Desktop**: Custom instructions / system prompt in config
|
|
52
|
+
|
|
53
|
+
**Suggested rule: “MemoryX Auto-Memory Rules”**
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
# MemoryX Auto-Memory Rules
|
|
57
|
+
|
|
58
|
+
## Task Completion Flow
|
|
59
|
+
1. Complete task code changes
|
|
60
|
+
2. **MUST** call `save_memory` tool to save task summary
|
|
61
|
+
3. **THEN** call `attempt_completion` (or your completion flow) to report
|
|
62
|
+
|
|
63
|
+
## save_memory Content Requirements
|
|
64
|
+
- What task was completed
|
|
65
|
+
- Which files were modified
|
|
66
|
+
- Important design decisions or lessons learned
|
|
67
|
+
- Next steps (if any)
|
|
68
|
+
|
|
69
|
+
## When to Save (Triggers)
|
|
70
|
+
- **Task completion** – Summarize and save before marking done
|
|
71
|
+
- **Important design decisions** – Architecture, tech choices, API/schema changes
|
|
72
|
+
- **User requests** – "remember", "don't forget", "note this"
|
|
73
|
+
- **User preferences** – "I like", "I hate", "I usually..."
|
|
74
|
+
- **Cross-session info** – Anything that should persist to the next session
|
|
75
|
+
- **End of conversation** – Optional: add a rule like “At end of long sessions, call save_memory with a short summary of key points”
|
|
76
|
+
|
|
77
|
+
## Timed / Scheduled Saving
|
|
78
|
+
If you want the agent to save memory on a schedule (e.g. every N messages or at idle), add to your system prompt or rules, for example:
|
|
79
|
+
- “After every 10 user messages, call save_memory with a 1–2 sentence summary of the current topic if it’s substantive.”
|
|
80
|
+
- “When the user has not sent a message for 5 minutes and the conversation had substance, offer to save a brief summary via save_memory.”
|
|
81
|
+
|
|
82
|
+
## How to Save
|
|
83
|
+
- Call the **save_memory** tool with:
|
|
84
|
+
- **content**: One atomic fact or short summary (self-contained; use absolute dates like YYYY-MM-DD; avoid “it”/“this”—use explicit referents).
|
|
85
|
+
- **metadata** (optional): `category` (semantic | episodic | procedural | emotional | reflective), `tags` (string array).
|
|
86
|
+
- One fact per call; for multiple points, call save_memory once per fact.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Copy or adapt the above into your rules so the agent consistently saves memory at the right moments.
|
|
90
|
+
|
|
44
91
|
### Configure Claude Desktop
|
|
45
92
|
|
|
46
93
|
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
@@ -61,7 +108,7 @@ Add to `~/.cursor/mcp.json` or VS Code MCP config:
|
|
|
61
108
|
|
|
62
109
|
### save_memory
|
|
63
110
|
|
|
64
|
-
Save information to long-term memory.
|
|
111
|
+
Save information to long-term memory. **Important:** The agent will not call this automatically—put the [MemoryX Auto-Memory Rules](#configure-your-agent-system-prompt--rules) (when to save, task flow, content requirements) into your **system prompt or rules** so the agent is constrained to use it.
|
|
65
112
|
|
|
66
113
|
**⚡ AUTO-SAVE TRIGGERS - Always call save_memory when:**
|
|
67
114
|
|
package/dist/index.js
CHANGED
|
@@ -55,7 +55,7 @@ const path = __importStar(require("path"));
|
|
|
55
55
|
const os = __importStar(require("os"));
|
|
56
56
|
const DEFAULT_API_BASE = "https://t0ken.ai/api";
|
|
57
57
|
// MCP Server 版本号 - 由 prebuild 脚本自动从 package.json 同步
|
|
58
|
-
const VERSION = "2.2.
|
|
58
|
+
const VERSION = "2.2.9";
|
|
59
59
|
// Detected client type from initialize request
|
|
60
60
|
let detectedClient = 'mcp';
|
|
61
61
|
// Lazy-loaded SDK instance
|
|
@@ -131,13 +131,13 @@ async function saveMemory(content, metadata = {}) {
|
|
|
131
131
|
return { success: false, message: String(e), queued: 0 };
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
async function searchMemory(query, limit = 5) {
|
|
134
|
+
async function searchMemory(query, limit = 5, options) {
|
|
135
135
|
if (!query || query.length < 2) {
|
|
136
136
|
return { memories: [], isLimited: false, remainingQuota: 0 };
|
|
137
137
|
}
|
|
138
138
|
try {
|
|
139
139
|
const sdk = await getSDK();
|
|
140
|
-
const result = await sdk.search(query, limit);
|
|
140
|
+
const result = await sdk.search(query, limit, options);
|
|
141
141
|
return {
|
|
142
142
|
memories: (result.data || []).map((m) => ({
|
|
143
143
|
id: m.id,
|
|
@@ -154,10 +154,10 @@ async function searchMemory(query, limit = 5) {
|
|
|
154
154
|
return { memories: [], isLimited: false, remainingQuota: 0 };
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
async function listMemory(limit = 20) {
|
|
157
|
+
async function listMemory(limit = 20, offset = 0, options) {
|
|
158
158
|
try {
|
|
159
159
|
const sdk = await getSDK();
|
|
160
|
-
const result = await sdk.list(limit,
|
|
160
|
+
const result = await sdk.list(limit, offset, options);
|
|
161
161
|
return {
|
|
162
162
|
memories: (result.data || []).map((m) => ({
|
|
163
163
|
id: m.id,
|
|
@@ -224,7 +224,7 @@ const server = new index_js_1.Server({
|
|
|
224
224
|
},
|
|
225
225
|
});
|
|
226
226
|
// 检测 MCP 客户端类型
|
|
227
|
-
// 支持的 IDE: Cline, Cursor, Windsurf, Claude, Zen, Trea, Qoder, Kiro, OpenCode, CodeBuddy, Codeium, Tabby, Kimi, ZenMux, Comate
|
|
227
|
+
// 支持的 IDE: Cline, Cursor, Windsurf, Claude, Zen, Trea, Qoder, Kiro, OpenCode, CodeBuddy, Codeium, Tabby, Kimi, ZenMux, Comate, Kilo, Qwen, Codex
|
|
228
228
|
server.setRequestHandler(types_js_1.InitializeRequestSchema, async (request) => {
|
|
229
229
|
const clientName = (request.params?.clientInfo?.name || '').toLowerCase();
|
|
230
230
|
// 检测客户端类型(忽略大小写)
|
|
@@ -273,6 +273,15 @@ server.setRequestHandler(types_js_1.InitializeRequestSchema, async (request) =>
|
|
|
273
273
|
else if (clientName.includes('tabby')) {
|
|
274
274
|
detectedClient = 'tabby';
|
|
275
275
|
}
|
|
276
|
+
else if (clientName.includes('kilo')) {
|
|
277
|
+
detectedClient = 'kilo';
|
|
278
|
+
}
|
|
279
|
+
else if (clientName.includes('qwen')) {
|
|
280
|
+
detectedClient = 'qwen';
|
|
281
|
+
}
|
|
282
|
+
else if (clientName.includes('codex')) {
|
|
283
|
+
detectedClient = 'codex';
|
|
284
|
+
}
|
|
276
285
|
else if (clientName) {
|
|
277
286
|
// 未知客户端,使用其名称
|
|
278
287
|
detectedClient = clientName.split(/[^\w]/)[0]; // 取第一个单词
|
|
@@ -363,15 +372,13 @@ server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
|
|
|
363
372
|
|
|
364
373
|
Task: ${task}
|
|
365
374
|
|
|
366
|
-
|
|
367
|
-
-
|
|
368
|
-
-
|
|
369
|
-
-
|
|
370
|
-
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
Keep under 50 words. Then proceed to attempt_completion.
|
|
374
|
-
DO NOT skip this step.`
|
|
375
|
+
Call save_memory for EACH atomic fact (one fact per call—do not merge). RULES:
|
|
376
|
+
- Use ONLY absolute dates (YYYY-MM-DD). NEVER "yesterday", "last week", "recently".
|
|
377
|
+
- If content has "it"/"this"/"that", rewrite with explicit referents (e.g. "it" → "[Component X]").
|
|
378
|
+
- metadata.category MUST be one of: semantic | episodic | procedural | emotional | reflective. Use "reflective" for task summaries.
|
|
379
|
+
- Save: what was done, key files changed, important decisions, next steps. Each as a separate save_memory call if multiple facts.
|
|
380
|
+
- Tags: task-complete, ${task}. Keep each fact under 50 words.
|
|
381
|
+
Then proceed to attempt_completion. DO NOT skip saving.`
|
|
375
382
|
}
|
|
376
383
|
}
|
|
377
384
|
]
|
|
@@ -386,14 +393,12 @@ DO NOT skip this step.`
|
|
|
386
393
|
type: "text",
|
|
387
394
|
text: `⚡ AUTO-ARCHIVE: Review this conversation about ${topic} and SAVE to memory immediately.
|
|
388
395
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
4
|
|
394
|
-
|
|
395
|
-
Use save_memory tool NOW with category "reflective" and tags: ${topic}, session-summary.
|
|
396
|
-
Keep summary under 100 words. DO NOT skip this step.`
|
|
396
|
+
Call save_memory for EACH atomic fact (one fact per call—do not merge into one). RULES you MUST follow:
|
|
397
|
+
- Dates: ONLY absolute (YYYY-MM-DD). NEVER "yesterday", "last week", "recently".
|
|
398
|
+
- Context: Replace "it"/"this"/"that" with explicit referents so each fact is self-contained.
|
|
399
|
+
- metadata.category MUST be one of: semantic | episodic | procedural | emotional | reflective. Use "reflective" for session summaries.
|
|
400
|
+
- Extract and save separately: (1) Key design decisions (2) What was accomplished (3) Learnings/gotchas (4) Pending tasks. Each fact = one save_memory call.
|
|
401
|
+
- Tags: ${topic}, session-summary. Each fact under 100 words total. DO NOT skip this step.`
|
|
397
402
|
}
|
|
398
403
|
}
|
|
399
404
|
]
|
|
@@ -420,17 +425,17 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
|
420
425
|
tools: [
|
|
421
426
|
{
|
|
422
427
|
name: "save_memory",
|
|
423
|
-
description: "Save
|
|
428
|
+
description: "Save one atomic fact to long-term memory. RULES YOU MUST FOLLOW: (1) ONE fact per call—do not merge multiple facts. (2) DATES: Use ONLY absolute dates (YYYY-MM-DD or ISO 8601). NEVER use 'yesterday', 'last week', 'recently', or any relative time. (3) CONTEXT COMPLETION (mandatory): If the fact contains pronouns or references like 'it', 'this', 'that', 'the project'—you MUST rewrite so the fact is self-contained with explicit referents. Example: 'it broke' → '[Device] MacBook Pro 2023 screen damaged'. Content that is not self-contained will be stored incorrectly. (4) metadata.category MUST be one of: semantic | episodic | procedural | emotional | reflective. (5) Call save_memory when: user says 'remember this', design/code decisions, task completion, or end-of-session summary (≤100 words). (6) For code-related facts, include concrete anchors when possible: class name, method/function name, file path, library/SDK name, config key, error type—e.g. 'UserService.login in src/auth/user.service.ts uses Redis' rather than 'we fixed login'—so memory can be recalled by code structure.",
|
|
424
429
|
inputSchema: {
|
|
425
430
|
type: "object",
|
|
426
431
|
properties: {
|
|
427
432
|
content: {
|
|
428
433
|
type: "string",
|
|
429
|
-
description: "
|
|
434
|
+
description: "REQUIRED. One atomic fact, self-contained. MUST use absolute dates (YYYY-MM-DD). MUST resolve any 'it/this/that' to explicit nouns. Session summary: max 100 words."
|
|
430
435
|
},
|
|
431
436
|
metadata: {
|
|
432
437
|
type: "object",
|
|
433
|
-
description: "
|
|
438
|
+
description: "category (required): semantic|episodic|procedural|emotional|reflective. tags (optional): string array."
|
|
434
439
|
}
|
|
435
440
|
},
|
|
436
441
|
required: ["content"]
|
|
@@ -438,18 +443,32 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
|
438
443
|
},
|
|
439
444
|
{
|
|
440
445
|
name: "search_memory",
|
|
441
|
-
description: "Search historical memories.
|
|
446
|
+
description: "Search historical memories. Direct results = vector DB; related = graph DB. Call BEFORE answering about preferences/history or any personalized response. Workflow: search → review results → respond. Use absolute time in time_filter (YYYY-MM-DD). Returned id is the memory_id for delete_memory.",
|
|
442
447
|
inputSchema: {
|
|
443
448
|
type: "object",
|
|
444
449
|
properties: {
|
|
445
450
|
query: {
|
|
446
451
|
type: "string",
|
|
447
|
-
description: "Search keywords or natural language question"
|
|
452
|
+
description: "Search intent: keywords or natural language question"
|
|
448
453
|
},
|
|
449
454
|
limit: {
|
|
450
455
|
type: "number",
|
|
451
|
-
description: "
|
|
456
|
+
description: "Max results, default 5",
|
|
452
457
|
default: 5
|
|
458
|
+
},
|
|
459
|
+
time_filter: {
|
|
460
|
+
type: "object",
|
|
461
|
+
description: "Optional. start/end in YYYY-MM-DD HH:mm:ss or ISO 8601"
|
|
462
|
+
},
|
|
463
|
+
categories: {
|
|
464
|
+
type: "array",
|
|
465
|
+
items: { type: "string" },
|
|
466
|
+
description: "Optional. Filter by category (semantic/episodic/procedural/emotional/reflective)"
|
|
467
|
+
},
|
|
468
|
+
tags: {
|
|
469
|
+
type: "array",
|
|
470
|
+
items: { type: "string" },
|
|
471
|
+
description: "Optional. Filter by tags"
|
|
453
472
|
}
|
|
454
473
|
},
|
|
455
474
|
required: ["query"]
|
|
@@ -457,27 +476,27 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
|
457
476
|
},
|
|
458
477
|
{
|
|
459
478
|
name: "list_memory",
|
|
460
|
-
description: "List recent memories
|
|
479
|
+
description: "List recent memories by creation time (newest first). No search/lookup—only time-ordered listing. To delete a specific memory, use search_memory to get its id then delete_memory. Returns id (use as memory_id for delete), content, category.",
|
|
461
480
|
inputSchema: {
|
|
462
481
|
type: "object",
|
|
463
482
|
properties: {
|
|
464
|
-
limit: {
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
}
|
|
483
|
+
limit: { type: "number", description: "Max items, default 20", default: 20 },
|
|
484
|
+
offset: { type: "number", description: "Pagination offset, default 0", default: 0 },
|
|
485
|
+
time_filter: { type: "object", description: "Optional. start/end YYYY-MM-DD HH:mm:ss" },
|
|
486
|
+
categories: { type: "array", items: { type: "string" }, description: "Optional. Filter by category" },
|
|
487
|
+
tags: { type: "array", items: { type: "string" }, description: "Optional. Filter by tags" }
|
|
469
488
|
}
|
|
470
489
|
}
|
|
471
490
|
},
|
|
472
491
|
{
|
|
473
492
|
name: "delete_memory",
|
|
474
|
-
description: "Delete a
|
|
493
|
+
description: "Delete a memory by id. memory_id MUST be the id returned by search_memory or list_memory—do not use any other value. Use when user asks to forget something or information is outdated.",
|
|
475
494
|
inputSchema: {
|
|
476
495
|
type: "object",
|
|
477
496
|
properties: {
|
|
478
497
|
memory_id: {
|
|
479
498
|
type: "string",
|
|
480
|
-
description: "
|
|
499
|
+
description: "Id from search_memory or list_memory result (required)"
|
|
481
500
|
}
|
|
482
501
|
},
|
|
483
502
|
required: ["memory_id"]
|
|
@@ -513,7 +532,10 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
513
532
|
case "search_memory": {
|
|
514
533
|
const query = args?.query;
|
|
515
534
|
const limit = args?.limit || 5;
|
|
516
|
-
const
|
|
535
|
+
const time_filter = args?.time_filter;
|
|
536
|
+
const categories = args?.categories;
|
|
537
|
+
const tags = args?.tags;
|
|
538
|
+
const result = await searchMemory(query, limit, { time_filter, categories, tags });
|
|
517
539
|
return {
|
|
518
540
|
content: [
|
|
519
541
|
{
|
|
@@ -525,7 +547,11 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
525
547
|
}
|
|
526
548
|
case "list_memory": {
|
|
527
549
|
const limit = args?.limit || 20;
|
|
528
|
-
const
|
|
550
|
+
const offset = args?.offset || 0;
|
|
551
|
+
const time_filter = args?.time_filter;
|
|
552
|
+
const categories = args?.categories;
|
|
553
|
+
const tags = args?.tags;
|
|
554
|
+
const result = await listMemory(limit, offset, { time_filter, categories, tags });
|
|
529
555
|
return {
|
|
530
556
|
content: [
|
|
531
557
|
{
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t0ken.ai/memoryx-mcp-server",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.9",
|
|
4
4
|
"description": "MemoryX MCP Server for Cursor/VS Code/Claude Desktop (powered by @t0ken.ai/memoryx-sdk)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
27
|
-
"@t0ken.ai/memoryx-sdk": "^1.
|
|
27
|
+
"@t0ken.ai/memoryx-sdk": "^1.5.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^20.0.0",
|
package/src/index.ts
CHANGED
|
@@ -32,7 +32,7 @@ import * as os from "os";
|
|
|
32
32
|
const DEFAULT_API_BASE = "https://t0ken.ai/api";
|
|
33
33
|
|
|
34
34
|
// MCP Server 版本号 - 由 prebuild 脚本自动从 package.json 同步
|
|
35
|
-
const VERSION = "2.2.
|
|
35
|
+
const VERSION = "2.2.9";
|
|
36
36
|
|
|
37
37
|
// Detected client type from initialize request
|
|
38
38
|
let detectedClient: string = 'mcp';
|
|
@@ -125,20 +125,17 @@ async function saveMemory(content: string, metadata: Record<string, any> = {}):
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
async function searchMemory(
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}> {
|
|
128
|
+
async function searchMemory(
|
|
129
|
+
query: string,
|
|
130
|
+
limit: number = 5,
|
|
131
|
+
options?: { time_filter?: { start?: string; end?: string }; categories?: string[]; tags?: string[] }
|
|
132
|
+
): Promise<{ memories: any[]; isLimited: boolean; remainingQuota: number; upgradeHint?: string }> {
|
|
134
133
|
if (!query || query.length < 2) {
|
|
135
134
|
return { memories: [], isLimited: false, remainingQuota: 0 };
|
|
136
135
|
}
|
|
137
|
-
|
|
138
136
|
try {
|
|
139
137
|
const sdk = await getSDK();
|
|
140
|
-
const result = await sdk.search(query, limit);
|
|
141
|
-
|
|
138
|
+
const result = await (sdk as any).search(query, limit, options);
|
|
142
139
|
return {
|
|
143
140
|
memories: (result.data || []).map((m: any) => ({
|
|
144
141
|
id: m.id,
|
|
@@ -155,14 +152,14 @@ async function searchMemory(query: string, limit: number = 5): Promise<{
|
|
|
155
152
|
}
|
|
156
153
|
}
|
|
157
154
|
|
|
158
|
-
async function listMemory(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
155
|
+
async function listMemory(
|
|
156
|
+
limit: number = 20,
|
|
157
|
+
offset: number = 0,
|
|
158
|
+
options?: { time_filter?: { start?: string; end?: string }; categories?: string[]; tags?: string[] }
|
|
159
|
+
): Promise<{ memories: any[]; total: number }> {
|
|
162
160
|
try {
|
|
163
161
|
const sdk = await getSDK();
|
|
164
|
-
const result = await sdk.list(limit,
|
|
165
|
-
|
|
162
|
+
const result = await (sdk as any).list(limit, offset, options);
|
|
166
163
|
return {
|
|
167
164
|
memories: (result.data || []).map((m: any) => ({
|
|
168
165
|
id: m.id,
|
|
@@ -244,7 +241,7 @@ const server = new Server(
|
|
|
244
241
|
);
|
|
245
242
|
|
|
246
243
|
// 检测 MCP 客户端类型
|
|
247
|
-
// 支持的 IDE: Cline, Cursor, Windsurf, Claude, Zen, Trea, Qoder, Kiro, OpenCode, CodeBuddy, Codeium, Tabby, Kimi, ZenMux, Comate
|
|
244
|
+
// 支持的 IDE: Cline, Cursor, Windsurf, Claude, Zen, Trea, Qoder, Kiro, OpenCode, CodeBuddy, Codeium, Tabby, Kimi, ZenMux, Comate, Kilo, Qwen, Codex
|
|
248
245
|
server.setRequestHandler(InitializeRequestSchema, async (request) => {
|
|
249
246
|
const clientName = (request.params?.clientInfo?.name || '').toLowerCase();
|
|
250
247
|
|
|
@@ -279,6 +276,12 @@ server.setRequestHandler(InitializeRequestSchema, async (request) => {
|
|
|
279
276
|
detectedClient = 'codeium';
|
|
280
277
|
} else if (clientName.includes('tabby')) {
|
|
281
278
|
detectedClient = 'tabby';
|
|
279
|
+
} else if (clientName.includes('kilo')) {
|
|
280
|
+
detectedClient = 'kilo';
|
|
281
|
+
} else if (clientName.includes('qwen')) {
|
|
282
|
+
detectedClient = 'qwen';
|
|
283
|
+
} else if (clientName.includes('codex')) {
|
|
284
|
+
detectedClient = 'codex';
|
|
282
285
|
} else if (clientName) {
|
|
283
286
|
// 未知客户端,使用其名称
|
|
284
287
|
detectedClient = clientName.split(/[^\w]/)[0]; // 取第一个单词
|
|
@@ -376,15 +379,13 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
|
376
379
|
|
|
377
380
|
Task: ${task}
|
|
378
381
|
|
|
379
|
-
|
|
380
|
-
-
|
|
381
|
-
-
|
|
382
|
-
-
|
|
383
|
-
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
Keep under 50 words. Then proceed to attempt_completion.
|
|
387
|
-
DO NOT skip this step.`
|
|
382
|
+
Call save_memory for EACH atomic fact (one fact per call—do not merge). RULES:
|
|
383
|
+
- Use ONLY absolute dates (YYYY-MM-DD). NEVER "yesterday", "last week", "recently".
|
|
384
|
+
- If content has "it"/"this"/"that", rewrite with explicit referents (e.g. "it" → "[Component X]").
|
|
385
|
+
- metadata.category MUST be one of: semantic | episodic | procedural | emotional | reflective. Use "reflective" for task summaries.
|
|
386
|
+
- Save: what was done, key files changed, important decisions, next steps. Each as a separate save_memory call if multiple facts.
|
|
387
|
+
- Tags: task-complete, ${task}. Keep each fact under 50 words.
|
|
388
|
+
Then proceed to attempt_completion. DO NOT skip saving.`
|
|
388
389
|
}
|
|
389
390
|
}
|
|
390
391
|
]
|
|
@@ -400,14 +401,12 @@ DO NOT skip this step.`
|
|
|
400
401
|
type: "text",
|
|
401
402
|
text: `⚡ AUTO-ARCHIVE: Review this conversation about ${topic} and SAVE to memory immediately.
|
|
402
403
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
4
|
|
408
|
-
|
|
409
|
-
Use save_memory tool NOW with category "reflective" and tags: ${topic}, session-summary.
|
|
410
|
-
Keep summary under 100 words. DO NOT skip this step.`
|
|
404
|
+
Call save_memory for EACH atomic fact (one fact per call—do not merge into one). RULES you MUST follow:
|
|
405
|
+
- Dates: ONLY absolute (YYYY-MM-DD). NEVER "yesterday", "last week", "recently".
|
|
406
|
+
- Context: Replace "it"/"this"/"that" with explicit referents so each fact is self-contained.
|
|
407
|
+
- metadata.category MUST be one of: semantic | episodic | procedural | emotional | reflective. Use "reflective" for session summaries.
|
|
408
|
+
- Extract and save separately: (1) Key design decisions (2) What was accomplished (3) Learnings/gotchas (4) Pending tasks. Each fact = one save_memory call.
|
|
409
|
+
- Tags: ${topic}, session-summary. Each fact under 100 words total. DO NOT skip this step.`
|
|
411
410
|
}
|
|
412
411
|
}
|
|
413
412
|
]
|
|
@@ -437,17 +436,17 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
437
436
|
tools: [
|
|
438
437
|
{
|
|
439
438
|
name: "save_memory",
|
|
440
|
-
description: "Save
|
|
439
|
+
description: "Save one atomic fact to long-term memory. RULES YOU MUST FOLLOW: (1) ONE fact per call—do not merge multiple facts. (2) DATES: Use ONLY absolute dates (YYYY-MM-DD or ISO 8601). NEVER use 'yesterday', 'last week', 'recently', or any relative time. (3) CONTEXT COMPLETION (mandatory): If the fact contains pronouns or references like 'it', 'this', 'that', 'the project'—you MUST rewrite so the fact is self-contained with explicit referents. Example: 'it broke' → '[Device] MacBook Pro 2023 screen damaged'. Content that is not self-contained will be stored incorrectly. (4) metadata.category MUST be one of: semantic | episodic | procedural | emotional | reflective. (5) Call save_memory when: user says 'remember this', design/code decisions, task completion, or end-of-session summary (≤100 words). (6) For code-related facts, include concrete anchors when possible: class name, method/function name, file path, library/SDK name, config key, error type—e.g. 'UserService.login in src/auth/user.service.ts uses Redis' rather than 'we fixed login'—so memory can be recalled by code structure.",
|
|
441
440
|
inputSchema: {
|
|
442
441
|
type: "object",
|
|
443
442
|
properties: {
|
|
444
443
|
content: {
|
|
445
444
|
type: "string",
|
|
446
|
-
description: "
|
|
445
|
+
description: "REQUIRED. One atomic fact, self-contained. MUST use absolute dates (YYYY-MM-DD). MUST resolve any 'it/this/that' to explicit nouns. Session summary: max 100 words."
|
|
447
446
|
},
|
|
448
447
|
metadata: {
|
|
449
448
|
type: "object",
|
|
450
|
-
description: "
|
|
449
|
+
description: "category (required): semantic|episodic|procedural|emotional|reflective. tags (optional): string array."
|
|
451
450
|
}
|
|
452
451
|
},
|
|
453
452
|
required: ["content"]
|
|
@@ -455,18 +454,32 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
455
454
|
},
|
|
456
455
|
{
|
|
457
456
|
name: "search_memory",
|
|
458
|
-
description: "Search historical memories.
|
|
457
|
+
description: "Search historical memories. Direct results = vector DB; related = graph DB. Call BEFORE answering about preferences/history or any personalized response. Workflow: search → review results → respond. Use absolute time in time_filter (YYYY-MM-DD). Returned id is the memory_id for delete_memory.",
|
|
459
458
|
inputSchema: {
|
|
460
459
|
type: "object",
|
|
461
460
|
properties: {
|
|
462
461
|
query: {
|
|
463
462
|
type: "string",
|
|
464
|
-
description: "Search keywords or natural language question"
|
|
463
|
+
description: "Search intent: keywords or natural language question"
|
|
465
464
|
},
|
|
466
465
|
limit: {
|
|
467
466
|
type: "number",
|
|
468
|
-
description: "
|
|
467
|
+
description: "Max results, default 5",
|
|
469
468
|
default: 5
|
|
469
|
+
},
|
|
470
|
+
time_filter: {
|
|
471
|
+
type: "object",
|
|
472
|
+
description: "Optional. start/end in YYYY-MM-DD HH:mm:ss or ISO 8601"
|
|
473
|
+
},
|
|
474
|
+
categories: {
|
|
475
|
+
type: "array",
|
|
476
|
+
items: { type: "string" },
|
|
477
|
+
description: "Optional. Filter by category (semantic/episodic/procedural/emotional/reflective)"
|
|
478
|
+
},
|
|
479
|
+
tags: {
|
|
480
|
+
type: "array",
|
|
481
|
+
items: { type: "string" },
|
|
482
|
+
description: "Optional. Filter by tags"
|
|
470
483
|
}
|
|
471
484
|
},
|
|
472
485
|
required: ["query"]
|
|
@@ -474,27 +487,27 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
474
487
|
},
|
|
475
488
|
{
|
|
476
489
|
name: "list_memory",
|
|
477
|
-
description: "List recent memories
|
|
490
|
+
description: "List recent memories by creation time (newest first). No search/lookup—only time-ordered listing. To delete a specific memory, use search_memory to get its id then delete_memory. Returns id (use as memory_id for delete), content, category.",
|
|
478
491
|
inputSchema: {
|
|
479
492
|
type: "object",
|
|
480
493
|
properties: {
|
|
481
|
-
limit: {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
}
|
|
494
|
+
limit: { type: "number", description: "Max items, default 20", default: 20 },
|
|
495
|
+
offset: { type: "number", description: "Pagination offset, default 0", default: 0 },
|
|
496
|
+
time_filter: { type: "object", description: "Optional. start/end YYYY-MM-DD HH:mm:ss" },
|
|
497
|
+
categories: { type: "array", items: { type: "string" }, description: "Optional. Filter by category" },
|
|
498
|
+
tags: { type: "array", items: { type: "string" }, description: "Optional. Filter by tags" }
|
|
486
499
|
}
|
|
487
500
|
}
|
|
488
501
|
},
|
|
489
502
|
{
|
|
490
503
|
name: "delete_memory",
|
|
491
|
-
description: "Delete a
|
|
504
|
+
description: "Delete a memory by id. memory_id MUST be the id returned by search_memory or list_memory—do not use any other value. Use when user asks to forget something or information is outdated.",
|
|
492
505
|
inputSchema: {
|
|
493
506
|
type: "object",
|
|
494
507
|
properties: {
|
|
495
508
|
memory_id: {
|
|
496
509
|
type: "string",
|
|
497
|
-
description: "
|
|
510
|
+
description: "Id from search_memory or list_memory result (required)"
|
|
498
511
|
}
|
|
499
512
|
},
|
|
500
513
|
required: ["memory_id"]
|
|
@@ -533,7 +546,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
533
546
|
case "search_memory": {
|
|
534
547
|
const query = args?.query as string;
|
|
535
548
|
const limit = (args?.limit as number) || 5;
|
|
536
|
-
const
|
|
549
|
+
const time_filter = args?.time_filter as { start?: string; end?: string } | undefined;
|
|
550
|
+
const categories = args?.categories as string[] | undefined;
|
|
551
|
+
const tags = args?.tags as string[] | undefined;
|
|
552
|
+
const result = await searchMemory(query, limit, { time_filter, categories, tags });
|
|
537
553
|
return {
|
|
538
554
|
content: [
|
|
539
555
|
{
|
|
@@ -546,7 +562,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
546
562
|
|
|
547
563
|
case "list_memory": {
|
|
548
564
|
const limit = (args?.limit as number) || 20;
|
|
549
|
-
const
|
|
565
|
+
const offset = (args?.offset as number) || 0;
|
|
566
|
+
const time_filter = args?.time_filter as { start?: string; end?: string } | undefined;
|
|
567
|
+
const categories = args?.categories as string[] | undefined;
|
|
568
|
+
const tags = args?.tags as string[] | undefined;
|
|
569
|
+
const result = await listMemory(limit, offset, { time_filter, categories, tags });
|
|
550
570
|
return {
|
|
551
571
|
content: [
|
|
552
572
|
{
|