@intangle/mcp-server 1.1.7 → 1.1.9
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 +6 -489
- package/index.ts +6 -502
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -78,72 +78,6 @@ const server = new Server({
|
|
|
78
78
|
},
|
|
79
79
|
});
|
|
80
80
|
const TOOLS = [
|
|
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
|
-
// },
|
|
147
81
|
{
|
|
148
82
|
name: "search_memories",
|
|
149
83
|
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.",
|
|
@@ -214,48 +148,6 @@ const TOOLS = [
|
|
|
214
148
|
},
|
|
215
149
|
},
|
|
216
150
|
},
|
|
217
|
-
// DISABLED: get_entities tool - not useful in current form
|
|
218
|
-
// {
|
|
219
|
-
// name: "get_entities",
|
|
220
|
-
// description:
|
|
221
|
-
// "Get extracted entities (people, places, concepts) from CONTEXT items (general information). If no memory_id provided, returns top 20 most frequently mentioned entities across all context. WARNING: This tool can return large responses - use sparingly and only when entity information is specifically needed.",
|
|
222
|
-
// inputSchema: {
|
|
223
|
-
// type: "object",
|
|
224
|
-
// properties: {
|
|
225
|
-
// memory_id: {
|
|
226
|
-
// type: "string",
|
|
227
|
-
// description:
|
|
228
|
-
// "Memory ID to get entities for. RECOMMENDED: Always provide memory_id to get focused results.",
|
|
229
|
-
// },
|
|
230
|
-
// },
|
|
231
|
-
// },
|
|
232
|
-
// },
|
|
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
|
-
// },
|
|
259
151
|
{
|
|
260
152
|
name: "list_spaces",
|
|
261
153
|
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).",
|
|
@@ -266,7 +158,7 @@ const TOOLS = [
|
|
|
266
158
|
},
|
|
267
159
|
{
|
|
268
160
|
name: "create_space",
|
|
269
|
-
description: "Create a new space with optional
|
|
161
|
+
description: "Create a new space with optional configuration. Spaces are top-level containers that hold both context (general information) and tasks (actionable items). The 'start' tool loads this configuration when beginning work in this space. Checks user's plan limits and returns upgrade link if limit reached.",
|
|
270
162
|
inputSchema: {
|
|
271
163
|
type: "object",
|
|
272
164
|
properties: {
|
|
@@ -278,13 +170,14 @@ const TOOLS = [
|
|
|
278
170
|
type: "string",
|
|
279
171
|
description: "Brief description of what this space is for (e.g., 'Work-related context and tasks')",
|
|
280
172
|
},
|
|
281
|
-
|
|
282
|
-
type: "
|
|
283
|
-
|
|
173
|
+
config_badges: {
|
|
174
|
+
type: "array",
|
|
175
|
+
items: { type: "string" },
|
|
176
|
+
description: "Array of keywords for memory focus in this space. These keywords help steer what context gets loaded when running 'start' for this space. Examples: ['TypeScript', 'React', 'API design', 'authentication']. They act as search terms to prioritize relevant memories.",
|
|
284
177
|
},
|
|
285
178
|
startup_preferences: {
|
|
286
179
|
type: "string",
|
|
287
|
-
description: "AI behavior preferences for this space. Guides how
|
|
180
|
+
description: "AI behavior preferences for this space. Guides how AI assistants and agents should communicate and behave (e.g., 'be concise and frank', 'think critically', 'play devils advocate'). This appears in the start briefing under 'Assistant Preferences'.",
|
|
288
181
|
},
|
|
289
182
|
include_tasks: {
|
|
290
183
|
type: "boolean",
|
|
@@ -323,193 +216,6 @@ const TOOLS = [
|
|
|
323
216
|
required: ["space_id"],
|
|
324
217
|
},
|
|
325
218
|
},
|
|
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
|
-
// },
|
|
513
219
|
{
|
|
514
220
|
name: "update_memory",
|
|
515
221
|
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.",
|
|
@@ -667,92 +373,6 @@ const TOOLS = [
|
|
|
667
373
|
required: ["space_id"],
|
|
668
374
|
},
|
|
669
375
|
},
|
|
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
|
-
// },
|
|
691
|
-
{
|
|
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"],
|
|
755
|
-
},
|
|
756
376
|
{
|
|
757
377
|
name: "list_tasks",
|
|
758
378
|
description: "List tasks in a space with optional filtering",
|
|
@@ -782,50 +402,10 @@ const TOOLS = [
|
|
|
782
402
|
required: ["space_id"],
|
|
783
403
|
},
|
|
784
404
|
},
|
|
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
|
-
// },
|
|
811
405
|
];
|
|
812
406
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
813
407
|
tools: TOOLS,
|
|
814
408
|
}));
|
|
815
|
-
async function handleAddMemory(args) {
|
|
816
|
-
// Require space_id to be provided
|
|
817
|
-
if (!args.space_id) {
|
|
818
|
-
throw new Error("space_id is required. Use list_spaces to see available options.");
|
|
819
|
-
}
|
|
820
|
-
if (!args.memories) {
|
|
821
|
-
throw new Error("memories parameter is required (single object or array)");
|
|
822
|
-
}
|
|
823
|
-
// Pass through to API
|
|
824
|
-
return makeApiCall("add-memory", {
|
|
825
|
-
space_id: args.space_id,
|
|
826
|
-
memories: args.memories,
|
|
827
|
-
});
|
|
828
|
-
}
|
|
829
409
|
async function handleSearchMemories(args) {
|
|
830
410
|
const { space_id, query, topics, max_results = 10, } = args;
|
|
831
411
|
// Require space_id
|
|
@@ -856,13 +436,6 @@ async function handleFetch(args) {
|
|
|
856
436
|
const { id, ids } = args;
|
|
857
437
|
return makeApiCall("fetch", { id, ids });
|
|
858
438
|
}
|
|
859
|
-
/* async function handleDeleteMemory(args: any) {
|
|
860
|
-
const { memory_ids } = args as {
|
|
861
|
-
memory_ids: string | string[];
|
|
862
|
-
};
|
|
863
|
-
|
|
864
|
-
return makeApiCall("delete-memory", { memory_ids });
|
|
865
|
-
} */
|
|
866
439
|
async function handleListSpaces() {
|
|
867
440
|
return makeApiCall("list-spaces", {});
|
|
868
441
|
}
|
|
@@ -877,24 +450,6 @@ async function handleStart(args) {
|
|
|
877
450
|
const { space_id } = args;
|
|
878
451
|
return makeApiCall("start", { space_id });
|
|
879
452
|
}
|
|
880
|
-
/*
|
|
881
|
-
async function handleAddTask(args: any) {
|
|
882
|
-
if (!args.space_id) {
|
|
883
|
-
throw new Error(
|
|
884
|
-
"space_id is required. Use list_spaces to see available options.",
|
|
885
|
-
);
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
if (!args.tasks) {
|
|
889
|
-
throw new Error("tasks parameter is required (single object or array)");
|
|
890
|
-
}
|
|
891
|
-
|
|
892
|
-
// Pass through to API
|
|
893
|
-
return makeApiCall("add-task", {
|
|
894
|
-
space_id: args.space_id,
|
|
895
|
-
tasks: args.tasks,
|
|
896
|
-
});
|
|
897
|
-
} */
|
|
898
453
|
async function handleUpdateMemory(args) {
|
|
899
454
|
if (!args.space_id) {
|
|
900
455
|
throw new Error("space_id is required. Use list_spaces to see available options.");
|
|
@@ -910,33 +465,14 @@ async function handleUpdateMemory(args) {
|
|
|
910
465
|
delete: args.delete,
|
|
911
466
|
});
|
|
912
467
|
}
|
|
913
|
-
async function handleUpdateTaskStatus(args) {
|
|
914
|
-
return makeApiCall("update-task-status", args);
|
|
915
|
-
}
|
|
916
|
-
async function handleUpdateTask(args) {
|
|
917
|
-
if (!args.updates) {
|
|
918
|
-
throw new Error("updates parameter is required (single object or array)");
|
|
919
|
-
}
|
|
920
|
-
// Pass through to API
|
|
921
|
-
return makeApiCall("update-task", {
|
|
922
|
-
updates: args.updates,
|
|
923
|
-
});
|
|
924
|
-
}
|
|
925
468
|
async function handleListTasks(args) {
|
|
926
469
|
return makeApiCall("list-tasks", args);
|
|
927
470
|
}
|
|
928
|
-
async function handleDeleteTask(args) {
|
|
929
|
-
const { task_ids } = args;
|
|
930
|
-
return makeApiCall("delete-task", { task_ids });
|
|
931
|
-
}
|
|
932
471
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
933
472
|
const { name, arguments: args } = request.params;
|
|
934
473
|
try {
|
|
935
474
|
let result;
|
|
936
475
|
switch (name) {
|
|
937
|
-
// DEPRECATED: case "add_memory":
|
|
938
|
-
// DEPRECATED: result = await handleAddMemory(args);
|
|
939
|
-
// DEPRECATED: break;
|
|
940
476
|
case "search_memories":
|
|
941
477
|
result = await handleSearchMemories(args);
|
|
942
478
|
break;
|
|
@@ -946,13 +482,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
946
482
|
case "fetch":
|
|
947
483
|
result = await handleFetch(args);
|
|
948
484
|
break;
|
|
949
|
-
// DISABLED: get_entities handler - not useful in current form
|
|
950
|
-
// case "get_entities":
|
|
951
|
-
// result = await handleGetEntities(args);
|
|
952
|
-
// break;
|
|
953
|
-
// DEPRECATED: case "delete_memory":
|
|
954
|
-
// DEPRECATED: result = await handleDeleteMemory(args);
|
|
955
|
-
// DEPRECATED: break;
|
|
956
485
|
case "list_spaces":
|
|
957
486
|
result = await handleListSpaces();
|
|
958
487
|
break;
|
|
@@ -965,24 +494,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
965
494
|
case "start":
|
|
966
495
|
result = await handleStart(args);
|
|
967
496
|
break;
|
|
968
|
-
// DEPRECATED: case "add_task":
|
|
969
|
-
// DEPRECATED: result = await handleAddTask(args);
|
|
970
|
-
// DEPRECATED: break;
|
|
971
497
|
case "update_memory":
|
|
972
498
|
result = await handleUpdateMemory(args);
|
|
973
499
|
break;
|
|
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;
|
|
980
500
|
case "list_tasks":
|
|
981
501
|
result = await handleListTasks(args);
|
|
982
502
|
break;
|
|
983
|
-
// DEPRECATED: case "delete_task":
|
|
984
|
-
// DEPRECATED: result = await handleDeleteTask(args);
|
|
985
|
-
// DEPRECATED: break;
|
|
986
503
|
default:
|
|
987
504
|
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
988
505
|
}
|
package/index.ts
CHANGED
|
@@ -108,72 +108,6 @@ const server = new Server(
|
|
|
108
108
|
);
|
|
109
109
|
|
|
110
110
|
const TOOLS = [
|
|
111
|
-
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
112
|
-
// {
|
|
113
|
-
// name: "add_memory",
|
|
114
|
-
// description:
|
|
115
|
-
// "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.",
|
|
116
|
-
// inputSchema: {
|
|
117
|
-
// type: "object",
|
|
118
|
-
// properties: {
|
|
119
|
-
// space_id: {
|
|
120
|
-
// type: "string",
|
|
121
|
-
// description:
|
|
122
|
-
// "REQUIRED: Space to store memory/memories in (use list_spaces to see available options)",
|
|
123
|
-
// },
|
|
124
|
-
// memories: {
|
|
125
|
-
// oneOf: [
|
|
126
|
-
// {
|
|
127
|
-
// type: "object",
|
|
128
|
-
// properties: {
|
|
129
|
-
// title: {
|
|
130
|
-
// type: "string",
|
|
131
|
-
// description: "Title/summary of the memory",
|
|
132
|
-
// },
|
|
133
|
-
// content: {
|
|
134
|
-
// type: "string",
|
|
135
|
-
// description: "Detailed content of the memory",
|
|
136
|
-
// },
|
|
137
|
-
// topics: {
|
|
138
|
-
// type: "array",
|
|
139
|
-
// items: { type: "string" },
|
|
140
|
-
// description:
|
|
141
|
-
// "Flexible topics/tags for organization (e.g., ['coding', 'react'])",
|
|
142
|
-
// },
|
|
143
|
-
// },
|
|
144
|
-
// required: ["title", "content"],
|
|
145
|
-
// },
|
|
146
|
-
// {
|
|
147
|
-
// type: "array",
|
|
148
|
-
// items: {
|
|
149
|
-
// type: "object",
|
|
150
|
-
// properties: {
|
|
151
|
-
// title: {
|
|
152
|
-
// type: "string",
|
|
153
|
-
// description: "Title/summary of the memory",
|
|
154
|
-
// },
|
|
155
|
-
// content: {
|
|
156
|
-
// type: "string",
|
|
157
|
-
// description: "Detailed content of the memory",
|
|
158
|
-
// },
|
|
159
|
-
// topics: {
|
|
160
|
-
// type: "array",
|
|
161
|
-
// items: { type: "string" },
|
|
162
|
-
// description:
|
|
163
|
-
// "Flexible topics/tags for organization (e.g., ['coding', 'react'])",
|
|
164
|
-
// },
|
|
165
|
-
// },
|
|
166
|
-
// required: ["title", "content"],
|
|
167
|
-
// },
|
|
168
|
-
// },
|
|
169
|
-
// ],
|
|
170
|
-
// description:
|
|
171
|
-
// "Single memory object or array of memory objects to create",
|
|
172
|
-
// },
|
|
173
|
-
// },
|
|
174
|
-
// required: ["space_id", "memories"],
|
|
175
|
-
// },
|
|
176
|
-
// },
|
|
177
111
|
{
|
|
178
112
|
name: "search_memories",
|
|
179
113
|
description:
|
|
@@ -251,48 +185,6 @@ const TOOLS = [
|
|
|
251
185
|
},
|
|
252
186
|
},
|
|
253
187
|
},
|
|
254
|
-
// DISABLED: get_entities tool - not useful in current form
|
|
255
|
-
// {
|
|
256
|
-
// name: "get_entities",
|
|
257
|
-
// description:
|
|
258
|
-
// "Get extracted entities (people, places, concepts) from CONTEXT items (general information). If no memory_id provided, returns top 20 most frequently mentioned entities across all context. WARNING: This tool can return large responses - use sparingly and only when entity information is specifically needed.",
|
|
259
|
-
// inputSchema: {
|
|
260
|
-
// type: "object",
|
|
261
|
-
// properties: {
|
|
262
|
-
// memory_id: {
|
|
263
|
-
// type: "string",
|
|
264
|
-
// description:
|
|
265
|
-
// "Memory ID to get entities for. RECOMMENDED: Always provide memory_id to get focused results.",
|
|
266
|
-
// },
|
|
267
|
-
// },
|
|
268
|
-
// },
|
|
269
|
-
// },
|
|
270
|
-
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
271
|
-
// {
|
|
272
|
-
// name: "delete_memory",
|
|
273
|
-
// description:
|
|
274
|
-
// "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.",
|
|
275
|
-
// inputSchema: {
|
|
276
|
-
// type: "object",
|
|
277
|
-
// properties: {
|
|
278
|
-
// memory_ids: {
|
|
279
|
-
// oneOf: [
|
|
280
|
-
// {
|
|
281
|
-
// type: "string",
|
|
282
|
-
// description: "Single memory ID to delete",
|
|
283
|
-
// },
|
|
284
|
-
// {
|
|
285
|
-
// type: "array",
|
|
286
|
-
// items: { type: "string" },
|
|
287
|
-
// description: "Array of memory IDs to delete",
|
|
288
|
-
// },
|
|
289
|
-
// ],
|
|
290
|
-
// description: "Single memory ID or array of memory IDs to delete",
|
|
291
|
-
// },
|
|
292
|
-
// },
|
|
293
|
-
// required: ["memory_ids"],
|
|
294
|
-
// },
|
|
295
|
-
// },
|
|
296
188
|
{
|
|
297
189
|
name: "list_spaces",
|
|
298
190
|
description:
|
|
@@ -305,7 +197,7 @@ const TOOLS = [
|
|
|
305
197
|
{
|
|
306
198
|
name: "create_space",
|
|
307
199
|
description:
|
|
308
|
-
"Create a new space with optional
|
|
200
|
+
"Create a new space with optional configuration. Spaces are top-level containers that hold both context (general information) and tasks (actionable items). The 'start' tool loads this configuration when beginning work in this space. Checks user's plan limits and returns upgrade link if limit reached.",
|
|
309
201
|
inputSchema: {
|
|
310
202
|
type: "object",
|
|
311
203
|
properties: {
|
|
@@ -319,15 +211,16 @@ const TOOLS = [
|
|
|
319
211
|
description:
|
|
320
212
|
"Brief description of what this space is for (e.g., 'Work-related context and tasks')",
|
|
321
213
|
},
|
|
322
|
-
|
|
323
|
-
type: "
|
|
214
|
+
config_badges: {
|
|
215
|
+
type: "array",
|
|
216
|
+
items: { type: "string" },
|
|
324
217
|
description:
|
|
325
|
-
"
|
|
218
|
+
"Array of keywords for memory focus in this space. These keywords help steer what context gets loaded when running 'start' for this space. Examples: ['TypeScript', 'React', 'API design', 'authentication']. They act as search terms to prioritize relevant memories.",
|
|
326
219
|
},
|
|
327
220
|
startup_preferences: {
|
|
328
221
|
type: "string",
|
|
329
222
|
description:
|
|
330
|
-
"AI behavior preferences for this space. Guides how
|
|
223
|
+
"AI behavior preferences for this space. Guides how AI assistants and agents should communicate and behave (e.g., 'be concise and frank', 'think critically', 'play devils advocate'). This appears in the start briefing under 'Assistant Preferences'.",
|
|
331
224
|
},
|
|
332
225
|
include_tasks: {
|
|
333
226
|
type: "boolean",
|
|
@@ -368,193 +261,6 @@ const TOOLS = [
|
|
|
368
261
|
required: ["space_id"],
|
|
369
262
|
},
|
|
370
263
|
},
|
|
371
|
-
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
372
|
-
// {
|
|
373
|
-
// name: "add_task",
|
|
374
|
-
// description:
|
|
375
|
-
// "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'}]}}",
|
|
376
|
-
// inputSchema: {
|
|
377
|
-
// type: "object",
|
|
378
|
-
// properties: {
|
|
379
|
-
// space_id: {
|
|
380
|
-
// type: "string",
|
|
381
|
-
// description:
|
|
382
|
-
// "REQUIRED: Space to create task/tasks in (use list_spaces to see available options)",
|
|
383
|
-
// },
|
|
384
|
-
// tasks: {
|
|
385
|
-
// oneOf: [
|
|
386
|
-
// {
|
|
387
|
-
// type: "object",
|
|
388
|
-
// properties: {
|
|
389
|
-
// title: {
|
|
390
|
-
// type: "string",
|
|
391
|
-
// description: "Task title/summary",
|
|
392
|
-
// },
|
|
393
|
-
// content: {
|
|
394
|
-
// type: "string",
|
|
395
|
-
// description: "Detailed task description",
|
|
396
|
-
// },
|
|
397
|
-
// topics: {
|
|
398
|
-
// type: "array",
|
|
399
|
-
// items: { type: "string" },
|
|
400
|
-
// description: "Optional topics/tags for organization",
|
|
401
|
-
// },
|
|
402
|
-
// status: {
|
|
403
|
-
// type: "string",
|
|
404
|
-
// enum: ["pending", "in_progress", "completed", "invalidated"],
|
|
405
|
-
// description: "Task status (default: pending)",
|
|
406
|
-
// default: "pending",
|
|
407
|
-
// },
|
|
408
|
-
// priority: {
|
|
409
|
-
// type: "string",
|
|
410
|
-
// enum: ["urgent", "high", "medium", "low"],
|
|
411
|
-
// description:
|
|
412
|
-
// "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.",
|
|
413
|
-
// default: "medium",
|
|
414
|
-
// },
|
|
415
|
-
// parent_id: {
|
|
416
|
-
// type: "string",
|
|
417
|
-
// description:
|
|
418
|
-
// "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.",
|
|
419
|
-
// },
|
|
420
|
-
// subtasks: {
|
|
421
|
-
// type: "array",
|
|
422
|
-
// items: {
|
|
423
|
-
// type: "object",
|
|
424
|
-
// properties: {
|
|
425
|
-
// title: {
|
|
426
|
-
// type: "string",
|
|
427
|
-
// description: "Subtask title",
|
|
428
|
-
// },
|
|
429
|
-
// content: {
|
|
430
|
-
// type: "string",
|
|
431
|
-
// description: "Subtask description/details",
|
|
432
|
-
// },
|
|
433
|
-
// topics: {
|
|
434
|
-
// type: "array",
|
|
435
|
-
// items: { type: "string" },
|
|
436
|
-
// description: "Topics/tags for this subtask",
|
|
437
|
-
// },
|
|
438
|
-
// status: {
|
|
439
|
-
// type: "string",
|
|
440
|
-
// enum: [
|
|
441
|
-
// "pending",
|
|
442
|
-
// "in_progress",
|
|
443
|
-
// "completed",
|
|
444
|
-
// "invalidated",
|
|
445
|
-
// ],
|
|
446
|
-
// description: "Subtask status (default: pending)",
|
|
447
|
-
// default: "pending",
|
|
448
|
-
// },
|
|
449
|
-
// priority: {
|
|
450
|
-
// type: "string",
|
|
451
|
-
// enum: ["urgent", "high", "medium", "low"],
|
|
452
|
-
// description: "Subtask priority level (default: medium)",
|
|
453
|
-
// default: "medium",
|
|
454
|
-
// },
|
|
455
|
-
// },
|
|
456
|
-
// required: ["title", "content"],
|
|
457
|
-
// },
|
|
458
|
-
// description:
|
|
459
|
-
// "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
460
|
-
// },
|
|
461
|
-
// },
|
|
462
|
-
// required: ["title", "content"],
|
|
463
|
-
// },
|
|
464
|
-
// {
|
|
465
|
-
// type: "array",
|
|
466
|
-
// items: {
|
|
467
|
-
// type: "object",
|
|
468
|
-
// properties: {
|
|
469
|
-
// title: {
|
|
470
|
-
// type: "string",
|
|
471
|
-
// description: "Task title/summary",
|
|
472
|
-
// },
|
|
473
|
-
// content: {
|
|
474
|
-
// type: "string",
|
|
475
|
-
// description: "Detailed task description",
|
|
476
|
-
// },
|
|
477
|
-
// topics: {
|
|
478
|
-
// type: "array",
|
|
479
|
-
// items: { type: "string" },
|
|
480
|
-
// description: "Optional topics/tags for organization",
|
|
481
|
-
// },
|
|
482
|
-
// status: {
|
|
483
|
-
// type: "string",
|
|
484
|
-
// enum: [
|
|
485
|
-
// "pending",
|
|
486
|
-
// "in_progress",
|
|
487
|
-
// "completed",
|
|
488
|
-
// "invalidated",
|
|
489
|
-
// ],
|
|
490
|
-
// description: "Task status (default: pending)",
|
|
491
|
-
// default: "pending",
|
|
492
|
-
// },
|
|
493
|
-
// priority: {
|
|
494
|
-
// type: "string",
|
|
495
|
-
// enum: ["urgent", "high", "medium", "low"],
|
|
496
|
-
// description:
|
|
497
|
-
// "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.",
|
|
498
|
-
// default: "medium",
|
|
499
|
-
// },
|
|
500
|
-
// parent_id: {
|
|
501
|
-
// type: "string",
|
|
502
|
-
// description:
|
|
503
|
-
// "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.",
|
|
504
|
-
// },
|
|
505
|
-
// subtasks: {
|
|
506
|
-
// type: "array",
|
|
507
|
-
// items: {
|
|
508
|
-
// type: "object",
|
|
509
|
-
// properties: {
|
|
510
|
-
// title: {
|
|
511
|
-
// type: "string",
|
|
512
|
-
// description: "Subtask title",
|
|
513
|
-
// },
|
|
514
|
-
// content: {
|
|
515
|
-
// type: "string",
|
|
516
|
-
// description: "Subtask description/details",
|
|
517
|
-
// },
|
|
518
|
-
// topics: {
|
|
519
|
-
// type: "array",
|
|
520
|
-
// items: { type: "string" },
|
|
521
|
-
// description: "Topics/tags for this subtask",
|
|
522
|
-
// },
|
|
523
|
-
// status: {
|
|
524
|
-
// type: "string",
|
|
525
|
-
// enum: [
|
|
526
|
-
// "pending",
|
|
527
|
-
// "in_progress",
|
|
528
|
-
// "completed",
|
|
529
|
-
// "invalidated",
|
|
530
|
-
// ],
|
|
531
|
-
// description: "Subtask status (default: pending)",
|
|
532
|
-
// default: "pending",
|
|
533
|
-
// },
|
|
534
|
-
// priority: {
|
|
535
|
-
// type: "string",
|
|
536
|
-
// enum: ["urgent", "high", "medium", "low"],
|
|
537
|
-
// description:
|
|
538
|
-
// "Subtask priority level (default: medium)",
|
|
539
|
-
// default: "medium",
|
|
540
|
-
// },
|
|
541
|
-
// },
|
|
542
|
-
// required: ["title", "content"],
|
|
543
|
-
// },
|
|
544
|
-
// description:
|
|
545
|
-
// "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
546
|
-
// },
|
|
547
|
-
// },
|
|
548
|
-
// required: ["title", "content"],
|
|
549
|
-
// },
|
|
550
|
-
// },
|
|
551
|
-
// ],
|
|
552
|
-
// description: "Single task object or array of task objects to create",
|
|
553
|
-
// },
|
|
554
|
-
// },
|
|
555
|
-
// required: ["space_id", "tasks"],
|
|
556
|
-
// },
|
|
557
|
-
// },
|
|
558
264
|
{
|
|
559
265
|
name: "update_memory",
|
|
560
266
|
description:
|
|
@@ -714,92 +420,6 @@ const TOOLS = [
|
|
|
714
420
|
required: ["space_id"],
|
|
715
421
|
},
|
|
716
422
|
},
|
|
717
|
-
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
718
|
-
// {
|
|
719
|
-
// name: "update_task_status",
|
|
720
|
-
// description:
|
|
721
|
-
// "Change a task's status (pending/in_progress/completed/invalidated)",
|
|
722
|
-
// inputSchema: {
|
|
723
|
-
// type: "object",
|
|
724
|
-
// properties: {
|
|
725
|
-
// task_id: {
|
|
726
|
-
// type: "string",
|
|
727
|
-
// description: "Task ID to update",
|
|
728
|
-
// },
|
|
729
|
-
// status: {
|
|
730
|
-
// type: "string",
|
|
731
|
-
// enum: ["pending", "in_progress", "completed", "invalidated"],
|
|
732
|
-
// description: "New status",
|
|
733
|
-
// },
|
|
734
|
-
// },
|
|
735
|
-
// required: ["task_id", "status"],
|
|
736
|
-
// },
|
|
737
|
-
// },
|
|
738
|
-
{
|
|
739
|
-
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
740
|
-
// name: "update_task",
|
|
741
|
-
// description:
|
|
742
|
-
// "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.",
|
|
743
|
-
// inputSchema: {
|
|
744
|
-
// type: "object",
|
|
745
|
-
// properties: {
|
|
746
|
-
// updates: {
|
|
747
|
-
// oneOf: [
|
|
748
|
-
// {
|
|
749
|
-
// type: "object",
|
|
750
|
-
// properties: {
|
|
751
|
-
// task_id: {
|
|
752
|
-
// type: "string",
|
|
753
|
-
// description: "Task ID to update",
|
|
754
|
-
// },
|
|
755
|
-
// title: {
|
|
756
|
-
// type: "string",
|
|
757
|
-
// description: "New title (optional)",
|
|
758
|
-
// },
|
|
759
|
-
// content: {
|
|
760
|
-
// type: "string",
|
|
761
|
-
// description: "New content (optional)",
|
|
762
|
-
// },
|
|
763
|
-
// topics: {
|
|
764
|
-
// type: "array",
|
|
765
|
-
// items: { type: "string" },
|
|
766
|
-
// description: "New topics array (optional)",
|
|
767
|
-
// },
|
|
768
|
-
// },
|
|
769
|
-
// required: ["task_id"],
|
|
770
|
-
// },
|
|
771
|
-
// {
|
|
772
|
-
// type: "array",
|
|
773
|
-
// items: {
|
|
774
|
-
// type: "object",
|
|
775
|
-
// properties: {
|
|
776
|
-
// task_id: {
|
|
777
|
-
// type: "string",
|
|
778
|
-
// description: "Task ID to update",
|
|
779
|
-
// },
|
|
780
|
-
// title: {
|
|
781
|
-
// type: "string",
|
|
782
|
-
// description: "New title (optional)",
|
|
783
|
-
// },
|
|
784
|
-
// content: {
|
|
785
|
-
// type: "string",
|
|
786
|
-
// description: "New content (optional)",
|
|
787
|
-
// },
|
|
788
|
-
// topics: {
|
|
789
|
-
// type: "array",
|
|
790
|
-
// items: { type: "string" },
|
|
791
|
-
// description: "New topics array (optional)",
|
|
792
|
-
// },
|
|
793
|
-
// },
|
|
794
|
-
// required: ["task_id"],
|
|
795
|
-
// },
|
|
796
|
-
// },
|
|
797
|
-
// ],
|
|
798
|
-
// description: "Single update object or array of update objects",
|
|
799
|
-
// },
|
|
800
|
-
// },
|
|
801
|
-
// required: ["updates"],
|
|
802
|
-
},
|
|
803
423
|
{
|
|
804
424
|
name: "list_tasks",
|
|
805
425
|
description: "List tasks in a space with optional filtering",
|
|
@@ -829,57 +449,12 @@ const TOOLS = [
|
|
|
829
449
|
required: ["space_id"],
|
|
830
450
|
},
|
|
831
451
|
},
|
|
832
|
-
// DEPRECATED: Use update_memory instead (Nov 8, 2025)
|
|
833
|
-
// {
|
|
834
|
-
// name: "delete_task",
|
|
835
|
-
// description:
|
|
836
|
-
// "Delete one or more tasks in a single transaction. Accepts a single task ID or an array of task IDs for batch deletion.",
|
|
837
|
-
// inputSchema: {
|
|
838
|
-
// type: "object",
|
|
839
|
-
// properties: {
|
|
840
|
-
// task_ids: {
|
|
841
|
-
// oneOf: [
|
|
842
|
-
// {
|
|
843
|
-
// type: "string",
|
|
844
|
-
// description: "Single task ID to delete",
|
|
845
|
-
// },
|
|
846
|
-
// {
|
|
847
|
-
// type: "array",
|
|
848
|
-
// items: { type: "string" },
|
|
849
|
-
// description: "Array of task IDs to delete",
|
|
850
|
-
// },
|
|
851
|
-
// ],
|
|
852
|
-
// description: "Single task ID or array of task IDs to delete",
|
|
853
|
-
// },
|
|
854
|
-
// },
|
|
855
|
-
// required: ["task_ids"],
|
|
856
|
-
// },
|
|
857
|
-
// },
|
|
858
452
|
];
|
|
859
453
|
|
|
860
454
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
861
455
|
tools: TOOLS,
|
|
862
456
|
}));
|
|
863
457
|
|
|
864
|
-
async function handleAddMemory(args: any) {
|
|
865
|
-
// Require space_id to be provided
|
|
866
|
-
if (!args.space_id) {
|
|
867
|
-
throw new Error(
|
|
868
|
-
"space_id is required. Use list_spaces to see available options.",
|
|
869
|
-
);
|
|
870
|
-
}
|
|
871
|
-
|
|
872
|
-
if (!args.memories) {
|
|
873
|
-
throw new Error("memories parameter is required (single object or array)");
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
// Pass through to API
|
|
877
|
-
return makeApiCall("add-memory", {
|
|
878
|
-
space_id: args.space_id,
|
|
879
|
-
memories: args.memories,
|
|
880
|
-
});
|
|
881
|
-
}
|
|
882
|
-
|
|
883
458
|
async function handleSearchMemories(args: any) {
|
|
884
459
|
const {
|
|
885
460
|
space_id,
|
|
@@ -940,14 +515,6 @@ async function handleFetch(args: any) {
|
|
|
940
515
|
return makeApiCall("fetch", { id, ids });
|
|
941
516
|
}
|
|
942
517
|
|
|
943
|
-
/* async function handleDeleteMemory(args: any) {
|
|
944
|
-
const { memory_ids } = args as {
|
|
945
|
-
memory_ids: string | string[];
|
|
946
|
-
};
|
|
947
|
-
|
|
948
|
-
return makeApiCall("delete-memory", { memory_ids });
|
|
949
|
-
} */
|
|
950
|
-
|
|
951
518
|
async function handleListSpaces() {
|
|
952
519
|
return makeApiCall("list-spaces", {});
|
|
953
520
|
}
|
|
@@ -965,24 +532,6 @@ async function handleStart(args: any) {
|
|
|
965
532
|
const { space_id } = args as { space_id: string };
|
|
966
533
|
return makeApiCall("start", { space_id });
|
|
967
534
|
}
|
|
968
|
-
/*
|
|
969
|
-
async function handleAddTask(args: any) {
|
|
970
|
-
if (!args.space_id) {
|
|
971
|
-
throw new Error(
|
|
972
|
-
"space_id is required. Use list_spaces to see available options.",
|
|
973
|
-
);
|
|
974
|
-
}
|
|
975
|
-
|
|
976
|
-
if (!args.tasks) {
|
|
977
|
-
throw new Error("tasks parameter is required (single object or array)");
|
|
978
|
-
}
|
|
979
|
-
|
|
980
|
-
// Pass through to API
|
|
981
|
-
return makeApiCall("add-task", {
|
|
982
|
-
space_id: args.space_id,
|
|
983
|
-
tasks: args.tasks,
|
|
984
|
-
});
|
|
985
|
-
} */
|
|
986
535
|
|
|
987
536
|
async function handleUpdateMemory(args: any) {
|
|
988
537
|
if (!args.space_id) {
|
|
@@ -1006,33 +555,10 @@ async function handleUpdateMemory(args: any) {
|
|
|
1006
555
|
});
|
|
1007
556
|
}
|
|
1008
557
|
|
|
1009
|
-
async function handleUpdateTaskStatus(args: any) {
|
|
1010
|
-
return makeApiCall("update-task-status", args);
|
|
1011
|
-
}
|
|
1012
|
-
|
|
1013
|
-
async function handleUpdateTask(args: any) {
|
|
1014
|
-
if (!args.updates) {
|
|
1015
|
-
throw new Error("updates parameter is required (single object or array)");
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
// Pass through to API
|
|
1019
|
-
return makeApiCall("update-task", {
|
|
1020
|
-
updates: args.updates,
|
|
1021
|
-
});
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
558
|
async function handleListTasks(args: any) {
|
|
1025
559
|
return makeApiCall("list-tasks", args);
|
|
1026
560
|
}
|
|
1027
561
|
|
|
1028
|
-
async function handleDeleteTask(args: any) {
|
|
1029
|
-
const { task_ids } = args as {
|
|
1030
|
-
task_ids: string | string[];
|
|
1031
|
-
};
|
|
1032
|
-
|
|
1033
|
-
return makeApiCall("delete-task", { task_ids });
|
|
1034
|
-
}
|
|
1035
|
-
|
|
1036
562
|
server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
|
|
1037
563
|
const { name, arguments: args } = request.params;
|
|
1038
564
|
|
|
@@ -1040,9 +566,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
|
|
|
1040
566
|
let result: any;
|
|
1041
567
|
|
|
1042
568
|
switch (name) {
|
|
1043
|
-
// DEPRECATED: case "add_memory":
|
|
1044
|
-
// DEPRECATED: result = await handleAddMemory(args);
|
|
1045
|
-
// DEPRECATED: break;
|
|
1046
569
|
case "search_memories":
|
|
1047
570
|
result = await handleSearchMemories(args);
|
|
1048
571
|
break;
|
|
@@ -1052,13 +575,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
|
|
|
1052
575
|
case "fetch":
|
|
1053
576
|
result = await handleFetch(args);
|
|
1054
577
|
break;
|
|
1055
|
-
// DISABLED: get_entities handler - not useful in current form
|
|
1056
|
-
// case "get_entities":
|
|
1057
|
-
// result = await handleGetEntities(args);
|
|
1058
|
-
// break;
|
|
1059
|
-
// DEPRECATED: case "delete_memory":
|
|
1060
|
-
// DEPRECATED: result = await handleDeleteMemory(args);
|
|
1061
|
-
// DEPRECATED: break;
|
|
1062
578
|
case "list_spaces":
|
|
1063
579
|
result = await handleListSpaces();
|
|
1064
580
|
break;
|
|
@@ -1071,24 +587,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
|
|
|
1071
587
|
case "start":
|
|
1072
588
|
result = await handleStart(args);
|
|
1073
589
|
break;
|
|
1074
|
-
// DEPRECATED: case "add_task":
|
|
1075
|
-
// DEPRECATED: result = await handleAddTask(args);
|
|
1076
|
-
// DEPRECATED: break;
|
|
1077
590
|
case "update_memory":
|
|
1078
591
|
result = await handleUpdateMemory(args);
|
|
1079
592
|
break;
|
|
1080
|
-
// DEPRECATED: case "update_task_status":
|
|
1081
|
-
// DEPRECATED: result = await handleUpdateTaskStatus(args);
|
|
1082
|
-
// DEPRECATED: break;
|
|
1083
|
-
// DEPRECATED: case "update_task":
|
|
1084
|
-
// DEPRECATED: result = await handleUpdateTask(args);
|
|
1085
|
-
// DEPRECATED: break;
|
|
1086
593
|
case "list_tasks":
|
|
1087
594
|
result = await handleListTasks(args);
|
|
1088
595
|
break;
|
|
1089
|
-
// DEPRECATED: case "delete_task":
|
|
1090
|
-
// DEPRECATED: result = await handleDeleteTask(args);
|
|
1091
|
-
// DEPRECATED: break;
|
|
1092
596
|
default:
|
|
1093
597
|
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
1094
598
|
}
|