@intangle/mcp-server 1.1.7 → 1.1.8

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.
Files changed (3) hide show
  1. package/dist/index.js +0 -484
  2. package/index.ts +0 -497
  3. 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).",
@@ -323,193 +215,6 @@ const TOOLS = [
323
215
  required: ["space_id"],
324
216
  },
325
217
  },
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
218
  {
514
219
  name: "update_memory",
515
220
  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 +372,6 @@ const TOOLS = [
667
372
  required: ["space_id"],
668
373
  },
669
374
  },
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
375
  {
757
376
  name: "list_tasks",
758
377
  description: "List tasks in a space with optional filtering",
@@ -782,50 +401,10 @@ const TOOLS = [
782
401
  required: ["space_id"],
783
402
  },
784
403
  },
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
404
  ];
812
405
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
813
406
  tools: TOOLS,
814
407
  }));
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
408
  async function handleSearchMemories(args) {
830
409
  const { space_id, query, topics, max_results = 10, } = args;
831
410
  // Require space_id
@@ -856,13 +435,6 @@ async function handleFetch(args) {
856
435
  const { id, ids } = args;
857
436
  return makeApiCall("fetch", { id, ids });
858
437
  }
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
438
  async function handleListSpaces() {
867
439
  return makeApiCall("list-spaces", {});
868
440
  }
@@ -877,24 +449,6 @@ async function handleStart(args) {
877
449
  const { space_id } = args;
878
450
  return makeApiCall("start", { space_id });
879
451
  }
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
452
  async function handleUpdateMemory(args) {
899
453
  if (!args.space_id) {
900
454
  throw new Error("space_id is required. Use list_spaces to see available options.");
@@ -910,33 +464,14 @@ async function handleUpdateMemory(args) {
910
464
  delete: args.delete,
911
465
  });
912
466
  }
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
467
  async function handleListTasks(args) {
926
468
  return makeApiCall("list-tasks", args);
927
469
  }
928
- async function handleDeleteTask(args) {
929
- const { task_ids } = args;
930
- return makeApiCall("delete-task", { task_ids });
931
- }
932
470
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
933
471
  const { name, arguments: args } = request.params;
934
472
  try {
935
473
  let result;
936
474
  switch (name) {
937
- // DEPRECATED: case "add_memory":
938
- // DEPRECATED: result = await handleAddMemory(args);
939
- // DEPRECATED: break;
940
475
  case "search_memories":
941
476
  result = await handleSearchMemories(args);
942
477
  break;
@@ -946,13 +481,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
946
481
  case "fetch":
947
482
  result = await handleFetch(args);
948
483
  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
484
  case "list_spaces":
957
485
  result = await handleListSpaces();
958
486
  break;
@@ -965,24 +493,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
965
493
  case "start":
966
494
  result = await handleStart(args);
967
495
  break;
968
- // DEPRECATED: case "add_task":
969
- // DEPRECATED: result = await handleAddTask(args);
970
- // DEPRECATED: break;
971
496
  case "update_memory":
972
497
  result = await handleUpdateMemory(args);
973
498
  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
499
  case "list_tasks":
981
500
  result = await handleListTasks(args);
982
501
  break;
983
- // DEPRECATED: case "delete_task":
984
- // DEPRECATED: result = await handleDeleteTask(args);
985
- // DEPRECATED: break;
986
502
  default:
987
503
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
988
504
  }
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:
@@ -368,193 +260,6 @@ const TOOLS = [
368
260
  required: ["space_id"],
369
261
  },
370
262
  },
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
263
  {
559
264
  name: "update_memory",
560
265
  description:
@@ -714,92 +419,6 @@ const TOOLS = [
714
419
  required: ["space_id"],
715
420
  },
716
421
  },
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
422
  {
804
423
  name: "list_tasks",
805
424
  description: "List tasks in a space with optional filtering",
@@ -829,57 +448,12 @@ const TOOLS = [
829
448
  required: ["space_id"],
830
449
  },
831
450
  },
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
451
  ];
859
452
 
860
453
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
861
454
  tools: TOOLS,
862
455
  }));
863
456
 
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
457
  async function handleSearchMemories(args: any) {
884
458
  const {
885
459
  space_id,
@@ -940,14 +514,6 @@ async function handleFetch(args: any) {
940
514
  return makeApiCall("fetch", { id, ids });
941
515
  }
942
516
 
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
517
  async function handleListSpaces() {
952
518
  return makeApiCall("list-spaces", {});
953
519
  }
@@ -965,24 +531,6 @@ async function handleStart(args: any) {
965
531
  const { space_id } = args as { space_id: string };
966
532
  return makeApiCall("start", { space_id });
967
533
  }
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
534
 
987
535
  async function handleUpdateMemory(args: any) {
988
536
  if (!args.space_id) {
@@ -1006,33 +554,10 @@ async function handleUpdateMemory(args: any) {
1006
554
  });
1007
555
  }
1008
556
 
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
557
  async function handleListTasks(args: any) {
1025
558
  return makeApiCall("list-tasks", args);
1026
559
  }
1027
560
 
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
561
  server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
1037
562
  const { name, arguments: args } = request.params;
1038
563
 
@@ -1040,9 +565,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
1040
565
  let result: any;
1041
566
 
1042
567
  switch (name) {
1043
- // DEPRECATED: case "add_memory":
1044
- // DEPRECATED: result = await handleAddMemory(args);
1045
- // DEPRECATED: break;
1046
568
  case "search_memories":
1047
569
  result = await handleSearchMemories(args);
1048
570
  break;
@@ -1052,13 +574,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
1052
574
  case "fetch":
1053
575
  result = await handleFetch(args);
1054
576
  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
577
  case "list_spaces":
1063
578
  result = await handleListSpaces();
1064
579
  break;
@@ -1071,24 +586,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
1071
586
  case "start":
1072
587
  result = await handleStart(args);
1073
588
  break;
1074
- // DEPRECATED: case "add_task":
1075
- // DEPRECATED: result = await handleAddTask(args);
1076
- // DEPRECATED: break;
1077
589
  case "update_memory":
1078
590
  result = await handleUpdateMemory(args);
1079
591
  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
592
  case "list_tasks":
1087
593
  result = await handleListTasks(args);
1088
594
  break;
1089
- // DEPRECATED: case "delete_task":
1090
- // DEPRECATED: result = await handleDeleteTask(args);
1091
- // DEPRECATED: break;
1092
595
  default:
1093
596
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
1094
597
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intangle/mcp-server",
3
- "version": "1.1.7",
3
+ "version": "1.1.8",
4
4
  "description": "Model Context Protocol server for Intangle - AI memory that persists across conversations",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",