@t0ken.ai/memoryx-mcp-server 2.0.2 â 2.1.0
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 +157 -53
- package/dist/index.js +187 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +205 -2
package/README.md
CHANGED
|
@@ -1,44 +1,31 @@
|
|
|
1
|
-
# MemoryX MCP Server
|
|
1
|
+
# đ§ MemoryX MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@t0ken.ai/memoryx-mcp-server)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
**Give your AI assistants long-term memory via Model Context Protocol.**
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
MemoryX MCP Server enables Cursor, VS Code, Claude Desktop, and other MCP clients to store and retrieve memories across conversations.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
- **search_memory**: Search historical memories
|
|
11
|
-
- **get_account_info**: Get account information
|
|
10
|
+
## ⨠Features
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
- đ **Zero Config** - Auto-registers on first use, no API key needed
|
|
13
|
+
- đ **save_memory** - Store important information with automatic categorization
|
|
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
|
|
17
|
+
- âšī¸ **get_account_info** - Check connection status and agent info
|
|
18
|
+
- đ **Prompts** - Pre-built templates for common workflows
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
- MCP mode: LLM summarizes and sends single memory additions
|
|
17
|
-
- Server extracts entities directly without LLM summarization
|
|
18
|
-
- Trigger: 20k tokens or 1 minute idle
|
|
19
|
-
- Automatic retry mechanism
|
|
20
|
-
- Offline support
|
|
20
|
+
## đ Quick Start
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
### Option 1: NPM Install
|
|
22
|
+
### Install
|
|
25
23
|
|
|
26
24
|
```bash
|
|
27
25
|
npm install -g @t0ken.ai/memoryx-mcp-server
|
|
28
26
|
```
|
|
29
27
|
|
|
30
|
-
###
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
cd plugins/memoryx-mcp-server
|
|
34
|
-
npm install
|
|
35
|
-
npm run build
|
|
36
|
-
npm link
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Configuration
|
|
40
|
-
|
|
41
|
-
### Cursor / VS Code
|
|
28
|
+
### Configure Cursor / VS Code
|
|
42
29
|
|
|
43
30
|
Add to `~/.cursor/mcp.json` or VS Code MCP config:
|
|
44
31
|
|
|
@@ -46,61 +33,178 @@ Add to `~/.cursor/mcp.json` or VS Code MCP config:
|
|
|
46
33
|
{
|
|
47
34
|
"mcpServers": {
|
|
48
35
|
"memoryx": {
|
|
49
|
-
"command": "memoryx-mcp-server"
|
|
50
|
-
"env": {
|
|
51
|
-
"MEMORYX_API_KEY": "your_api_key_here",
|
|
52
|
-
"MEMORYX_URL": "https://t0ken.ai/api"
|
|
53
|
-
}
|
|
36
|
+
"command": "memoryx-mcp-server"
|
|
54
37
|
}
|
|
55
38
|
}
|
|
56
39
|
}
|
|
57
40
|
```
|
|
58
41
|
|
|
59
|
-
|
|
42
|
+
**That's it!** The server auto-registers on first use - no additional configuration needed.
|
|
60
43
|
|
|
61
|
-
|
|
44
|
+
### Configure Claude Desktop
|
|
62
45
|
|
|
63
46
|
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
47
|
+
|
|
64
48
|
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
65
49
|
|
|
66
50
|
```json
|
|
67
51
|
{
|
|
68
52
|
"mcpServers": {
|
|
69
53
|
"memoryx": {
|
|
70
|
-
"command": "memoryx-mcp-server"
|
|
71
|
-
"env": {
|
|
72
|
-
"MEMORYX_API_KEY": "your_api_key_here"
|
|
73
|
-
}
|
|
54
|
+
"command": "memoryx-mcp-server"
|
|
74
55
|
}
|
|
75
56
|
}
|
|
76
57
|
}
|
|
77
58
|
```
|
|
78
59
|
|
|
79
|
-
##
|
|
60
|
+
## đ Tools
|
|
61
|
+
|
|
62
|
+
### save_memory
|
|
63
|
+
|
|
64
|
+
Save information to long-term memory.
|
|
65
|
+
|
|
66
|
+
**When to call (automatic triggers):**
|
|
67
|
+
1. User explicitly says "remember", "note this", "don't forget"
|
|
68
|
+
2. User corrects your error (store the correct version)
|
|
69
|
+
3. User expresses preferences (I like/hate/usually...)
|
|
70
|
+
4. User mentions important experiences or future plans
|
|
71
|
+
5. End of conversation - generate a 100-word summary
|
|
72
|
+
|
|
73
|
+
**Categories (use in metadata.category):**
|
|
74
|
+
- `semantic` - facts, knowledge, user preferences
|
|
75
|
+
- `episodic` - specific events, experiences
|
|
76
|
+
- `procedural` - skills, methods, how-to steps
|
|
77
|
+
- `emotional` - feelings, emotional states
|
|
78
|
+
- `reflective` - insights, patterns, lessons learned
|
|
79
|
+
|
|
80
|
+
**Example:**
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"content": "User prefers dark theme in VS Code",
|
|
84
|
+
"metadata": {
|
|
85
|
+
"category": "semantic",
|
|
86
|
+
"tags": ["preference", "editor"]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### search_memory
|
|
92
|
+
|
|
93
|
+
Search historical memories before responding.
|
|
94
|
+
|
|
95
|
+
**Always call BEFORE:**
|
|
96
|
+
- Answering questions about user preferences/history
|
|
97
|
+
- Topics that might relate to past conversations
|
|
98
|
+
- Any personalized response needed
|
|
99
|
+
|
|
100
|
+
**Workflow:** `search` â `review results` â `generate informed response`
|
|
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
|
|
80
115
|
|
|
81
|
-
|
|
116
|
+
Delete a specific memory by ID.
|
|
82
117
|
|
|
83
|
-
|
|
118
|
+
**Use when:**
|
|
119
|
+
- User explicitly asks to forget something
|
|
120
|
+
- You find outdated or incorrect information
|
|
84
121
|
|
|
85
|
-
|
|
122
|
+
**Parameters:**
|
|
123
|
+
- `memory_id` - The ID of the memory to delete (from list_memory or search_memory)
|
|
86
124
|
|
|
87
|
-
|
|
88
|
-
2. Login and copy API Key
|
|
89
|
-
3. Configure environment variable `MEMORYX_API_KEY`
|
|
125
|
+
### get_account_info
|
|
90
126
|
|
|
91
|
-
|
|
127
|
+
Get current connection status including:
|
|
128
|
+
- API Key (masked)
|
|
129
|
+
- Agent ID
|
|
130
|
+
- Queue length
|
|
92
131
|
|
|
93
|
-
|
|
132
|
+
## đ Prompts
|
|
94
133
|
|
|
95
|
-
|
|
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
|
+
|
|
186
|
+
## đ Local Storage
|
|
187
|
+
|
|
188
|
+
Data stored in `~/.memoryx/sdk/` (managed by SDK):
|
|
189
|
+
- `memoryx.db` - SQLite database with agent info, queue, and cached data
|
|
190
|
+
|
|
191
|
+
## đ MCP Mode vs OpenClaw Mode
|
|
96
192
|
|
|
97
193
|
| Feature | MCP Server | OpenClaw Plugin |
|
|
98
194
|
|---------|------------|-----------------|
|
|
99
195
|
| Data Source | LLM summarized single additions | Bidirectional conversation flow |
|
|
100
196
|
| Server Processing | Direct entity extraction | LLM summarization then extraction |
|
|
101
|
-
| Trigger
|
|
197
|
+
| Trigger | 20k tokens / 1 min idle | 30k tokens / 5 min idle |
|
|
102
198
|
| Use Case | Cursor/Claude Desktop | OpenClaw Gateway |
|
|
103
199
|
|
|
104
|
-
##
|
|
200
|
+
## đ More Resources
|
|
201
|
+
|
|
202
|
+
- [MemoryX Platform](https://t0ken.ai)
|
|
203
|
+
- [Documentation](https://docs.t0ken.ai)
|
|
204
|
+
- [Node.js SDK](https://www.npmjs.com/package/@t0ken.ai/memoryx-sdk)
|
|
205
|
+
- [Python SDK](https://pypi.org/project/t0ken-memoryx/)
|
|
206
|
+
- [GitHub](https://github.com/t0ken-ai/MemoryX)
|
|
207
|
+
|
|
208
|
+
## đ License
|
|
105
209
|
|
|
106
|
-
MIT
|
|
210
|
+
MIT Š MemoryX Team
|
package/dist/index.js
CHANGED
|
@@ -143,6 +143,38 @@ 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();
|
|
@@ -167,12 +199,95 @@ async function getAccountInfo() {
|
|
|
167
199
|
}
|
|
168
200
|
const server = new index_js_1.Server({
|
|
169
201
|
name: "memoryx-mcp-server",
|
|
170
|
-
version: "2.
|
|
202
|
+
version: "2.1.0",
|
|
171
203
|
}, {
|
|
172
204
|
capabilities: {
|
|
173
205
|
tools: {},
|
|
174
206
|
resources: {},
|
|
207
|
+
prompts: {},
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
// Prompt templates
|
|
211
|
+
const PROMPTS = [
|
|
212
|
+
{
|
|
213
|
+
name: "start-with-memory",
|
|
214
|
+
description: "Start a new conversation by retrieving recent memories to restore context. Use this at the beginning of a session.",
|
|
215
|
+
arguments: []
|
|
175
216
|
},
|
|
217
|
+
{
|
|
218
|
+
name: "archive-session",
|
|
219
|
+
description: "Archive the current conversation by extracting key decisions, TODOs, and facts. Use this at the end of a session.",
|
|
220
|
+
arguments: [
|
|
221
|
+
{
|
|
222
|
+
name: "topic",
|
|
223
|
+
description: "The main topic or theme of the conversation",
|
|
224
|
+
required: true
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: "recall-context",
|
|
230
|
+
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.",
|
|
231
|
+
arguments: [
|
|
232
|
+
{
|
|
233
|
+
name: "topic",
|
|
234
|
+
description: "The topic or question to recall context for",
|
|
235
|
+
required: true
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
}
|
|
239
|
+
];
|
|
240
|
+
server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
|
|
241
|
+
return { prompts: PROMPTS };
|
|
242
|
+
});
|
|
243
|
+
server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
|
|
244
|
+
const { name, arguments: args } = request.params;
|
|
245
|
+
switch (name) {
|
|
246
|
+
case "start-with-memory":
|
|
247
|
+
return {
|
|
248
|
+
messages: [
|
|
249
|
+
{
|
|
250
|
+
role: "user",
|
|
251
|
+
content: {
|
|
252
|
+
type: "text",
|
|
253
|
+
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."
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
]
|
|
257
|
+
};
|
|
258
|
+
case "archive-session":
|
|
259
|
+
const topic = args?.topic || "this conversation";
|
|
260
|
+
return {
|
|
261
|
+
messages: [
|
|
262
|
+
{
|
|
263
|
+
role: "user",
|
|
264
|
+
content: {
|
|
265
|
+
type: "text",
|
|
266
|
+
text: `Please review this conversation about ${topic}. Extract:
|
|
267
|
+
1. Key decisions made
|
|
268
|
+
2. TODO items and action items
|
|
269
|
+
3. Important facts mentioned by user
|
|
270
|
+
Use save_memory tool to store these in structured format with tags: ${topic} and today's date. Keep the summary concise (under 100 words).`
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
]
|
|
274
|
+
};
|
|
275
|
+
case "recall-context":
|
|
276
|
+
const recallTopic = args?.topic || "";
|
|
277
|
+
return {
|
|
278
|
+
messages: [
|
|
279
|
+
{
|
|
280
|
+
role: "user",
|
|
281
|
+
content: {
|
|
282
|
+
type: "text",
|
|
283
|
+
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.`
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
]
|
|
287
|
+
};
|
|
288
|
+
default:
|
|
289
|
+
throw new Error(`Unknown prompt: ${name}`);
|
|
290
|
+
}
|
|
176
291
|
});
|
|
177
292
|
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
178
293
|
return {
|
|
@@ -214,6 +329,34 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
|
214
329
|
required: ["query"]
|
|
215
330
|
}
|
|
216
331
|
},
|
|
332
|
+
{
|
|
333
|
+
name: "list_memory",
|
|
334
|
+
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.",
|
|
335
|
+
inputSchema: {
|
|
336
|
+
type: "object",
|
|
337
|
+
properties: {
|
|
338
|
+
limit: {
|
|
339
|
+
type: "number",
|
|
340
|
+
description: "Number of memories to return, default 20",
|
|
341
|
+
default: 20
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
name: "delete_memory",
|
|
348
|
+
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.",
|
|
349
|
+
inputSchema: {
|
|
350
|
+
type: "object",
|
|
351
|
+
properties: {
|
|
352
|
+
memory_id: {
|
|
353
|
+
type: "string",
|
|
354
|
+
description: "The ID of the memory to delete"
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
required: ["memory_id"]
|
|
358
|
+
}
|
|
359
|
+
},
|
|
217
360
|
{
|
|
218
361
|
name: "get_account_info",
|
|
219
362
|
description: "Get current MemoryX account info including API Key, Agent ID, and queue status.",
|
|
@@ -254,6 +397,30 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
254
397
|
]
|
|
255
398
|
};
|
|
256
399
|
}
|
|
400
|
+
case "list_memory": {
|
|
401
|
+
const limit = args?.limit || 20;
|
|
402
|
+
const result = await listMemory(limit);
|
|
403
|
+
return {
|
|
404
|
+
content: [
|
|
405
|
+
{
|
|
406
|
+
type: "text",
|
|
407
|
+
text: JSON.stringify(result, null, 2)
|
|
408
|
+
}
|
|
409
|
+
]
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
case "delete_memory": {
|
|
413
|
+
const memoryId = args?.memory_id;
|
|
414
|
+
const result = await deleteMemory(memoryId);
|
|
415
|
+
return {
|
|
416
|
+
content: [
|
|
417
|
+
{
|
|
418
|
+
type: "text",
|
|
419
|
+
text: JSON.stringify(result, null, 2)
|
|
420
|
+
}
|
|
421
|
+
]
|
|
422
|
+
};
|
|
423
|
+
}
|
|
257
424
|
case "get_account_info": {
|
|
258
425
|
const result = await getAccountInfo();
|
|
259
426
|
return {
|
|
@@ -277,6 +444,12 @@ server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
|
|
|
277
444
|
name: "MemoryX Status",
|
|
278
445
|
description: "Current MemoryX connection status and queue info",
|
|
279
446
|
mimeType: "application/json"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
uri: "memoryx://memories/recent",
|
|
450
|
+
name: "Recent Memories",
|
|
451
|
+
description: "List of recent memories (last 20) in chronological order",
|
|
452
|
+
mimeType: "application/json"
|
|
280
453
|
}
|
|
281
454
|
]
|
|
282
455
|
};
|
|
@@ -295,12 +468,24 @@ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) =
|
|
|
295
468
|
]
|
|
296
469
|
};
|
|
297
470
|
}
|
|
471
|
+
if (uri === "memoryx://memories/recent") {
|
|
472
|
+
const result = await listMemory(20);
|
|
473
|
+
return {
|
|
474
|
+
contents: [
|
|
475
|
+
{
|
|
476
|
+
uri,
|
|
477
|
+
mimeType: "application/json",
|
|
478
|
+
text: JSON.stringify(result, null, 2)
|
|
479
|
+
}
|
|
480
|
+
]
|
|
481
|
+
};
|
|
482
|
+
}
|
|
298
483
|
throw new Error(`Unknown resource: ${uri}`);
|
|
299
484
|
});
|
|
300
485
|
async function main() {
|
|
301
486
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
302
487
|
await server.connect(transport);
|
|
303
|
-
log("MemoryX MCP Server v2.
|
|
488
|
+
log("MemoryX MCP Server v2.1.0 started (powered by SDK)");
|
|
304
489
|
}
|
|
305
490
|
main().catch((error) => {
|
|
306
491
|
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;
|
|
@@ -166,16 +206,106 @@ async function getAccountInfo(): Promise<{
|
|
|
166
206
|
const server = new Server(
|
|
167
207
|
{
|
|
168
208
|
name: "memoryx-mcp-server",
|
|
169
|
-
version: "2.
|
|
209
|
+
version: "2.1.0",
|
|
170
210
|
},
|
|
171
211
|
{
|
|
172
212
|
capabilities: {
|
|
173
213
|
tools: {},
|
|
174
214
|
resources: {},
|
|
215
|
+
prompts: {},
|
|
175
216
|
},
|
|
176
217
|
}
|
|
177
218
|
);
|
|
178
219
|
|
|
220
|
+
// Prompt templates
|
|
221
|
+
const PROMPTS = [
|
|
222
|
+
{
|
|
223
|
+
name: "start-with-memory",
|
|
224
|
+
description: "Start a new conversation by retrieving recent memories to restore context. Use this at the beginning of a session.",
|
|
225
|
+
arguments: []
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
name: "archive-session",
|
|
229
|
+
description: "Archive the current conversation by extracting key decisions, TODOs, and facts. Use this at the end of a session.",
|
|
230
|
+
arguments: [
|
|
231
|
+
{
|
|
232
|
+
name: "topic",
|
|
233
|
+
description: "The main topic or theme of the conversation",
|
|
234
|
+
required: true
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: "recall-context",
|
|
240
|
+
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.",
|
|
241
|
+
arguments: [
|
|
242
|
+
{
|
|
243
|
+
name: "topic",
|
|
244
|
+
description: "The topic or question to recall context for",
|
|
245
|
+
required: true
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
];
|
|
250
|
+
|
|
251
|
+
server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
252
|
+
return { prompts: PROMPTS };
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
256
|
+
const { name, arguments: args } = request.params;
|
|
257
|
+
|
|
258
|
+
switch (name) {
|
|
259
|
+
case "start-with-memory":
|
|
260
|
+
return {
|
|
261
|
+
messages: [
|
|
262
|
+
{
|
|
263
|
+
role: "user",
|
|
264
|
+
content: {
|
|
265
|
+
type: "text",
|
|
266
|
+
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."
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
case "archive-session":
|
|
273
|
+
const topic = args?.topic || "this conversation";
|
|
274
|
+
return {
|
|
275
|
+
messages: [
|
|
276
|
+
{
|
|
277
|
+
role: "user",
|
|
278
|
+
content: {
|
|
279
|
+
type: "text",
|
|
280
|
+
text: `Please review this conversation about ${topic}. Extract:
|
|
281
|
+
1. Key decisions made
|
|
282
|
+
2. TODO items and action items
|
|
283
|
+
3. Important facts mentioned by user
|
|
284
|
+
Use save_memory tool to store these in structured format with tags: ${topic} and today's date. Keep the summary concise (under 100 words).`
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
]
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
case "recall-context":
|
|
291
|
+
const recallTopic = args?.topic || "";
|
|
292
|
+
return {
|
|
293
|
+
messages: [
|
|
294
|
+
{
|
|
295
|
+
role: "user",
|
|
296
|
+
content: {
|
|
297
|
+
type: "text",
|
|
298
|
+
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.`
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
default:
|
|
305
|
+
throw new Error(`Unknown prompt: ${name}`);
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
|
|
179
309
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
180
310
|
return {
|
|
181
311
|
tools: [
|
|
@@ -216,6 +346,34 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
216
346
|
required: ["query"]
|
|
217
347
|
}
|
|
218
348
|
},
|
|
349
|
+
{
|
|
350
|
+
name: "list_memory",
|
|
351
|
+
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.",
|
|
352
|
+
inputSchema: {
|
|
353
|
+
type: "object",
|
|
354
|
+
properties: {
|
|
355
|
+
limit: {
|
|
356
|
+
type: "number",
|
|
357
|
+
description: "Number of memories to return, default 20",
|
|
358
|
+
default: 20
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
name: "delete_memory",
|
|
365
|
+
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.",
|
|
366
|
+
inputSchema: {
|
|
367
|
+
type: "object",
|
|
368
|
+
properties: {
|
|
369
|
+
memory_id: {
|
|
370
|
+
type: "string",
|
|
371
|
+
description: "The ID of the memory to delete"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
required: ["memory_id"]
|
|
375
|
+
}
|
|
376
|
+
},
|
|
219
377
|
{
|
|
220
378
|
name: "get_account_info",
|
|
221
379
|
description: "Get current MemoryX account info including API Key, Agent ID, and queue status.",
|
|
@@ -260,6 +418,32 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
260
418
|
};
|
|
261
419
|
}
|
|
262
420
|
|
|
421
|
+
case "list_memory": {
|
|
422
|
+
const limit = (args?.limit as number) || 20;
|
|
423
|
+
const result = await listMemory(limit);
|
|
424
|
+
return {
|
|
425
|
+
content: [
|
|
426
|
+
{
|
|
427
|
+
type: "text",
|
|
428
|
+
text: JSON.stringify(result, null, 2)
|
|
429
|
+
}
|
|
430
|
+
]
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
case "delete_memory": {
|
|
435
|
+
const memoryId = args?.memory_id as string;
|
|
436
|
+
const result = await deleteMemory(memoryId);
|
|
437
|
+
return {
|
|
438
|
+
content: [
|
|
439
|
+
{
|
|
440
|
+
type: "text",
|
|
441
|
+
text: JSON.stringify(result, null, 2)
|
|
442
|
+
}
|
|
443
|
+
]
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
|
|
263
447
|
case "get_account_info": {
|
|
264
448
|
const result = await getAccountInfo();
|
|
265
449
|
return {
|
|
@@ -285,6 +469,12 @@ server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
|
285
469
|
name: "MemoryX Status",
|
|
286
470
|
description: "Current MemoryX connection status and queue info",
|
|
287
471
|
mimeType: "application/json"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
uri: "memoryx://memories/recent",
|
|
475
|
+
name: "Recent Memories",
|
|
476
|
+
description: "List of recent memories (last 20) in chronological order",
|
|
477
|
+
mimeType: "application/json"
|
|
288
478
|
}
|
|
289
479
|
]
|
|
290
480
|
};
|
|
@@ -306,6 +496,19 @@ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
|
306
496
|
};
|
|
307
497
|
}
|
|
308
498
|
|
|
499
|
+
if (uri === "memoryx://memories/recent") {
|
|
500
|
+
const result = await listMemory(20);
|
|
501
|
+
return {
|
|
502
|
+
contents: [
|
|
503
|
+
{
|
|
504
|
+
uri,
|
|
505
|
+
mimeType: "application/json",
|
|
506
|
+
text: JSON.stringify(result, null, 2)
|
|
507
|
+
}
|
|
508
|
+
]
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
|
|
309
512
|
throw new Error(`Unknown resource: ${uri}`);
|
|
310
513
|
});
|
|
311
514
|
|
|
@@ -313,7 +516,7 @@ async function main() {
|
|
|
313
516
|
const transport = new StdioServerTransport();
|
|
314
517
|
await server.connect(transport);
|
|
315
518
|
|
|
316
|
-
log("MemoryX MCP Server v2.
|
|
519
|
+
log("MemoryX MCP Server v2.1.0 started (powered by SDK)");
|
|
317
520
|
}
|
|
318
521
|
|
|
319
522
|
main().catch((error) => {
|