@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 +81 -1
- package/dist/index.js +194 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +213 -6
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:
|
|
153
|
-
agentId:
|
|
154
|
-
agentType:
|
|
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.
|
|
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.
|
|
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
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:
|
|
151
|
-
agentId:
|
|
152
|
-
agentType:
|
|
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.
|
|
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.
|
|
523
|
+
log("MemoryX MCP Server v2.1.0 started (powered by SDK)");
|
|
317
524
|
}
|
|
318
525
|
|
|
319
526
|
main().catch((error) => {
|