@slorenzot/memento-mcp-server 0.2.2 → 0.4.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 CHANGED
@@ -33,11 +33,14 @@ const server = new MCPServer('./data/memento.db');
33
33
 
34
34
  ### Shell/Bun
35
35
  ```bash
36
- # Ejecutar servidor MCP (usualmente llamado por clientes MCP)
37
- npm run --package @slorenzot/memento-mcp-server start
36
+ # Ejecutar servidor MCP (recomendado)
37
+ npx -p @slorenzot/memento-mcp-server
38
38
 
39
- # O usando npx
40
- npx -p @slorenzot/memento-mcp-server node mcp.js
39
+ # O usando bunx (si está instalado globalmente)
40
+ bunx @slorenzot/memento-mcp-server
41
+
42
+ # Usar con variable de entorno para base de datos personalizada
43
+ MEMENTO_DB_PATH=/custom/path/database.db npx -p @slorenzot/memento-mcp-server
41
44
  ```
42
45
 
43
46
  ## 🔧 API Esencial
@@ -0,0 +1,13 @@
1
+ export declare class MCPServer {
2
+ private server;
3
+ private memory;
4
+ private activeSession;
5
+ constructor(dbPath?: string);
6
+ private setupHandlers;
7
+ private getToolDefinitions;
8
+ private handleToolCall;
9
+ private getOrCreateSession;
10
+ start(): Promise<void>;
11
+ close(): void;
12
+ }
13
+ //# sourceMappingURL=MCPServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPServer.d.ts","sourceRoot":"","sources":["../src/MCPServer.ts"],"names":[],"mappings":"AAUA,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAwB;gBAEjC,MAAM,GAAE,MAA4B;IAShD,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,kBAAkB;YAqLZ,cAAc;YAkRd,kBAAkB;IAY1B,KAAK;IAKX,KAAK;CAGN"}
@@ -0,0 +1,481 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCPServer = void 0;
4
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
+ const memento_core_1 = require("@slorenzot/memento-core");
8
+ class MCPServer {
9
+ server;
10
+ memory;
11
+ activeSession = null;
12
+ constructor(dbPath = './data/memento.db') {
13
+ this.server = new index_js_1.Server({
14
+ name: 'memento-server',
15
+ version: '0.1.0',
16
+ });
17
+ this.memory = new memento_core_1.MemoryEngine(dbPath);
18
+ this.setupHandlers();
19
+ }
20
+ setupHandlers() {
21
+ this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
22
+ return {
23
+ tools: this.getToolDefinitions(),
24
+ };
25
+ });
26
+ this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
27
+ return this.handleToolCall(request.params.name, request.params.arguments);
28
+ });
29
+ }
30
+ getToolDefinitions() {
31
+ return [
32
+ {
33
+ name: 'mem_save',
34
+ description: 'Save an observation to memory',
35
+ inputSchema: {
36
+ type: 'object',
37
+ properties: {
38
+ title: { type: 'string', description: 'Title of the observation' },
39
+ content: { type: 'string', description: 'Content of the observation' },
40
+ type: {
41
+ type: 'string',
42
+ enum: ['decision', 'bug', 'discovery', 'note'],
43
+ description: 'Type of observation',
44
+ },
45
+ topic_key: { type: 'string', description: 'Topic key for grouping' },
46
+ project_id: { type: 'string', description: 'Project identifier' },
47
+ metadata: { type: 'object', description: 'Additional metadata' },
48
+ },
49
+ required: ['title', 'content', 'type', 'project_id'],
50
+ },
51
+ },
52
+ {
53
+ name: 'mem_update',
54
+ description: 'Update an existing observation',
55
+ inputSchema: {
56
+ type: 'object',
57
+ properties: {
58
+ id: { type: 'number', description: 'Observation ID' },
59
+ title: { type: 'string', description: 'New title' },
60
+ content: { type: 'string', description: 'New content' },
61
+ topic_key: { type: 'string', description: 'New topic key' },
62
+ metadata: { type: 'object', description: 'New metadata' },
63
+ },
64
+ required: ['id'],
65
+ },
66
+ },
67
+ {
68
+ name: 'mem_delete',
69
+ description: 'Delete an observation',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: {
73
+ id: { type: 'number', description: 'Observation ID' },
74
+ soft: { type: 'boolean', description: 'Soft delete (default: true)' },
75
+ },
76
+ required: ['id'],
77
+ },
78
+ },
79
+ {
80
+ name: 'mem_search',
81
+ description: 'Search observations',
82
+ inputSchema: {
83
+ type: 'object',
84
+ properties: {
85
+ query: { type: 'string', description: 'Full-text search query' },
86
+ type: {
87
+ type: 'string',
88
+ enum: ['decision', 'bug', 'discovery', 'note'],
89
+ description: 'Filter by type',
90
+ },
91
+ project_id: { type: 'string', description: 'Filter by project' },
92
+ topic_key: { type: 'string', description: 'Filter by topic' },
93
+ limit: { type: 'number', description: 'Result limit' },
94
+ offset: { type: 'number', description: 'Result offset' },
95
+ },
96
+ },
97
+ },
98
+ {
99
+ name: 'mem_get_observation',
100
+ description: 'Get observation by ID',
101
+ inputSchema: {
102
+ type: 'object',
103
+ properties: {
104
+ id: { type: 'number', description: 'Observation ID' },
105
+ },
106
+ required: ['id'],
107
+ },
108
+ },
109
+ {
110
+ name: 'mem_save_prompt',
111
+ description: 'Save a user prompt',
112
+ inputSchema: {
113
+ type: 'object',
114
+ properties: {
115
+ content: { type: 'string', description: 'Prompt content' },
116
+ project_id: { type: 'string', description: 'Project identifier' },
117
+ metadata: { type: 'object', description: 'Additional metadata' },
118
+ },
119
+ required: ['content', 'project_id'],
120
+ },
121
+ },
122
+ {
123
+ name: 'mem_session_summary',
124
+ description: 'Get current session summary',
125
+ inputSchema: {
126
+ type: 'object',
127
+ properties: {},
128
+ },
129
+ },
130
+ {
131
+ name: 'mem_context',
132
+ description: 'Get recent context',
133
+ inputSchema: {
134
+ type: 'object',
135
+ properties: {
136
+ project_id: { type: 'string', description: 'Filter by project' },
137
+ limit: { type: 'number', description: 'Number of recent items' },
138
+ },
139
+ },
140
+ },
141
+ {
142
+ name: 'mem_timeline',
143
+ description: 'Get timeline of observations',
144
+ inputSchema: {
145
+ type: 'object',
146
+ properties: {
147
+ project_id: { type: 'string', description: 'Filter by project' },
148
+ limit: { type: 'number', description: 'Result limit' },
149
+ offset: { type: 'number', description: 'Result offset' },
150
+ },
151
+ },
152
+ },
153
+ {
154
+ name: 'mem_stats',
155
+ description: 'Get memory statistics',
156
+ inputSchema: {
157
+ type: 'object',
158
+ properties: {},
159
+ },
160
+ },
161
+ {
162
+ name: 'mem_session_start',
163
+ description: 'Start a new session',
164
+ inputSchema: {
165
+ type: 'object',
166
+ properties: {
167
+ project_id: { type: 'string', description: 'Project identifier' },
168
+ metadata: { type: 'object', description: 'Session metadata' },
169
+ },
170
+ required: ['project_id'],
171
+ },
172
+ },
173
+ {
174
+ name: 'mem_session_end',
175
+ description: 'End current session',
176
+ inputSchema: {
177
+ type: 'object',
178
+ properties: {},
179
+ },
180
+ },
181
+ {
182
+ name: 'mem_suggest_topic_key',
183
+ description: 'Suggest a topic key based on content',
184
+ inputSchema: {
185
+ type: 'object',
186
+ properties: {
187
+ title: { type: 'string', description: 'Observation title' },
188
+ content: { type: 'string', description: 'Observation content' },
189
+ },
190
+ required: ['title'],
191
+ },
192
+ },
193
+ {
194
+ name: 'mem_capture_passive',
195
+ description: 'Passively capture context',
196
+ inputSchema: {
197
+ type: 'object',
198
+ properties: {
199
+ observations: {
200
+ type: 'array',
201
+ items: { type: 'string' },
202
+ description: 'List of observations to capture',
203
+ },
204
+ project_id: { type: 'string', description: 'Project identifier' },
205
+ },
206
+ },
207
+ },
208
+ ];
209
+ }
210
+ async handleToolCall(name, args) {
211
+ try {
212
+ let result;
213
+ switch (name) {
214
+ case 'mem_save': {
215
+ const projectId = args.project_id;
216
+ const sessionId = await this.getOrCreateSession(projectId);
217
+ const observation = await this.memory.createObservation({
218
+ sessionId,
219
+ title: args.title,
220
+ content: args.content,
221
+ type: args.type,
222
+ topicKey: args.topic_key || null,
223
+ projectId,
224
+ metadata: args.metadata || {},
225
+ });
226
+ result = { id: observation.id, uuid: observation.uuid, success: true };
227
+ break;
228
+ }
229
+ case 'mem_update': {
230
+ const observation = await this.memory.updateObservation(args.id, {
231
+ title: args.title,
232
+ content: args.content,
233
+ topicKey: args.topic_key,
234
+ metadata: args.metadata,
235
+ });
236
+ result = { id: observation.id, success: true };
237
+ break;
238
+ }
239
+ case 'mem_delete': {
240
+ await this.memory.deleteObservation(args.id);
241
+ result = { id: args.id, success: true };
242
+ break;
243
+ }
244
+ case 'mem_search': {
245
+ const searchResult = await this.memory.search({
246
+ query: args.query,
247
+ type: args.type,
248
+ projectId: args.project_id,
249
+ topicKey: args.topic_key,
250
+ limit: args.limit,
251
+ offset: args.offset,
252
+ });
253
+ result = {
254
+ observations: searchResult.observations.map((o) => ({
255
+ id: o.id,
256
+ uuid: o.uuid,
257
+ title: o.title,
258
+ content: o.content,
259
+ type: o.type,
260
+ topicKey: o.topicKey,
261
+ projectId: o.projectId,
262
+ createdAt: o.createdAt.toISOString(),
263
+ })),
264
+ total: searchResult.total,
265
+ };
266
+ break;
267
+ }
268
+ case 'mem_get_observation': {
269
+ const observation = await this.memory.getObservation(args.id);
270
+ if (!observation) {
271
+ throw new Error('Observation not found');
272
+ }
273
+ result = {
274
+ id: observation.id,
275
+ uuid: observation.uuid,
276
+ title: observation.title,
277
+ content: observation.content,
278
+ type: observation.type,
279
+ topicKey: observation.topicKey,
280
+ projectId: observation.projectId,
281
+ createdAt: observation.createdAt.toISOString(),
282
+ metadata: observation.metadata,
283
+ };
284
+ break;
285
+ }
286
+ case 'mem_save_prompt': {
287
+ if (!this.activeSession) {
288
+ throw new Error('No active session');
289
+ }
290
+ const projectId = args.project_id;
291
+ const prompt = await this.memory.savePrompt({
292
+ sessionId: this.activeSession.id,
293
+ content: args.content,
294
+ projectId,
295
+ metadata: args.metadata || {},
296
+ });
297
+ result = { id: prompt.id, uuid: prompt.uuid, success: true };
298
+ break;
299
+ }
300
+ case 'mem_session_summary': {
301
+ if (!this.activeSession) {
302
+ throw new Error('No active session');
303
+ }
304
+ const searchResult = await this.memory.search({
305
+ projectId: this.activeSession.projectId,
306
+ limit: 10,
307
+ });
308
+ result = {
309
+ session: {
310
+ id: this.activeSession.id,
311
+ uuid: this.activeSession.uuid,
312
+ projectId: this.activeSession.projectId,
313
+ startedAt: this.activeSession.startedAt.toISOString(),
314
+ endedAt: this.activeSession.endedAt?.toISOString(),
315
+ },
316
+ recentObservations: searchResult.observations.map((o) => ({
317
+ id: o.id,
318
+ title: o.title,
319
+ type: o.type,
320
+ createdAt: o.createdAt.toISOString(),
321
+ })),
322
+ };
323
+ break;
324
+ }
325
+ case 'mem_context': {
326
+ const limit = args.limit || 20;
327
+ const searchResult = await this.memory.search({
328
+ projectId: args.project_id,
329
+ limit,
330
+ });
331
+ result = {
332
+ observations: searchResult.observations.map((o) => ({
333
+ id: o.id,
334
+ title: o.title,
335
+ type: o.type,
336
+ content: o.content.slice(0, 200),
337
+ createdAt: o.createdAt.toISOString(),
338
+ })),
339
+ total: searchResult.total,
340
+ };
341
+ break;
342
+ }
343
+ case 'mem_timeline': {
344
+ const searchResult = await this.memory.search({
345
+ projectId: args.project_id,
346
+ limit: args.limit,
347
+ offset: args.offset,
348
+ });
349
+ result = {
350
+ observations: searchResult.observations.map((o) => ({
351
+ id: o.id,
352
+ title: o.title,
353
+ type: o.type,
354
+ topicKey: o.topicKey,
355
+ createdAt: o.createdAt.toISOString(),
356
+ })),
357
+ total: searchResult.total,
358
+ };
359
+ break;
360
+ }
361
+ case 'mem_stats': {
362
+ const allResult = await this.memory.search({});
363
+ const byType = allResult.observations.reduce((acc, obs) => {
364
+ acc[obs.type] = (acc[obs.type] || 0) + 1;
365
+ return acc;
366
+ }, {});
367
+ const byProject = allResult.observations.reduce((acc, obs) => {
368
+ acc[obs.projectId] = (acc[obs.projectId] || 0) + 1;
369
+ return acc;
370
+ }, {});
371
+ result = {
372
+ totalObservations: allResult.total,
373
+ byType,
374
+ byProject,
375
+ activeSession: this.activeSession
376
+ ? {
377
+ id: this.activeSession.id,
378
+ projectId: this.activeSession.projectId,
379
+ startedAt: this.activeSession.startedAt.toISOString(),
380
+ }
381
+ : null,
382
+ };
383
+ break;
384
+ }
385
+ case 'mem_session_start': {
386
+ this.activeSession = await this.memory.createSession({
387
+ projectId: args.project_id,
388
+ endedAt: null,
389
+ metadata: args.metadata || {},
390
+ });
391
+ result = {
392
+ id: this.activeSession.id,
393
+ uuid: this.activeSession.uuid,
394
+ success: true,
395
+ };
396
+ break;
397
+ }
398
+ case 'mem_session_end': {
399
+ if (!this.activeSession) {
400
+ throw new Error('No active session');
401
+ }
402
+ this.activeSession = await this.memory.endSession(this.activeSession.id);
403
+ result = {
404
+ id: this.activeSession.id,
405
+ uuid: this.activeSession.uuid,
406
+ endedAt: this.activeSession.endedAt?.toISOString(),
407
+ success: true,
408
+ };
409
+ break;
410
+ }
411
+ case 'mem_suggest_topic_key': {
412
+ const title = args.title;
413
+ const content = args.content;
414
+ const text = `${title} ${content || ''}`;
415
+ const words = text.toLowerCase().split(/\s+/);
416
+ const keywords = words.filter((w) => w.length > 3);
417
+ const topicKey = keywords.slice(0, 3).join('-').toLowerCase();
418
+ result = { topicKey, confidence: 0.8 };
419
+ break;
420
+ }
421
+ case 'mem_capture_passive': {
422
+ const projectId = args.project_id;
423
+ const observations = args.observations;
424
+ const sessionId = await this.getOrCreateSession(projectId);
425
+ const created = [];
426
+ for (const obsText of observations) {
427
+ const obs = await this.memory.createObservation({
428
+ sessionId,
429
+ title: `Passive Capture ${created.length + 1}`,
430
+ content: obsText,
431
+ type: 'note',
432
+ topicKey: null,
433
+ projectId,
434
+ metadata: { passive: true },
435
+ });
436
+ created.push({ id: obs.id, uuid: obs.uuid });
437
+ }
438
+ result = { observations: created, success: true };
439
+ break;
440
+ }
441
+ default:
442
+ throw new Error(`Unknown tool: ${name}`);
443
+ }
444
+ return {
445
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
446
+ isError: false,
447
+ };
448
+ }
449
+ catch (error) {
450
+ return {
451
+ content: [
452
+ {
453
+ type: 'text',
454
+ text: JSON.stringify({ error: error instanceof Error ? error.message : 'Unknown error' }, null, 2),
455
+ },
456
+ ],
457
+ isError: true,
458
+ };
459
+ }
460
+ }
461
+ async getOrCreateSession(projectId) {
462
+ if (this.activeSession) {
463
+ return this.activeSession.id;
464
+ }
465
+ this.activeSession = await this.memory.createSession({
466
+ projectId,
467
+ endedAt: null,
468
+ metadata: {},
469
+ });
470
+ return this.activeSession.id;
471
+ }
472
+ async start() {
473
+ const transport = new stdio_js_1.StdioServerTransport();
474
+ await this.server.connect(transport);
475
+ }
476
+ close() {
477
+ this.memory.close();
478
+ }
479
+ }
480
+ exports.MCPServer = MCPServer;
481
+ //# sourceMappingURL=MCPServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPServer.js","sourceRoot":"","sources":["../src/MCPServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}