@intangle/mcp-server 1.0.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +97 -29
- package/index.ts +99 -31
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ if (!MCP_API_KEY) {
|
|
|
22
22
|
console.log("Intangle MCP Server starting - connecting to", API_BASE_URL);
|
|
23
23
|
// Version checking
|
|
24
24
|
// IMPORTANT: Update BOTH package.json version AND this constant when bumping version
|
|
25
|
-
const CURRENT_VERSION = "1.0
|
|
25
|
+
const CURRENT_VERSION = "1.1.0";
|
|
26
26
|
let latestVersion = null;
|
|
27
27
|
let versionCheckDone = false;
|
|
28
28
|
async function checkVersion() {
|
|
@@ -75,7 +75,7 @@ const server = new Server({
|
|
|
75
75
|
const TOOLS = [
|
|
76
76
|
{
|
|
77
77
|
name: "add_memory",
|
|
78
|
-
description: "Store
|
|
78
|
+
description: "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.",
|
|
79
79
|
inputSchema: {
|
|
80
80
|
type: "object",
|
|
81
81
|
properties: {
|
|
@@ -135,7 +135,7 @@ const TOOLS = [
|
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
name: "search_memories",
|
|
138
|
-
description: "Search through stored
|
|
138
|
+
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.",
|
|
139
139
|
inputSchema: {
|
|
140
140
|
type: "object",
|
|
141
141
|
properties: {
|
|
@@ -163,7 +163,7 @@ const TOOLS = [
|
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
name: "get_recent_memories",
|
|
166
|
-
description: "Get the most recent
|
|
166
|
+
description: "Get the most recent CONTEXT items (general information). For recent tasks, use list_tasks instead. NOTE: This tool is called 'get_recent_memories' (not 'fetch'). Returns fully decrypted data. REQUIRES space_id parameter.",
|
|
167
167
|
inputSchema: {
|
|
168
168
|
type: "object",
|
|
169
169
|
properties: {
|
|
@@ -187,20 +187,20 @@ const TOOLS = [
|
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
name: "get_entities",
|
|
190
|
-
description: "Get extracted entities (people, places, concepts) from
|
|
190
|
+
description: "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.",
|
|
191
191
|
inputSchema: {
|
|
192
192
|
type: "object",
|
|
193
193
|
properties: {
|
|
194
194
|
memory_id: {
|
|
195
195
|
type: "string",
|
|
196
|
-
description: "
|
|
196
|
+
description: "Memory ID to get entities for. RECOMMENDED: Always provide memory_id to get focused results.",
|
|
197
197
|
},
|
|
198
198
|
},
|
|
199
199
|
},
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
202
|
name: "delete_memory",
|
|
203
|
-
description: "Delete one or more
|
|
203
|
+
description: "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.",
|
|
204
204
|
inputSchema: {
|
|
205
205
|
type: "object",
|
|
206
206
|
properties: {
|
|
@@ -222,17 +222,9 @@ const TOOLS = [
|
|
|
222
222
|
required: ["memory_ids"],
|
|
223
223
|
},
|
|
224
224
|
},
|
|
225
|
-
{
|
|
226
|
-
name: "debug_memory_structure",
|
|
227
|
-
description: "Debug tool to inspect the current memory structure in the database",
|
|
228
|
-
inputSchema: {
|
|
229
|
-
type: "object",
|
|
230
|
-
properties: {},
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
225
|
{
|
|
234
226
|
name: "list_spaces",
|
|
235
|
-
description: "Get all available spaces with their descriptions and
|
|
227
|
+
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).",
|
|
236
228
|
inputSchema: {
|
|
237
229
|
type: "object",
|
|
238
230
|
properties: {},
|
|
@@ -240,7 +232,7 @@ const TOOLS = [
|
|
|
240
232
|
},
|
|
241
233
|
{
|
|
242
234
|
name: "create_space",
|
|
243
|
-
description: "Create a new space with optional startup configuration. The 'start' tool loads this configuration when beginning work in this space. Checks user's plan limits and returns upgrade link if limit reached.",
|
|
235
|
+
description: "Create a new space with optional startup 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.",
|
|
244
236
|
inputSchema: {
|
|
245
237
|
type: "object",
|
|
246
238
|
properties: {
|
|
@@ -250,7 +242,7 @@ const TOOLS = [
|
|
|
250
242
|
},
|
|
251
243
|
description: {
|
|
252
244
|
type: "string",
|
|
253
|
-
description: "Brief description of what this space is for (e.g., 'Work-related
|
|
245
|
+
description: "Brief description of what this space is for (e.g., 'Work-related context and tasks')",
|
|
254
246
|
},
|
|
255
247
|
startup_context: {
|
|
256
248
|
type: "string",
|
|
@@ -285,7 +277,7 @@ const TOOLS = [
|
|
|
285
277
|
},
|
|
286
278
|
{
|
|
287
279
|
name: "start",
|
|
288
|
-
description: "Start working in a space and get
|
|
280
|
+
description: "Start working in a space and get comprehensive initialization. Returns static context, auto-searched context (general information), preferences, and optionally pending tasks. This tool retrieves BOTH context AND tasks based on space configuration. Call this when starting a conversation in a space to get relevant information.",
|
|
289
281
|
inputSchema: {
|
|
290
282
|
type: "object",
|
|
291
283
|
properties: {
|
|
@@ -299,7 +291,7 @@ const TOOLS = [
|
|
|
299
291
|
},
|
|
300
292
|
{
|
|
301
293
|
name: "add_task",
|
|
302
|
-
description: "Create one or more tasks in your space with status tracking. Accepts a single task object or an array of task objects
|
|
294
|
+
description: "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'}]}}",
|
|
303
295
|
inputSchema: {
|
|
304
296
|
type: "object",
|
|
305
297
|
properties: {
|
|
@@ -331,9 +323,50 @@ const TOOLS = [
|
|
|
331
323
|
description: "Task status (default: pending)",
|
|
332
324
|
default: "pending",
|
|
333
325
|
},
|
|
326
|
+
priority: {
|
|
327
|
+
type: "string",
|
|
328
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
329
|
+
description: "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.",
|
|
330
|
+
default: "medium",
|
|
331
|
+
},
|
|
334
332
|
parent_id: {
|
|
335
333
|
type: "string",
|
|
336
|
-
description: "Optional parent task ID to create this as a subtask",
|
|
334
|
+
description: "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.",
|
|
335
|
+
},
|
|
336
|
+
subtasks: {
|
|
337
|
+
type: "array",
|
|
338
|
+
items: {
|
|
339
|
+
type: "object",
|
|
340
|
+
properties: {
|
|
341
|
+
title: {
|
|
342
|
+
type: "string",
|
|
343
|
+
description: "Subtask title",
|
|
344
|
+
},
|
|
345
|
+
content: {
|
|
346
|
+
type: "string",
|
|
347
|
+
description: "Subtask description/details",
|
|
348
|
+
},
|
|
349
|
+
topics: {
|
|
350
|
+
type: "array",
|
|
351
|
+
items: { type: "string" },
|
|
352
|
+
description: "Topics/tags for this subtask",
|
|
353
|
+
},
|
|
354
|
+
status: {
|
|
355
|
+
type: "string",
|
|
356
|
+
enum: ["pending", "in_progress", "completed", "invalidated"],
|
|
357
|
+
description: "Subtask status (default: pending)",
|
|
358
|
+
default: "pending",
|
|
359
|
+
},
|
|
360
|
+
priority: {
|
|
361
|
+
type: "string",
|
|
362
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
363
|
+
description: "Subtask priority level (default: medium)",
|
|
364
|
+
default: "medium",
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
required: ["title", "content"],
|
|
368
|
+
},
|
|
369
|
+
description: "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
337
370
|
},
|
|
338
371
|
},
|
|
339
372
|
required: ["title", "content"],
|
|
@@ -362,9 +395,50 @@ const TOOLS = [
|
|
|
362
395
|
description: "Task status (default: pending)",
|
|
363
396
|
default: "pending",
|
|
364
397
|
},
|
|
398
|
+
priority: {
|
|
399
|
+
type: "string",
|
|
400
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
401
|
+
description: "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.",
|
|
402
|
+
default: "medium",
|
|
403
|
+
},
|
|
365
404
|
parent_id: {
|
|
366
405
|
type: "string",
|
|
367
|
-
description: "Optional parent task ID to create this as a subtask",
|
|
406
|
+
description: "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.",
|
|
407
|
+
},
|
|
408
|
+
subtasks: {
|
|
409
|
+
type: "array",
|
|
410
|
+
items: {
|
|
411
|
+
type: "object",
|
|
412
|
+
properties: {
|
|
413
|
+
title: {
|
|
414
|
+
type: "string",
|
|
415
|
+
description: "Subtask title",
|
|
416
|
+
},
|
|
417
|
+
content: {
|
|
418
|
+
type: "string",
|
|
419
|
+
description: "Subtask description/details",
|
|
420
|
+
},
|
|
421
|
+
topics: {
|
|
422
|
+
type: "array",
|
|
423
|
+
items: { type: "string" },
|
|
424
|
+
description: "Topics/tags for this subtask",
|
|
425
|
+
},
|
|
426
|
+
status: {
|
|
427
|
+
type: "string",
|
|
428
|
+
enum: ["pending", "in_progress", "completed", "invalidated"],
|
|
429
|
+
description: "Subtask status (default: pending)",
|
|
430
|
+
default: "pending",
|
|
431
|
+
},
|
|
432
|
+
priority: {
|
|
433
|
+
type: "string",
|
|
434
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
435
|
+
description: "Subtask priority level (default: medium)",
|
|
436
|
+
default: "medium",
|
|
437
|
+
},
|
|
438
|
+
},
|
|
439
|
+
required: ["title", "content"],
|
|
440
|
+
},
|
|
441
|
+
description: "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
368
442
|
},
|
|
369
443
|
},
|
|
370
444
|
required: ["title", "content"],
|
|
@@ -398,7 +472,7 @@ const TOOLS = [
|
|
|
398
472
|
},
|
|
399
473
|
{
|
|
400
474
|
name: "update_task",
|
|
401
|
-
description: "Update one or more
|
|
475
|
+
description: "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.",
|
|
402
476
|
inputSchema: {
|
|
403
477
|
type: "object",
|
|
404
478
|
properties: {
|
|
@@ -565,9 +639,6 @@ async function handleDeleteMemory(args) {
|
|
|
565
639
|
const { memory_ids } = args;
|
|
566
640
|
return makeApiCall("delete-memory", { memory_ids });
|
|
567
641
|
}
|
|
568
|
-
async function handleDebugStructure() {
|
|
569
|
-
return makeApiCall("debug-structure", {});
|
|
570
|
-
}
|
|
571
642
|
async function handleListSpaces() {
|
|
572
643
|
return makeApiCall("list-spaces", {});
|
|
573
644
|
}
|
|
@@ -634,9 +705,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
634
705
|
case "delete_memory":
|
|
635
706
|
result = await handleDeleteMemory(args);
|
|
636
707
|
break;
|
|
637
|
-
case "debug_memory_structure":
|
|
638
|
-
result = await handleDebugStructure();
|
|
639
|
-
break;
|
|
640
708
|
case "list_spaces":
|
|
641
709
|
result = await handleListSpaces();
|
|
642
710
|
break;
|
package/index.ts
CHANGED
|
@@ -35,7 +35,7 @@ console.log("Intangle MCP Server starting - connecting to", API_BASE_URL);
|
|
|
35
35
|
|
|
36
36
|
// Version checking
|
|
37
37
|
// IMPORTANT: Update BOTH package.json version AND this constant when bumping version
|
|
38
|
-
const CURRENT_VERSION = "1.0
|
|
38
|
+
const CURRENT_VERSION = "1.1.0";
|
|
39
39
|
let latestVersion: string | null = null;
|
|
40
40
|
let versionCheckDone = false;
|
|
41
41
|
|
|
@@ -100,7 +100,7 @@ const TOOLS = [
|
|
|
100
100
|
{
|
|
101
101
|
name: "add_memory",
|
|
102
102
|
description:
|
|
103
|
-
"Store
|
|
103
|
+
"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.",
|
|
104
104
|
inputSchema: {
|
|
105
105
|
type: "object",
|
|
106
106
|
properties: {
|
|
@@ -164,7 +164,7 @@ const TOOLS = [
|
|
|
164
164
|
{
|
|
165
165
|
name: "search_memories",
|
|
166
166
|
description:
|
|
167
|
-
"Search through stored
|
|
167
|
+
"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.",
|
|
168
168
|
inputSchema: {
|
|
169
169
|
type: "object",
|
|
170
170
|
properties: {
|
|
@@ -194,7 +194,7 @@ const TOOLS = [
|
|
|
194
194
|
{
|
|
195
195
|
name: "get_recent_memories",
|
|
196
196
|
description:
|
|
197
|
-
"Get the most recent
|
|
197
|
+
"Get the most recent CONTEXT items (general information). For recent tasks, use list_tasks instead. NOTE: This tool is called 'get_recent_memories' (not 'fetch'). Returns fully decrypted data. REQUIRES space_id parameter.",
|
|
198
198
|
inputSchema: {
|
|
199
199
|
type: "object",
|
|
200
200
|
properties: {
|
|
@@ -220,20 +220,20 @@ const TOOLS = [
|
|
|
220
220
|
{
|
|
221
221
|
name: "get_entities",
|
|
222
222
|
description:
|
|
223
|
-
"Get extracted entities (people, places, concepts) from
|
|
223
|
+
"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.",
|
|
224
224
|
inputSchema: {
|
|
225
225
|
type: "object",
|
|
226
226
|
properties: {
|
|
227
227
|
memory_id: {
|
|
228
228
|
type: "string",
|
|
229
|
-
description: "
|
|
229
|
+
description: "Memory ID to get entities for. RECOMMENDED: Always provide memory_id to get focused results.",
|
|
230
230
|
},
|
|
231
231
|
},
|
|
232
232
|
},
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
name: "delete_memory",
|
|
236
|
-
description: "Delete one or more
|
|
236
|
+
description: "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.",
|
|
237
237
|
inputSchema: {
|
|
238
238
|
type: "object",
|
|
239
239
|
properties: {
|
|
@@ -255,19 +255,10 @@ const TOOLS = [
|
|
|
255
255
|
required: ["memory_ids"],
|
|
256
256
|
},
|
|
257
257
|
},
|
|
258
|
-
{
|
|
259
|
-
name: "debug_memory_structure",
|
|
260
|
-
description:
|
|
261
|
-
"Debug tool to inspect the current memory structure in the database",
|
|
262
|
-
inputSchema: {
|
|
263
|
-
type: "object",
|
|
264
|
-
properties: {},
|
|
265
|
-
},
|
|
266
|
-
},
|
|
267
258
|
{
|
|
268
259
|
name: "list_spaces",
|
|
269
260
|
description:
|
|
270
|
-
"Get all available spaces with their descriptions and
|
|
261
|
+
"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).",
|
|
271
262
|
inputSchema: {
|
|
272
263
|
type: "object",
|
|
273
264
|
properties: {},
|
|
@@ -276,7 +267,7 @@ const TOOLS = [
|
|
|
276
267
|
{
|
|
277
268
|
name: "create_space",
|
|
278
269
|
description:
|
|
279
|
-
"Create a new space with optional startup configuration. 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
|
+
"Create a new space with optional startup 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.",
|
|
280
271
|
inputSchema: {
|
|
281
272
|
type: "object",
|
|
282
273
|
properties: {
|
|
@@ -286,7 +277,7 @@ const TOOLS = [
|
|
|
286
277
|
},
|
|
287
278
|
description: {
|
|
288
279
|
type: "string",
|
|
289
|
-
description: "Brief description of what this space is for (e.g., 'Work-related
|
|
280
|
+
description: "Brief description of what this space is for (e.g., 'Work-related context and tasks')",
|
|
290
281
|
},
|
|
291
282
|
startup_context: {
|
|
292
283
|
type: "string",
|
|
@@ -322,7 +313,7 @@ const TOOLS = [
|
|
|
322
313
|
{
|
|
323
314
|
name: "start",
|
|
324
315
|
description:
|
|
325
|
-
"Start working in a space and get
|
|
316
|
+
"Start working in a space and get comprehensive initialization. Returns static context, auto-searched context (general information), preferences, and optionally pending tasks. This tool retrieves BOTH context AND tasks based on space configuration. Call this when starting a conversation in a space to get relevant information.",
|
|
326
317
|
inputSchema: {
|
|
327
318
|
type: "object",
|
|
328
319
|
properties: {
|
|
@@ -337,7 +328,7 @@ const TOOLS = [
|
|
|
337
328
|
{
|
|
338
329
|
name: "add_task",
|
|
339
330
|
description:
|
|
340
|
-
"Create one or more tasks in your space with status tracking. Accepts a single task object or an array of task objects
|
|
331
|
+
"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'}]}}",
|
|
341
332
|
inputSchema: {
|
|
342
333
|
type: "object",
|
|
343
334
|
properties: {
|
|
@@ -370,9 +361,51 @@ const TOOLS = [
|
|
|
370
361
|
description: "Task status (default: pending)",
|
|
371
362
|
default: "pending",
|
|
372
363
|
},
|
|
364
|
+
priority: {
|
|
365
|
+
type: "string",
|
|
366
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
367
|
+
description:
|
|
368
|
+
"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.",
|
|
369
|
+
default: "medium",
|
|
370
|
+
},
|
|
373
371
|
parent_id: {
|
|
374
372
|
type: "string",
|
|
375
|
-
description: "Optional parent task ID to create this as a subtask",
|
|
373
|
+
description: "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: ["pending", "in_progress", "completed", "invalidated"],
|
|
396
|
+
description: "Subtask status (default: pending)",
|
|
397
|
+
default: "pending",
|
|
398
|
+
},
|
|
399
|
+
priority: {
|
|
400
|
+
type: "string",
|
|
401
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
402
|
+
description: "Subtask priority level (default: medium)",
|
|
403
|
+
default: "medium",
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
required: ["title", "content"],
|
|
407
|
+
},
|
|
408
|
+
description: "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
376
409
|
},
|
|
377
410
|
},
|
|
378
411
|
required: ["title", "content"],
|
|
@@ -401,9 +434,51 @@ const TOOLS = [
|
|
|
401
434
|
description: "Task status (default: pending)",
|
|
402
435
|
default: "pending",
|
|
403
436
|
},
|
|
437
|
+
priority: {
|
|
438
|
+
type: "string",
|
|
439
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
440
|
+
description:
|
|
441
|
+
"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.",
|
|
442
|
+
default: "medium",
|
|
443
|
+
},
|
|
404
444
|
parent_id: {
|
|
405
445
|
type: "string",
|
|
406
|
-
description: "Optional parent task ID to create this as a subtask",
|
|
446
|
+
description: "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.",
|
|
447
|
+
},
|
|
448
|
+
subtasks: {
|
|
449
|
+
type: "array",
|
|
450
|
+
items: {
|
|
451
|
+
type: "object",
|
|
452
|
+
properties: {
|
|
453
|
+
title: {
|
|
454
|
+
type: "string",
|
|
455
|
+
description: "Subtask title",
|
|
456
|
+
},
|
|
457
|
+
content: {
|
|
458
|
+
type: "string",
|
|
459
|
+
description: "Subtask description/details",
|
|
460
|
+
},
|
|
461
|
+
topics: {
|
|
462
|
+
type: "array",
|
|
463
|
+
items: { type: "string" },
|
|
464
|
+
description: "Topics/tags for this subtask",
|
|
465
|
+
},
|
|
466
|
+
status: {
|
|
467
|
+
type: "string",
|
|
468
|
+
enum: ["pending", "in_progress", "completed", "invalidated"],
|
|
469
|
+
description: "Subtask status (default: pending)",
|
|
470
|
+
default: "pending",
|
|
471
|
+
},
|
|
472
|
+
priority: {
|
|
473
|
+
type: "string",
|
|
474
|
+
enum: ["urgent", "high", "medium", "low"],
|
|
475
|
+
description: "Subtask priority level (default: medium)",
|
|
476
|
+
default: "medium",
|
|
477
|
+
},
|
|
478
|
+
},
|
|
479
|
+
required: ["title", "content"],
|
|
480
|
+
},
|
|
481
|
+
description: "Optional array of subtasks to create under this parent task. Each will be automatically linked to the parent.",
|
|
407
482
|
},
|
|
408
483
|
},
|
|
409
484
|
required: ["title", "content"],
|
|
@@ -437,7 +512,7 @@ const TOOLS = [
|
|
|
437
512
|
},
|
|
438
513
|
{
|
|
439
514
|
name: "update_task",
|
|
440
|
-
description: "Update one or more
|
|
515
|
+
description: "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.",
|
|
441
516
|
inputSchema: {
|
|
442
517
|
type: "object",
|
|
443
518
|
properties: {
|
|
@@ -645,10 +720,6 @@ async function handleDeleteMemory(args: any) {
|
|
|
645
720
|
return makeApiCall("delete-memory", { memory_ids });
|
|
646
721
|
}
|
|
647
722
|
|
|
648
|
-
async function handleDebugStructure() {
|
|
649
|
-
return makeApiCall("debug-structure", {});
|
|
650
|
-
}
|
|
651
|
-
|
|
652
723
|
async function handleListSpaces() {
|
|
653
724
|
return makeApiCall("list-spaces", {});
|
|
654
725
|
}
|
|
@@ -734,9 +805,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
|
|
|
734
805
|
case "delete_memory":
|
|
735
806
|
result = await handleDeleteMemory(args);
|
|
736
807
|
break;
|
|
737
|
-
case "debug_memory_structure":
|
|
738
|
-
result = await handleDebugStructure();
|
|
739
|
-
break;
|
|
740
808
|
case "list_spaces":
|
|
741
809
|
result = await handleListSpaces();
|
|
742
810
|
break;
|