@t0ken.ai/memoryx-mcp-server 2.0.3 → 2.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/README.md CHANGED
@@ -11,8 +11,11 @@ MemoryX MCP Server enables Cursor, VS Code, Claude Desktop, and other MCP client
11
11
 
12
12
  - 🚀 **Zero Config** - Auto-registers on first use, no API key needed
13
13
  - 🔍 **save_memory** - Store important information with automatic categorization
14
- - 🔎 **search_memory** - Semantic search across all historical memories
14
+ - 🔎 **search_memory** - Semantic search across all historical memories
15
+ - 📋 **list_memory** - List recent memories in chronological order
16
+ - đŸ—‘ī¸ **delete_memory** - Remove outdated or incorrect memories
15
17
  - â„šī¸ **get_account_info** - Check connection status and agent info
18
+ - 📝 **Prompts** - Pre-built templates for common workflows
16
19
 
17
20
  ## 🚀 Quick Start
18
21
 
@@ -96,6 +99,29 @@ Search historical memories before responding.
96
99
 
97
100
  **Workflow:** `search` → `review results` → `generate informed response`
98
101
 
102
+ ### list_memory
103
+
104
+ List recent memories in chronological order (newest first).
105
+
106
+ **Use when:**
107
+ - Reviewing what has been stored
108
+ - Getting context at the start of a conversation
109
+ - Finding specific memories when unsure of keywords
110
+
111
+ **Parameters:**
112
+ - `limit` - Number of memories to return (default: 20)
113
+
114
+ ### delete_memory
115
+
116
+ Delete a specific memory by ID.
117
+
118
+ **Use when:**
119
+ - User explicitly asks to forget something
120
+ - You find outdated or incorrect information
121
+
122
+ **Parameters:**
123
+ - `memory_id` - The ID of the memory to delete (from list_memory or search_memory)
124
+
99
125
  ### get_account_info
100
126
 
101
127
  Get current connection status including:
@@ -103,6 +129,60 @@ Get current connection status including:
103
129
  - Agent ID
104
130
  - Queue length
105
131
 
132
+ ## 📝 Prompts
133
+
134
+ Pre-built templates for common memory workflows:
135
+
136
+ | Prompt | Description | Use Case |
137
+ |--------|-------------|----------|
138
+ | `start-with-memory` | Retrieve recent memories | Beginning of a new session |
139
+ | `archive-session` | Extract and save key points | End of a conversation |
140
+ | `recall-context` | Recall context from memory | Before responding to questions |
141
+
142
+ ### start-with-memory
143
+
144
+ Use at the start of a new conversation to restore context:
145
+
146
+ ```
147
+ As my personal assistant at the start of a new conversation,
148
+ please first read the memoryx://memories/recent resource to retrieve my recent memories.
149
+ Based on retrieved information, briefly summarize what we've been working on
150
+ and ask about my next plans.
151
+ ```
152
+
153
+ ### archive-session
154
+
155
+ Use at the end of a conversation to save important points:
156
+
157
+ ```
158
+ Please review this conversation about {topic}. Extract:
159
+ 1. Key decisions made
160
+ 2. TODO items and action items
161
+ 3. Important facts mentioned by user
162
+ Use save_memory tool to store these in structured format.
163
+ ```
164
+
165
+ ### recall-context
166
+
167
+ Recall relevant context before responding:
168
+
169
+ ```
170
+ Please recall relevant context from memory about: "{topic}".
171
+ Call search_memory to retrieve related historical discussions,
172
+ then use that context to inform your response.
173
+ ```
174
+
175
+ ## 🔗 Resources
176
+
177
+ MCP Resources for direct access to memory data:
178
+
179
+ | Resource | Description |
180
+ |----------|-------------|
181
+ | `memoryx://status` | Connection status and queue info |
182
+ | `memoryx://memories/recent` | Recent 20 memories in chronological order |
183
+
184
+ LLM can read these resources directly via MCP's `ReadResource` API to get context without calling tools.
185
+
106
186
  ## 📁 Local Storage
107
187
 
108
188
  Data stored in `~/.memoryx/sdk/` (managed by SDK):
package/dist/index.js CHANGED
@@ -143,15 +143,50 @@ async function searchMemory(query, limit = 5) {
143
143
  return { memories: [], isLimited: false, remainingQuota: 0 };
144
144
  }
145
145
  }
146
+ async function listMemory(limit = 20) {
147
+ try {
148
+ const sdk = await getSDK();
149
+ const result = await sdk.list(limit, 0);
150
+ return {
151
+ memories: (result.data || []).map((m) => ({
152
+ id: m.id,
153
+ content: m.content,
154
+ category: m.category || "other"
155
+ })),
156
+ total: result.total || 0
157
+ };
158
+ }
159
+ catch (e) {
160
+ log(`listMemory failed: ${e}`);
161
+ return { memories: [], total: 0 };
162
+ }
163
+ }
164
+ async function deleteMemory(memoryId) {
165
+ if (!memoryId) {
166
+ return { success: false, message: "memory_id is required" };
167
+ }
168
+ try {
169
+ const sdk = await getSDK();
170
+ await sdk.delete(memoryId);
171
+ return { success: true, message: "Memory deleted successfully" };
172
+ }
173
+ catch (e) {
174
+ log(`deleteMemory failed: ${e}`);
175
+ return { success: false, message: String(e) };
176
+ }
177
+ }
146
178
  async function getAccountInfo() {
147
179
  try {
148
180
  const sdk = await getSDK();
149
- const info = await sdk.getAccountInfo();
150
181
  const stats = await sdk.getQueueStats();
182
+ // äŊŋᔍ SDK įš„ getAgentType() čŽˇå–æœŦåœ°å­˜å‚¨įš„ agentType
183
+ const agentType = sdk.getAgentType();
184
+ const agentId = sdk.getAgentId();
185
+ const apiKey = sdk.getApiKey();
151
186
  return {
152
- apiKey: info?.apiKey ? `${info.apiKey.slice(0, 8)}...` : null,
153
- agentId: info?.agentId || null,
154
- agentType: info?.quota?.agent_type || null,
187
+ apiKey: apiKey ? `${apiKey.slice(0, 8)}...` : null,
188
+ agentId: agentId || null,
189
+ agentType: agentType || null,
155
190
  queueLength: stats.messageCount
156
191
  };
157
192
  }
@@ -167,12 +202,95 @@ async function getAccountInfo() {
167
202
  }
168
203
  const server = new index_js_1.Server({
169
204
  name: "memoryx-mcp-server",
170
- version: "2.0.0",
205
+ version: "2.1.0",
171
206
  }, {
172
207
  capabilities: {
173
208
  tools: {},
174
209
  resources: {},
210
+ prompts: {},
211
+ },
212
+ });
213
+ // Prompt templates
214
+ const PROMPTS = [
215
+ {
216
+ name: "start-with-memory",
217
+ description: "Start a new conversation by retrieving recent memories to restore context. Use this at the beginning of a session.",
218
+ arguments: []
175
219
  },
220
+ {
221
+ name: "archive-session",
222
+ description: "Archive the current conversation by extracting key decisions, TODOs, and facts. Use this at the end of a session.",
223
+ arguments: [
224
+ {
225
+ name: "topic",
226
+ description: "The main topic or theme of the conversation",
227
+ required: true
228
+ }
229
+ ]
230
+ },
231
+ {
232
+ name: "recall-context",
233
+ description: "Recall relevant context from memory before responding. Activates memory retrieval by searching historical memories related to the topic. Use this to ensure responses are informed by past discussions.",
234
+ arguments: [
235
+ {
236
+ name: "topic",
237
+ description: "The topic or question to recall context for",
238
+ required: true
239
+ }
240
+ ]
241
+ }
242
+ ];
243
+ server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
244
+ return { prompts: PROMPTS };
245
+ });
246
+ server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
247
+ const { name, arguments: args } = request.params;
248
+ switch (name) {
249
+ case "start-with-memory":
250
+ return {
251
+ messages: [
252
+ {
253
+ role: "user",
254
+ content: {
255
+ type: "text",
256
+ text: "As my personal assistant at the start of a new conversation, please first read the memoryx://memories/recent resource to retrieve my recent memories. Based on retrieved information, briefly summarize what we've been working on and ask about my next plans. This helps maintain context across sessions."
257
+ }
258
+ }
259
+ ]
260
+ };
261
+ case "archive-session":
262
+ const topic = args?.topic || "this conversation";
263
+ return {
264
+ messages: [
265
+ {
266
+ role: "user",
267
+ content: {
268
+ type: "text",
269
+ text: `Please review this conversation about ${topic}. Extract:
270
+ 1. Key decisions made
271
+ 2. TODO items and action items
272
+ 3. Important facts mentioned by user
273
+ Use save_memory tool to store these in structured format with tags: ${topic} and today's date. Keep the summary concise (under 100 words).`
274
+ }
275
+ }
276
+ ]
277
+ };
278
+ case "recall-context":
279
+ const recallTopic = args?.topic || "";
280
+ return {
281
+ messages: [
282
+ {
283
+ role: "user",
284
+ content: {
285
+ type: "text",
286
+ text: `Please recall relevant context from memory about: "${recallTopic}". Call search_memory to retrieve related historical discussions, then use that context to inform your response. This ensures consistency with past conversations.`
287
+ }
288
+ }
289
+ ]
290
+ };
291
+ default:
292
+ throw new Error(`Unknown prompt: ${name}`);
293
+ }
176
294
  });
177
295
  server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
178
296
  return {
@@ -214,6 +332,34 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
214
332
  required: ["query"]
215
333
  }
216
334
  },
335
+ {
336
+ name: "list_memory",
337
+ description: "List recent memories in chronological order (newest first). Use this to: (1) Review what has been stored; (2) Get context at the start of a conversation; (3) Find specific memories when you're unsure of keywords. Returns memory id, content, and category.",
338
+ inputSchema: {
339
+ type: "object",
340
+ properties: {
341
+ limit: {
342
+ type: "number",
343
+ description: "Number of memories to return, default 20",
344
+ default: 20
345
+ }
346
+ }
347
+ }
348
+ },
349
+ {
350
+ name: "delete_memory",
351
+ description: "Delete a specific memory by ID. Use when: (1) User explicitly asks to forget something; (2) You find outdated or incorrect information. Requires memory_id from list_memory or search_memory results.",
352
+ inputSchema: {
353
+ type: "object",
354
+ properties: {
355
+ memory_id: {
356
+ type: "string",
357
+ description: "The ID of the memory to delete"
358
+ }
359
+ },
360
+ required: ["memory_id"]
361
+ }
362
+ },
217
363
  {
218
364
  name: "get_account_info",
219
365
  description: "Get current MemoryX account info including API Key, Agent ID, and queue status.",
@@ -254,6 +400,30 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
254
400
  ]
255
401
  };
256
402
  }
403
+ case "list_memory": {
404
+ const limit = args?.limit || 20;
405
+ const result = await listMemory(limit);
406
+ return {
407
+ content: [
408
+ {
409
+ type: "text",
410
+ text: JSON.stringify(result, null, 2)
411
+ }
412
+ ]
413
+ };
414
+ }
415
+ case "delete_memory": {
416
+ const memoryId = args?.memory_id;
417
+ const result = await deleteMemory(memoryId);
418
+ return {
419
+ content: [
420
+ {
421
+ type: "text",
422
+ text: JSON.stringify(result, null, 2)
423
+ }
424
+ ]
425
+ };
426
+ }
257
427
  case "get_account_info": {
258
428
  const result = await getAccountInfo();
259
429
  return {
@@ -277,6 +447,12 @@ server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
277
447
  name: "MemoryX Status",
278
448
  description: "Current MemoryX connection status and queue info",
279
449
  mimeType: "application/json"
450
+ },
451
+ {
452
+ uri: "memoryx://memories/recent",
453
+ name: "Recent Memories",
454
+ description: "List of recent memories (last 20) in chronological order",
455
+ mimeType: "application/json"
280
456
  }
281
457
  ]
282
458
  };
@@ -295,12 +471,24 @@ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) =
295
471
  ]
296
472
  };
297
473
  }
474
+ if (uri === "memoryx://memories/recent") {
475
+ const result = await listMemory(20);
476
+ return {
477
+ contents: [
478
+ {
479
+ uri,
480
+ mimeType: "application/json",
481
+ text: JSON.stringify(result, null, 2)
482
+ }
483
+ ]
484
+ };
485
+ }
298
486
  throw new Error(`Unknown resource: ${uri}`);
299
487
  });
300
488
  async function main() {
301
489
  const transport = new stdio_js_1.StdioServerTransport();
302
490
  await server.connect(transport);
303
- log("MemoryX MCP Server v2.0.0 started (powered by SDK)");
491
+ log("MemoryX MCP Server v2.1.0 started (powered by SDK)");
304
492
  }
305
493
  main().catch((error) => {
306
494
  console.error("Fatal error:", error);
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.0.3",
3
+ "version": "2.1.1",
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": {
package/src/index.ts CHANGED
@@ -22,6 +22,8 @@ import {
22
22
  ListToolsRequestSchema,
23
23
  ListResourcesRequestSchema,
24
24
  ReadResourceRequestSchema,
25
+ ListPromptsRequestSchema,
26
+ GetPromptRequestSchema,
25
27
  } from "@modelcontextprotocol/sdk/types.js";
26
28
  import * as path from "path";
27
29
  import * as os from "os";
@@ -135,6 +137,44 @@ async function searchMemory(query: string, limit: number = 5): Promise<{
135
137
  }
136
138
  }
137
139
 
140
+ async function listMemory(limit: number = 20): Promise<{
141
+ memories: any[];
142
+ total: number;
143
+ }> {
144
+ try {
145
+ const sdk = await getSDK();
146
+ const result = await sdk.list(limit, 0);
147
+
148
+ return {
149
+ memories: (result.data || []).map((m: any) => ({
150
+ id: m.id,
151
+ content: m.content,
152
+ category: m.category || "other"
153
+ })),
154
+ total: result.total || 0
155
+ };
156
+ } catch (e) {
157
+ log(`listMemory failed: ${e}`);
158
+ return { memories: [], total: 0 };
159
+ }
160
+ }
161
+
162
+ async function deleteMemory(memoryId: string): Promise<{ success: boolean; message: string }> {
163
+ if (!memoryId) {
164
+ return { success: false, message: "memory_id is required" };
165
+ }
166
+
167
+ try {
168
+ const sdk = await getSDK();
169
+ await sdk.delete(memoryId);
170
+
171
+ return { success: true, message: "Memory deleted successfully" };
172
+ } catch (e) {
173
+ log(`deleteMemory failed: ${e}`);
174
+ return { success: false, message: String(e) };
175
+ }
176
+ }
177
+
138
178
  async function getAccountInfo(): Promise<{
139
179
  apiKey: string | null;
140
180
  agentId: string | null;
@@ -143,13 +183,17 @@ async function getAccountInfo(): Promise<{
143
183
  }> {
144
184
  try {
145
185
  const sdk = await getSDK();
146
- const info = await sdk.getAccountInfo();
147
186
  const stats = await sdk.getQueueStats();
148
187
 
188
+ // äŊŋᔍ SDK įš„ getAgentType() čŽˇå–æœŦåœ°å­˜å‚¨įš„ agentType
189
+ const agentType = sdk.getAgentType();
190
+ const agentId = sdk.getAgentId();
191
+ const apiKey = sdk.getApiKey();
192
+
149
193
  return {
150
- apiKey: info?.apiKey ? `${info.apiKey.slice(0, 8)}...` : null,
151
- agentId: info?.agentId || null,
152
- agentType: info?.quota?.agent_type || null,
194
+ apiKey: apiKey ? `${apiKey.slice(0, 8)}...` : null,
195
+ agentId: agentId || null,
196
+ agentType: agentType || null,
153
197
  queueLength: stats.messageCount
154
198
  };
155
199
  } catch (e) {
@@ -166,16 +210,106 @@ async function getAccountInfo(): Promise<{
166
210
  const server = new Server(
167
211
  {
168
212
  name: "memoryx-mcp-server",
169
- version: "2.0.0",
213
+ version: "2.1.0",
170
214
  },
171
215
  {
172
216
  capabilities: {
173
217
  tools: {},
174
218
  resources: {},
219
+ prompts: {},
175
220
  },
176
221
  }
177
222
  );
178
223
 
224
+ // Prompt templates
225
+ const PROMPTS = [
226
+ {
227
+ name: "start-with-memory",
228
+ description: "Start a new conversation by retrieving recent memories to restore context. Use this at the beginning of a session.",
229
+ arguments: []
230
+ },
231
+ {
232
+ name: "archive-session",
233
+ description: "Archive the current conversation by extracting key decisions, TODOs, and facts. Use this at the end of a session.",
234
+ arguments: [
235
+ {
236
+ name: "topic",
237
+ description: "The main topic or theme of the conversation",
238
+ required: true
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ name: "recall-context",
244
+ description: "Recall relevant context from memory before responding. Activates memory retrieval by searching historical memories related to the topic. Use this to ensure responses are informed by past discussions.",
245
+ arguments: [
246
+ {
247
+ name: "topic",
248
+ description: "The topic or question to recall context for",
249
+ required: true
250
+ }
251
+ ]
252
+ }
253
+ ];
254
+
255
+ server.setRequestHandler(ListPromptsRequestSchema, async () => {
256
+ return { prompts: PROMPTS };
257
+ });
258
+
259
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
260
+ const { name, arguments: args } = request.params;
261
+
262
+ switch (name) {
263
+ case "start-with-memory":
264
+ return {
265
+ messages: [
266
+ {
267
+ role: "user",
268
+ content: {
269
+ type: "text",
270
+ text: "As my personal assistant at the start of a new conversation, please first read the memoryx://memories/recent resource to retrieve my recent memories. Based on retrieved information, briefly summarize what we've been working on and ask about my next plans. This helps maintain context across sessions."
271
+ }
272
+ }
273
+ ]
274
+ };
275
+
276
+ case "archive-session":
277
+ const topic = args?.topic || "this conversation";
278
+ return {
279
+ messages: [
280
+ {
281
+ role: "user",
282
+ content: {
283
+ type: "text",
284
+ text: `Please review this conversation about ${topic}. Extract:
285
+ 1. Key decisions made
286
+ 2. TODO items and action items
287
+ 3. Important facts mentioned by user
288
+ Use save_memory tool to store these in structured format with tags: ${topic} and today's date. Keep the summary concise (under 100 words).`
289
+ }
290
+ }
291
+ ]
292
+ };
293
+
294
+ case "recall-context":
295
+ const recallTopic = args?.topic || "";
296
+ return {
297
+ messages: [
298
+ {
299
+ role: "user",
300
+ content: {
301
+ type: "text",
302
+ text: `Please recall relevant context from memory about: "${recallTopic}". Call search_memory to retrieve related historical discussions, then use that context to inform your response. This ensures consistency with past conversations.`
303
+ }
304
+ }
305
+ ]
306
+ };
307
+
308
+ default:
309
+ throw new Error(`Unknown prompt: ${name}`);
310
+ }
311
+ });
312
+
179
313
  server.setRequestHandler(ListToolsRequestSchema, async () => {
180
314
  return {
181
315
  tools: [
@@ -216,6 +350,34 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
216
350
  required: ["query"]
217
351
  }
218
352
  },
353
+ {
354
+ name: "list_memory",
355
+ description: "List recent memories in chronological order (newest first). Use this to: (1) Review what has been stored; (2) Get context at the start of a conversation; (3) Find specific memories when you're unsure of keywords. Returns memory id, content, and category.",
356
+ inputSchema: {
357
+ type: "object",
358
+ properties: {
359
+ limit: {
360
+ type: "number",
361
+ description: "Number of memories to return, default 20",
362
+ default: 20
363
+ }
364
+ }
365
+ }
366
+ },
367
+ {
368
+ name: "delete_memory",
369
+ description: "Delete a specific memory by ID. Use when: (1) User explicitly asks to forget something; (2) You find outdated or incorrect information. Requires memory_id from list_memory or search_memory results.",
370
+ inputSchema: {
371
+ type: "object",
372
+ properties: {
373
+ memory_id: {
374
+ type: "string",
375
+ description: "The ID of the memory to delete"
376
+ }
377
+ },
378
+ required: ["memory_id"]
379
+ }
380
+ },
219
381
  {
220
382
  name: "get_account_info",
221
383
  description: "Get current MemoryX account info including API Key, Agent ID, and queue status.",
@@ -260,6 +422,32 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
260
422
  };
261
423
  }
262
424
 
425
+ case "list_memory": {
426
+ const limit = (args?.limit as number) || 20;
427
+ const result = await listMemory(limit);
428
+ return {
429
+ content: [
430
+ {
431
+ type: "text",
432
+ text: JSON.stringify(result, null, 2)
433
+ }
434
+ ]
435
+ };
436
+ }
437
+
438
+ case "delete_memory": {
439
+ const memoryId = args?.memory_id as string;
440
+ const result = await deleteMemory(memoryId);
441
+ return {
442
+ content: [
443
+ {
444
+ type: "text",
445
+ text: JSON.stringify(result, null, 2)
446
+ }
447
+ ]
448
+ };
449
+ }
450
+
263
451
  case "get_account_info": {
264
452
  const result = await getAccountInfo();
265
453
  return {
@@ -285,6 +473,12 @@ server.setRequestHandler(ListResourcesRequestSchema, async () => {
285
473
  name: "MemoryX Status",
286
474
  description: "Current MemoryX connection status and queue info",
287
475
  mimeType: "application/json"
476
+ },
477
+ {
478
+ uri: "memoryx://memories/recent",
479
+ name: "Recent Memories",
480
+ description: "List of recent memories (last 20) in chronological order",
481
+ mimeType: "application/json"
288
482
  }
289
483
  ]
290
484
  };
@@ -306,6 +500,19 @@ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
306
500
  };
307
501
  }
308
502
 
503
+ if (uri === "memoryx://memories/recent") {
504
+ const result = await listMemory(20);
505
+ return {
506
+ contents: [
507
+ {
508
+ uri,
509
+ mimeType: "application/json",
510
+ text: JSON.stringify(result, null, 2)
511
+ }
512
+ ]
513
+ };
514
+ }
515
+
309
516
  throw new Error(`Unknown resource: ${uri}`);
310
517
  });
311
518
 
@@ -313,7 +520,7 @@ async function main() {
313
520
  const transport = new StdioServerTransport();
314
521
  await server.connect(transport);
315
522
 
316
- log("MemoryX MCP Server v2.0.0 started (powered by SDK)");
523
+ log("MemoryX MCP Server v2.1.0 started (powered by SDK)");
317
524
  }
318
525
 
319
526
  main().catch((error) => {