@intangle/mcp-server 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +80 -1
  2. package/index.ts +85 -1
  3. 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.6";
25
+ const CURRENT_VERSION = "1.0.7";
26
26
  let latestVersion = null;
27
27
  let versionCheckDone = false;
28
28
  async function checkVersion() {
@@ -184,6 +184,21 @@ const TOOLS = [
184
184
  required: ["memory_id"],
185
185
  },
186
186
  },
187
+ {
188
+ name: "batch_delete_memories",
189
+ description: "Delete multiple memories in a single transaction. All-or-nothing operation.",
190
+ inputSchema: {
191
+ type: "object",
192
+ properties: {
193
+ memory_ids: {
194
+ type: "array",
195
+ items: { type: "string" },
196
+ description: "Array of memory IDs to delete",
197
+ },
198
+ },
199
+ required: ["memory_ids"],
200
+ },
201
+ },
187
202
  {
188
203
  name: "debug_memory_structure",
189
204
  description: "Debug tool to inspect the current memory structure in the database",
@@ -200,6 +215,37 @@ const TOOLS = [
200
215
  properties: {},
201
216
  },
202
217
  },
218
+ {
219
+ name: "create_space",
220
+ 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.",
221
+ inputSchema: {
222
+ type: "object",
223
+ properties: {
224
+ name: {
225
+ type: "string",
226
+ description: "Name for the space (e.g., 'Work', 'Personal', 'Project X')",
227
+ },
228
+ description: {
229
+ type: "string",
230
+ description: "Brief description of what this space is for (e.g., 'Work-related memories and tasks')",
231
+ },
232
+ startup_context: {
233
+ type: "string",
234
+ description: "Context and keywords provided to AI when starting this space. Include role, preferences, common tasks, and relevant search terms. This helps the AI understand what information to prioritize from memory.",
235
+ },
236
+ startup_preferences: {
237
+ type: "string",
238
+ description: "AI behavior preferences for this space. Guides how the AI should interact and respond when working in this context (e.g., 'Be concise and technical', 'Focus on creative solutions').",
239
+ },
240
+ include_tasks: {
241
+ type: "boolean",
242
+ description: "Whether to automatically retrieve pending/in-progress tasks when running the 'start' tool for this space",
243
+ default: false,
244
+ },
245
+ },
246
+ required: ["name"],
247
+ },
248
+ },
203
249
  {
204
250
  name: "get_space_info",
205
251
  description: "Get detailed information about a specific space",
@@ -354,6 +400,21 @@ const TOOLS = [
354
400
  required: ["task_id"],
355
401
  },
356
402
  },
403
+ {
404
+ name: "batch_delete_tasks",
405
+ description: "Delete multiple tasks in a single transaction. All-or-nothing operation.",
406
+ inputSchema: {
407
+ type: "object",
408
+ properties: {
409
+ task_ids: {
410
+ type: "array",
411
+ items: { type: "string" },
412
+ description: "Array of task IDs to delete",
413
+ },
414
+ },
415
+ required: ["task_ids"],
416
+ },
417
+ },
357
418
  ];
358
419
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
359
420
  tools: TOOLS,
@@ -409,6 +470,9 @@ async function handleDebugStructure() {
409
470
  async function handleListSpaces() {
410
471
  return makeApiCall("list-spaces", {});
411
472
  }
473
+ async function handleCreateSpace(args) {
474
+ return makeApiCall("create-space", args);
475
+ }
412
476
  async function handleGetSpaceInfo(args) {
413
477
  const { space_id } = args;
414
478
  return makeApiCall("get-space-info", { space_id });
@@ -432,6 +496,12 @@ async function handleListTasks(args) {
432
496
  async function handleDeleteTask(args) {
433
497
  return makeApiCall("delete-task", args);
434
498
  }
499
+ async function handleBatchDeleteMemories(args) {
500
+ return makeApiCall("batch-delete-memories", args);
501
+ }
502
+ async function handleBatchDeleteTasks(args) {
503
+ return makeApiCall("batch-delete-tasks", args);
504
+ }
435
505
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
436
506
  const { name, arguments: args } = request.params;
437
507
  try {
@@ -458,6 +528,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
458
528
  case "list_spaces":
459
529
  result = await handleListSpaces();
460
530
  break;
531
+ case "create_space":
532
+ result = await handleCreateSpace(args);
533
+ break;
461
534
  case "get_space_info":
462
535
  result = await handleGetSpaceInfo(args);
463
536
  break;
@@ -479,6 +552,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
479
552
  case "delete_task":
480
553
  result = await handleDeleteTask(args);
481
554
  break;
555
+ case "batch_delete_memories":
556
+ result = await handleBatchDeleteMemories(args);
557
+ break;
558
+ case "batch_delete_tasks":
559
+ result = await handleBatchDeleteTasks(args);
560
+ break;
482
561
  default:
483
562
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
484
563
  }
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.6";
38
+ const CURRENT_VERSION = "1.0.7";
39
39
  let latestVersion: string | null = null;
40
40
  let versionCheckDone = false;
41
41
 
@@ -217,6 +217,22 @@ const TOOLS = [
217
217
  required: ["memory_id"],
218
218
  },
219
219
  },
220
+ {
221
+ name: "batch_delete_memories",
222
+ description:
223
+ "Delete multiple memories in a single transaction. All-or-nothing operation.",
224
+ inputSchema: {
225
+ type: "object",
226
+ properties: {
227
+ memory_ids: {
228
+ type: "array",
229
+ items: { type: "string" },
230
+ description: "Array of memory IDs to delete",
231
+ },
232
+ },
233
+ required: ["memory_ids"],
234
+ },
235
+ },
220
236
  {
221
237
  name: "debug_memory_structure",
222
238
  description:
@@ -235,6 +251,38 @@ const TOOLS = [
235
251
  properties: {},
236
252
  },
237
253
  },
254
+ {
255
+ name: "create_space",
256
+ description:
257
+ "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.",
258
+ inputSchema: {
259
+ type: "object",
260
+ properties: {
261
+ name: {
262
+ type: "string",
263
+ description: "Name for the space (e.g., 'Work', 'Personal', 'Project X')",
264
+ },
265
+ description: {
266
+ type: "string",
267
+ description: "Brief description of what this space is for (e.g., 'Work-related memories and tasks')",
268
+ },
269
+ startup_context: {
270
+ type: "string",
271
+ description: "Context and keywords provided to AI when starting this space. Include role, preferences, common tasks, and relevant search terms. This helps the AI understand what information to prioritize from memory.",
272
+ },
273
+ startup_preferences: {
274
+ type: "string",
275
+ description: "AI behavior preferences for this space. Guides how the AI should interact and respond when working in this context (e.g., 'Be concise and technical', 'Focus on creative solutions').",
276
+ },
277
+ include_tasks: {
278
+ type: "boolean",
279
+ description: "Whether to automatically retrieve pending/in-progress tasks when running the 'start' tool for this space",
280
+ default: false,
281
+ },
282
+ },
283
+ required: ["name"],
284
+ },
285
+ },
238
286
  {
239
287
  name: "get_space_info",
240
288
  description: "Get detailed information about a specific space",
@@ -392,6 +440,22 @@ const TOOLS = [
392
440
  required: ["task_id"],
393
441
  },
394
442
  },
443
+ {
444
+ name: "batch_delete_tasks",
445
+ description:
446
+ "Delete multiple tasks in a single transaction. All-or-nothing operation.",
447
+ inputSchema: {
448
+ type: "object",
449
+ properties: {
450
+ task_ids: {
451
+ type: "array",
452
+ items: { type: "string" },
453
+ description: "Array of task IDs to delete",
454
+ },
455
+ },
456
+ required: ["task_ids"],
457
+ },
458
+ },
395
459
  ];
396
460
 
397
461
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
@@ -491,6 +555,10 @@ async function handleListSpaces() {
491
555
  return makeApiCall("list-spaces", {});
492
556
  }
493
557
 
558
+ async function handleCreateSpace(args: any) {
559
+ return makeApiCall("create-space", args);
560
+ }
561
+
494
562
  async function handleGetSpaceInfo(args: any) {
495
563
  const { space_id } = args as { space_id: string };
496
564
  return makeApiCall("get-space-info", { space_id });
@@ -521,6 +589,13 @@ async function handleDeleteTask(args: any) {
521
589
  return makeApiCall("delete-task", args);
522
590
  }
523
591
 
592
+ async function handleBatchDeleteMemories(args: any) {
593
+ return makeApiCall("batch-delete-memories", args);
594
+ }
595
+
596
+ async function handleBatchDeleteTasks(args: any) {
597
+ return makeApiCall("batch-delete-tasks", args);
598
+ }
524
599
 
525
600
  server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
526
601
  const { name, arguments: args } = request.params;
@@ -550,6 +625,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
550
625
  case "list_spaces":
551
626
  result = await handleListSpaces();
552
627
  break;
628
+ case "create_space":
629
+ result = await handleCreateSpace(args);
630
+ break;
553
631
  case "get_space_info":
554
632
  result = await handleGetSpaceInfo(args);
555
633
  break;
@@ -571,6 +649,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
571
649
  case "delete_task":
572
650
  result = await handleDeleteTask(args);
573
651
  break;
652
+ case "batch_delete_memories":
653
+ result = await handleBatchDeleteMemories(args);
654
+ break;
655
+ case "batch_delete_tasks":
656
+ result = await handleBatchDeleteTasks(args);
657
+ break;
574
658
  default:
575
659
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
576
660
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intangle/mcp-server",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
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",