@intangle/mcp-server 1.1.6 → 1.1.7
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/dist/index.js +437 -397
- package/index.ts +429 -415
- package/package.json +51 -50
package/dist/index.js
CHANGED
|
@@ -78,66 +78,72 @@ const server = new Server({
|
|
|
78
78
|
},
|
|
79
79
|
});
|
|
80
80
|
const TOOLS = [
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
81
|
+
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
82
|
+
// {
|
|
83
|
+
// name: "add_memory",
|
|
84
|
+
// description:
|
|
85
|
+
// "Store CONTEXT (general information and knowledge) in the user's memory system. For actionable workflow items with status tracking, use add_task instead. Accepts a single context item or an array of context items for batch creation. REQUIRES space_id parameter.",
|
|
86
|
+
// inputSchema: {
|
|
87
|
+
// type: "object",
|
|
88
|
+
// properties: {
|
|
89
|
+
// space_id: {
|
|
90
|
+
// type: "string",
|
|
91
|
+
// description:
|
|
92
|
+
// "REQUIRED: Space to store memory/memories in (use list_spaces to see available options)",
|
|
93
|
+
// },
|
|
94
|
+
// memories: {
|
|
95
|
+
// oneOf: [
|
|
96
|
+
// {
|
|
97
|
+
// type: "object",
|
|
98
|
+
// properties: {
|
|
99
|
+
// title: {
|
|
100
|
+
// type: "string",
|
|
101
|
+
// description: "Title/summary of the memory",
|
|
102
|
+
// },
|
|
103
|
+
// content: {
|
|
104
|
+
// type: "string",
|
|
105
|
+
// description: "Detailed content of the memory",
|
|
106
|
+
// },
|
|
107
|
+
// topics: {
|
|
108
|
+
// type: "array",
|
|
109
|
+
// items: { type: "string" },
|
|
110
|
+
// description:
|
|
111
|
+
// "Flexible topics/tags for organization (e.g., ['coding', 'react'])",
|
|
112
|
+
// },
|
|
113
|
+
// },
|
|
114
|
+
// required: ["title", "content"],
|
|
115
|
+
// },
|
|
116
|
+
// {
|
|
117
|
+
// type: "array",
|
|
118
|
+
// items: {
|
|
119
|
+
// type: "object",
|
|
120
|
+
// properties: {
|
|
121
|
+
// title: {
|
|
122
|
+
// type: "string",
|
|
123
|
+
// description: "Title/summary of the memory",
|
|
124
|
+
// },
|
|
125
|
+
// content: {
|
|
126
|
+
// type: "string",
|
|
127
|
+
// description: "Detailed content of the memory",
|
|
128
|
+
// },
|
|
129
|
+
// topics: {
|
|
130
|
+
// type: "array",
|
|
131
|
+
// items: { type: "string" },
|
|
132
|
+
// description:
|
|
133
|
+
// "Flexible topics/tags for organization (e.g., ['coding', 'react'])",
|
|
134
|
+
// },
|
|
135
|
+
// },
|
|
136
|
+
// required: ["title", "content"],
|
|
137
|
+
// },
|
|
138
|
+
// },
|
|
139
|
+
// ],
|
|
140
|
+
// description:
|
|
141
|
+
// "Single memory object or array of memory objects to create",
|
|
142
|
+
// },
|
|
143
|
+
// },
|
|
144
|
+
// required: ["space_id", "memories"],
|
|
145
|
+
// },
|
|
146
|
+
// },
|
|
141
147
|
{
|
|
142
148
|
name: "search_memories",
|
|
143
149
|
description: "Search through ALL stored data including BOTH context (general information) AND tasks (actionable workflow items). Uses advanced hybrid search (semantic + text + entity relationships). When a user asks to 'update memory' or 'check memory', this tool searches BOTH types. ALWAYS provide space_id parameter - this is mandatory for all searches.",
|
|
@@ -224,30 +230,32 @@ const TOOLS = [
|
|
|
224
230
|
// },
|
|
225
231
|
// },
|
|
226
232
|
// },
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
233
|
+
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
234
|
+
// {
|
|
235
|
+
// name: "delete_memory",
|
|
236
|
+
// description:
|
|
237
|
+
// "Delete one or more CONTEXT items (general information). For deleting tasks, use delete_task instead. Accepts a single memory ID or an array of memory IDs for batch deletion.",
|
|
238
|
+
// inputSchema: {
|
|
239
|
+
// type: "object",
|
|
240
|
+
// properties: {
|
|
241
|
+
// memory_ids: {
|
|
242
|
+
// oneOf: [
|
|
243
|
+
// {
|
|
244
|
+
// type: "string",
|
|
245
|
+
// description: "Single memory ID to delete",
|
|
246
|
+
// },
|
|
247
|
+
// {
|
|
248
|
+
// type: "array",
|
|
249
|
+
// items: { type: "string" },
|
|
250
|
+
// description: "Array of memory IDs to delete",
|
|
251
|
+
// },
|
|
252
|
+
// ],
|
|
253
|
+
// description: "Single memory ID or array of memory IDs to delete",
|
|
254
|
+
// },
|
|
255
|
+
// },
|
|
256
|
+
// required: ["memory_ids"],
|
|
257
|
+
// },
|
|
258
|
+
// },
|
|
251
259
|
{
|
|
252
260
|
name: "list_spaces",
|
|
253
261
|
description: "Get all available spaces with their descriptions and item counts (both context and tasks). Spaces are top-level containers that isolate different contexts (e.g., personal, work, projects).",
|
|
@@ -315,183 +323,193 @@ const TOOLS = [
|
|
|
315
323
|
required: ["space_id"],
|
|
316
324
|
},
|
|
317
325
|
},
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
},
|
|
326
|
+
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
327
|
+
// {
|
|
328
|
+
// name: "add_task",
|
|
329
|
+
// description:
|
|
330
|
+
// "Create one or more tasks in your space with status tracking and priority levels. Supports BATCH creation and NESTED subtasks. Accepts a single task object or an array of task objects. Tasks have graph relationships like memories (entities, topics, temporal). REQUIRES space_id parameter. Example with subtasks: {tasks: {title: 'Parent', content: 'Main task', subtasks: [{title: 'Subtask 1', content: 'Child task'}]}}",
|
|
331
|
+
// inputSchema: {
|
|
332
|
+
// type: "object",
|
|
333
|
+
// properties: {
|
|
334
|
+
// space_id: {
|
|
335
|
+
// type: "string",
|
|
336
|
+
// description:
|
|
337
|
+
// "REQUIRED: Space to create task/tasks in (use list_spaces to see available options)",
|
|
338
|
+
// },
|
|
339
|
+
// tasks: {
|
|
340
|
+
// oneOf: [
|
|
341
|
+
// {
|
|
342
|
+
// type: "object",
|
|
343
|
+
// properties: {
|
|
344
|
+
// title: {
|
|
345
|
+
// type: "string",
|
|
346
|
+
// description: "Task title/summary",
|
|
347
|
+
// },
|
|
348
|
+
// content: {
|
|
349
|
+
// type: "string",
|
|
350
|
+
// description: "Detailed task description",
|
|
351
|
+
// },
|
|
352
|
+
// topics: {
|
|
353
|
+
// type: "array",
|
|
354
|
+
// items: { type: "string" },
|
|
355
|
+
// description: "Optional topics/tags for organization",
|
|
356
|
+
// },
|
|
357
|
+
// status: {
|
|
358
|
+
// type: "string",
|
|
359
|
+
// enum: ["pending", "in_progress", "completed", "invalidated"],
|
|
360
|
+
// description: "Task status (default: pending)",
|
|
361
|
+
// default: "pending",
|
|
362
|
+
// },
|
|
363
|
+
// priority: {
|
|
364
|
+
// type: "string",
|
|
365
|
+
// enum: ["urgent", "high", "medium", "low"],
|
|
366
|
+
// description:
|
|
367
|
+
// "Task priority level (default: medium). Use 'urgent' for time-sensitive tasks requiring immediate attention, 'high' for important tasks, 'medium' for standard tasks, 'low' for nice-to-have tasks.",
|
|
368
|
+
// default: "medium",
|
|
369
|
+
// },
|
|
370
|
+
// parent_id: {
|
|
371
|
+
// type: "string",
|
|
372
|
+
// description:
|
|
373
|
+
// "Optional parent task ID to create this as a subtask. Use an existing task's ID (format: task_TIMESTAMP_ID) to nest this task under it. Use list_tasks to find parent task IDs. If omitted, creates a top-level task. NOTE: Use 'subtasks' array instead for creating parent+children in one call.",
|
|
374
|
+
// },
|
|
375
|
+
// subtasks: {
|
|
376
|
+
// type: "array",
|
|
377
|
+
// items: {
|
|
378
|
+
// type: "object",
|
|
379
|
+
// properties: {
|
|
380
|
+
// title: {
|
|
381
|
+
// type: "string",
|
|
382
|
+
// description: "Subtask title",
|
|
383
|
+
// },
|
|
384
|
+
// content: {
|
|
385
|
+
// type: "string",
|
|
386
|
+
// description: "Subtask description/details",
|
|
387
|
+
// },
|
|
388
|
+
// topics: {
|
|
389
|
+
// type: "array",
|
|
390
|
+
// items: { type: "string" },
|
|
391
|
+
// description: "Topics/tags for this subtask",
|
|
392
|
+
// },
|
|
393
|
+
// status: {
|
|
394
|
+
// type: "string",
|
|
395
|
+
// enum: [
|
|
396
|
+
// "pending",
|
|
397
|
+
// "in_progress",
|
|
398
|
+
// "completed",
|
|
399
|
+
// "invalidated",
|
|
400
|
+
// ],
|
|
401
|
+
// description: "Subtask status (default: pending)",
|
|
402
|
+
// default: "pending",
|
|
403
|
+
// },
|
|
404
|
+
// priority: {
|
|
405
|
+
// type: "string",
|
|
406
|
+
// enum: ["urgent", "high", "medium", "low"],
|
|
407
|
+
// description: "Subtask priority level (default: medium)",
|
|
408
|
+
// default: "medium",
|
|
409
|
+
// },
|
|
410
|
+
// },
|
|
411
|
+
// required: ["title", "content"],
|
|
412
|
+
// },
|
|
413
|
+
// description:
|
|
414
|
+
// "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
415
|
+
// },
|
|
416
|
+
// },
|
|
417
|
+
// required: ["title", "content"],
|
|
418
|
+
// },
|
|
419
|
+
// {
|
|
420
|
+
// type: "array",
|
|
421
|
+
// items: {
|
|
422
|
+
// type: "object",
|
|
423
|
+
// properties: {
|
|
424
|
+
// title: {
|
|
425
|
+
// type: "string",
|
|
426
|
+
// description: "Task title/summary",
|
|
427
|
+
// },
|
|
428
|
+
// content: {
|
|
429
|
+
// type: "string",
|
|
430
|
+
// description: "Detailed task description",
|
|
431
|
+
// },
|
|
432
|
+
// topics: {
|
|
433
|
+
// type: "array",
|
|
434
|
+
// items: { type: "string" },
|
|
435
|
+
// description: "Optional topics/tags for organization",
|
|
436
|
+
// },
|
|
437
|
+
// status: {
|
|
438
|
+
// type: "string",
|
|
439
|
+
// enum: [
|
|
440
|
+
// "pending",
|
|
441
|
+
// "in_progress",
|
|
442
|
+
// "completed",
|
|
443
|
+
// "invalidated",
|
|
444
|
+
// ],
|
|
445
|
+
// description: "Task status (default: pending)",
|
|
446
|
+
// default: "pending",
|
|
447
|
+
// },
|
|
448
|
+
// priority: {
|
|
449
|
+
// type: "string",
|
|
450
|
+
// enum: ["urgent", "high", "medium", "low"],
|
|
451
|
+
// description:
|
|
452
|
+
// "Task priority level (default: medium). Use 'urgent' for time-sensitive tasks requiring immediate attention, 'high' for important tasks, 'medium' for standard tasks, 'low' for nice-to-have tasks.",
|
|
453
|
+
// default: "medium",
|
|
454
|
+
// },
|
|
455
|
+
// parent_id: {
|
|
456
|
+
// type: "string",
|
|
457
|
+
// description:
|
|
458
|
+
// "Optional parent task ID to create this as a subtask. Use an existing task's ID (format: task_TIMESTAMP_ID) to nest this task under it. Use list_tasks to find parent task IDs. If omitted, creates a top-level task. NOTE: Use 'subtasks' array instead for creating parent+children in one call.",
|
|
459
|
+
// },
|
|
460
|
+
// subtasks: {
|
|
461
|
+
// type: "array",
|
|
462
|
+
// items: {
|
|
463
|
+
// type: "object",
|
|
464
|
+
// properties: {
|
|
465
|
+
// title: {
|
|
466
|
+
// type: "string",
|
|
467
|
+
// description: "Subtask title",
|
|
468
|
+
// },
|
|
469
|
+
// content: {
|
|
470
|
+
// type: "string",
|
|
471
|
+
// description: "Subtask description/details",
|
|
472
|
+
// },
|
|
473
|
+
// topics: {
|
|
474
|
+
// type: "array",
|
|
475
|
+
// items: { type: "string" },
|
|
476
|
+
// description: "Topics/tags for this subtask",
|
|
477
|
+
// },
|
|
478
|
+
// status: {
|
|
479
|
+
// type: "string",
|
|
480
|
+
// enum: [
|
|
481
|
+
// "pending",
|
|
482
|
+
// "in_progress",
|
|
483
|
+
// "completed",
|
|
484
|
+
// "invalidated",
|
|
485
|
+
// ],
|
|
486
|
+
// description: "Subtask status (default: pending)",
|
|
487
|
+
// default: "pending",
|
|
488
|
+
// },
|
|
489
|
+
// priority: {
|
|
490
|
+
// type: "string",
|
|
491
|
+
// enum: ["urgent", "high", "medium", "low"],
|
|
492
|
+
// description:
|
|
493
|
+
// "Subtask priority level (default: medium)",
|
|
494
|
+
// default: "medium",
|
|
495
|
+
// },
|
|
496
|
+
// },
|
|
497
|
+
// required: ["title", "content"],
|
|
498
|
+
// },
|
|
499
|
+
// description:
|
|
500
|
+
// "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
501
|
+
// },
|
|
502
|
+
// },
|
|
503
|
+
// required: ["title", "content"],
|
|
504
|
+
// },
|
|
505
|
+
// },
|
|
506
|
+
// ],
|
|
507
|
+
// description: "Single task object or array of task objects to create",
|
|
508
|
+
// },
|
|
509
|
+
// },
|
|
510
|
+
// required: ["space_id", "tasks"],
|
|
511
|
+
// },
|
|
512
|
+
// },
|
|
495
513
|
{
|
|
496
514
|
name: "update_memory",
|
|
497
515
|
description: "Unified tool for ALL memory operations: add, update, or delete context and tasks. Supports any combination of operations in a single call. Context = general information/knowledge (Memory nodes). Tasks = actionable workflow items (Task nodes). Max 50 operations per call. At least one operation (add/update/delete) required.",
|
|
@@ -540,7 +558,12 @@ const TOOLS = [
|
|
|
540
558
|
},
|
|
541
559
|
status: {
|
|
542
560
|
type: "string",
|
|
543
|
-
enum: [
|
|
561
|
+
enum: [
|
|
562
|
+
"pending",
|
|
563
|
+
"in_progress",
|
|
564
|
+
"completed",
|
|
565
|
+
"invalidated",
|
|
566
|
+
],
|
|
544
567
|
description: "Task status (default: pending)",
|
|
545
568
|
},
|
|
546
569
|
priority: {
|
|
@@ -604,7 +627,12 @@ const TOOLS = [
|
|
|
604
627
|
},
|
|
605
628
|
status: {
|
|
606
629
|
type: "string",
|
|
607
|
-
enum: [
|
|
630
|
+
enum: [
|
|
631
|
+
"pending",
|
|
632
|
+
"in_progress",
|
|
633
|
+
"completed",
|
|
634
|
+
"invalidated",
|
|
635
|
+
],
|
|
608
636
|
description: "New status (optional)",
|
|
609
637
|
},
|
|
610
638
|
priority: {
|
|
@@ -639,88 +667,91 @@ const TOOLS = [
|
|
|
639
667
|
required: ["space_id"],
|
|
640
668
|
},
|
|
641
669
|
},
|
|
670
|
+
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
671
|
+
// {
|
|
672
|
+
// name: "update_task_status",
|
|
673
|
+
// description:
|
|
674
|
+
// "Change a task's status (pending/in_progress/completed/invalidated)",
|
|
675
|
+
// inputSchema: {
|
|
676
|
+
// type: "object",
|
|
677
|
+
// properties: {
|
|
678
|
+
// task_id: {
|
|
679
|
+
// type: "string",
|
|
680
|
+
// description: "Task ID to update",
|
|
681
|
+
// },
|
|
682
|
+
// status: {
|
|
683
|
+
// type: "string",
|
|
684
|
+
// enum: ["pending", "in_progress", "completed", "invalidated"],
|
|
685
|
+
// description: "New status",
|
|
686
|
+
// },
|
|
687
|
+
// },
|
|
688
|
+
// required: ["task_id", "status"],
|
|
689
|
+
// },
|
|
690
|
+
// },
|
|
642
691
|
{
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
type: "string",
|
|
707
|
-
description: "New content (optional)",
|
|
708
|
-
},
|
|
709
|
-
topics: {
|
|
710
|
-
type: "array",
|
|
711
|
-
items: { type: "string" },
|
|
712
|
-
description: "New topics array (optional)",
|
|
713
|
-
},
|
|
714
|
-
},
|
|
715
|
-
required: ["task_id"],
|
|
716
|
-
},
|
|
717
|
-
},
|
|
718
|
-
],
|
|
719
|
-
description: "Single update object or array of update objects",
|
|
720
|
-
},
|
|
721
|
-
},
|
|
722
|
-
required: ["updates"],
|
|
723
|
-
},
|
|
692
|
+
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
693
|
+
// name: "update_task",
|
|
694
|
+
// description:
|
|
695
|
+
// "Update one or more TASKS (not context/memories - use add_memory to update context by creating new versions). Accepts a single update object or an array of update objects for batch updates. Each update must include task_id.",
|
|
696
|
+
// inputSchema: {
|
|
697
|
+
// type: "object",
|
|
698
|
+
// properties: {
|
|
699
|
+
// updates: {
|
|
700
|
+
// oneOf: [
|
|
701
|
+
// {
|
|
702
|
+
// type: "object",
|
|
703
|
+
// properties: {
|
|
704
|
+
// task_id: {
|
|
705
|
+
// type: "string",
|
|
706
|
+
// description: "Task ID to update",
|
|
707
|
+
// },
|
|
708
|
+
// title: {
|
|
709
|
+
// type: "string",
|
|
710
|
+
// description: "New title (optional)",
|
|
711
|
+
// },
|
|
712
|
+
// content: {
|
|
713
|
+
// type: "string",
|
|
714
|
+
// description: "New content (optional)",
|
|
715
|
+
// },
|
|
716
|
+
// topics: {
|
|
717
|
+
// type: "array",
|
|
718
|
+
// items: { type: "string" },
|
|
719
|
+
// description: "New topics array (optional)",
|
|
720
|
+
// },
|
|
721
|
+
// },
|
|
722
|
+
// required: ["task_id"],
|
|
723
|
+
// },
|
|
724
|
+
// {
|
|
725
|
+
// type: "array",
|
|
726
|
+
// items: {
|
|
727
|
+
// type: "object",
|
|
728
|
+
// properties: {
|
|
729
|
+
// task_id: {
|
|
730
|
+
// type: "string",
|
|
731
|
+
// description: "Task ID to update",
|
|
732
|
+
// },
|
|
733
|
+
// title: {
|
|
734
|
+
// type: "string",
|
|
735
|
+
// description: "New title (optional)",
|
|
736
|
+
// },
|
|
737
|
+
// content: {
|
|
738
|
+
// type: "string",
|
|
739
|
+
// description: "New content (optional)",
|
|
740
|
+
// },
|
|
741
|
+
// topics: {
|
|
742
|
+
// type: "array",
|
|
743
|
+
// items: { type: "string" },
|
|
744
|
+
// description: "New topics array (optional)",
|
|
745
|
+
// },
|
|
746
|
+
// },
|
|
747
|
+
// required: ["task_id"],
|
|
748
|
+
// },
|
|
749
|
+
// },
|
|
750
|
+
// ],
|
|
751
|
+
// description: "Single update object or array of update objects",
|
|
752
|
+
// },
|
|
753
|
+
// },
|
|
754
|
+
// required: ["updates"],
|
|
724
755
|
},
|
|
725
756
|
{
|
|
726
757
|
name: "list_tasks",
|
|
@@ -751,30 +782,32 @@ const TOOLS = [
|
|
|
751
782
|
required: ["space_id"],
|
|
752
783
|
},
|
|
753
784
|
},
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
785
|
+
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
786
|
+
// {
|
|
787
|
+
// name: "delete_task",
|
|
788
|
+
// description:
|
|
789
|
+
// "Delete one or more tasks in a single transaction. Accepts a single task ID or an array of task IDs for batch deletion.",
|
|
790
|
+
// inputSchema: {
|
|
791
|
+
// type: "object",
|
|
792
|
+
// properties: {
|
|
793
|
+
// task_ids: {
|
|
794
|
+
// oneOf: [
|
|
795
|
+
// {
|
|
796
|
+
// type: "string",
|
|
797
|
+
// description: "Single task ID to delete",
|
|
798
|
+
// },
|
|
799
|
+
// {
|
|
800
|
+
// type: "array",
|
|
801
|
+
// items: { type: "string" },
|
|
802
|
+
// description: "Array of task IDs to delete",
|
|
803
|
+
// },
|
|
804
|
+
// ],
|
|
805
|
+
// description: "Single task ID or array of task IDs to delete",
|
|
806
|
+
// },
|
|
807
|
+
// },
|
|
808
|
+
// required: ["task_ids"],
|
|
809
|
+
// },
|
|
810
|
+
// },
|
|
778
811
|
];
|
|
779
812
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
780
813
|
tools: TOOLS,
|
|
@@ -823,14 +856,13 @@ async function handleFetch(args) {
|
|
|
823
856
|
const { id, ids } = args;
|
|
824
857
|
return makeApiCall("fetch", { id, ids });
|
|
825
858
|
}
|
|
826
|
-
async function
|
|
827
|
-
const {
|
|
828
|
-
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
const { memory_ids } = args;
|
|
859
|
+
/* async function handleDeleteMemory(args: any) {
|
|
860
|
+
const { memory_ids } = args as {
|
|
861
|
+
memory_ids: string | string[];
|
|
862
|
+
};
|
|
863
|
+
|
|
832
864
|
return makeApiCall("delete-memory", { memory_ids });
|
|
833
|
-
}
|
|
865
|
+
} */
|
|
834
866
|
async function handleListSpaces() {
|
|
835
867
|
return makeApiCall("list-spaces", {});
|
|
836
868
|
}
|
|
@@ -845,19 +877,24 @@ async function handleStart(args) {
|
|
|
845
877
|
const { space_id } = args;
|
|
846
878
|
return makeApiCall("start", { space_id });
|
|
847
879
|
}
|
|
848
|
-
|
|
880
|
+
/*
|
|
881
|
+
async function handleAddTask(args: any) {
|
|
849
882
|
if (!args.space_id) {
|
|
850
|
-
throw new Error(
|
|
883
|
+
throw new Error(
|
|
884
|
+
"space_id is required. Use list_spaces to see available options.",
|
|
885
|
+
);
|
|
851
886
|
}
|
|
887
|
+
|
|
852
888
|
if (!args.tasks) {
|
|
853
889
|
throw new Error("tasks parameter is required (single object or array)");
|
|
854
890
|
}
|
|
891
|
+
|
|
855
892
|
// Pass through to API
|
|
856
893
|
return makeApiCall("add-task", {
|
|
857
894
|
space_id: args.space_id,
|
|
858
895
|
tasks: args.tasks,
|
|
859
896
|
});
|
|
860
|
-
}
|
|
897
|
+
} */
|
|
861
898
|
async function handleUpdateMemory(args) {
|
|
862
899
|
if (!args.space_id) {
|
|
863
900
|
throw new Error("space_id is required. Use list_spaces to see available options.");
|
|
@@ -897,9 +934,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
897
934
|
try {
|
|
898
935
|
let result;
|
|
899
936
|
switch (name) {
|
|
900
|
-
case "add_memory":
|
|
901
|
-
|
|
902
|
-
|
|
937
|
+
// DEPRECATED: case "add_memory":
|
|
938
|
+
// DEPRECATED: result = await handleAddMemory(args);
|
|
939
|
+
// DEPRECATED: break;
|
|
903
940
|
case "search_memories":
|
|
904
941
|
result = await handleSearchMemories(args);
|
|
905
942
|
break;
|
|
@@ -913,9 +950,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
913
950
|
// case "get_entities":
|
|
914
951
|
// result = await handleGetEntities(args);
|
|
915
952
|
// break;
|
|
916
|
-
case "delete_memory":
|
|
917
|
-
|
|
918
|
-
|
|
953
|
+
// DEPRECATED: case "delete_memory":
|
|
954
|
+
// DEPRECATED: result = await handleDeleteMemory(args);
|
|
955
|
+
// DEPRECATED: break;
|
|
919
956
|
case "list_spaces":
|
|
920
957
|
result = await handleListSpaces();
|
|
921
958
|
break;
|
|
@@ -928,30 +965,33 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
928
965
|
case "start":
|
|
929
966
|
result = await handleStart(args);
|
|
930
967
|
break;
|
|
931
|
-
case "add_task":
|
|
932
|
-
|
|
933
|
-
|
|
968
|
+
// DEPRECATED: case "add_task":
|
|
969
|
+
// DEPRECATED: result = await handleAddTask(args);
|
|
970
|
+
// DEPRECATED: break;
|
|
934
971
|
case "update_memory":
|
|
935
972
|
result = await handleUpdateMemory(args);
|
|
936
973
|
break;
|
|
937
|
-
case "update_task_status":
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
case "update_task":
|
|
941
|
-
|
|
942
|
-
|
|
974
|
+
// DEPRECATED: case "update_task_status":
|
|
975
|
+
// DEPRECATED: result = await handleUpdateTaskStatus(args);
|
|
976
|
+
// DEPRECATED: break;
|
|
977
|
+
// DEPRECATED: case "update_task":
|
|
978
|
+
// DEPRECATED: result = await handleUpdateTask(args);
|
|
979
|
+
// DEPRECATED: break;
|
|
943
980
|
case "list_tasks":
|
|
944
981
|
result = await handleListTasks(args);
|
|
945
982
|
break;
|
|
946
|
-
case "delete_task":
|
|
947
|
-
|
|
948
|
-
|
|
983
|
+
// DEPRECATED: case "delete_task":
|
|
984
|
+
// DEPRECATED: result = await handleDeleteTask(args);
|
|
985
|
+
// DEPRECATED: break;
|
|
949
986
|
default:
|
|
950
987
|
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
951
988
|
}
|
|
952
989
|
// Extract response field for Layer 2 compressed tools, otherwise stringify full result
|
|
953
990
|
let responseText;
|
|
954
|
-
if (result &&
|
|
991
|
+
if (result &&
|
|
992
|
+
typeof result === "object" &&
|
|
993
|
+
"response" in result &&
|
|
994
|
+
typeof result.response === "string") {
|
|
955
995
|
// Tool has Layer 2 compression - use the formatted response field
|
|
956
996
|
responseText = result.response;
|
|
957
997
|
}
|