@noteplanco/noteplan-mcp 1.1.20 → 1.1.21

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 (45) hide show
  1. package/README.md +2 -0
  2. package/dist/noteplan/file-reader.d.ts.map +1 -1
  3. package/dist/noteplan/file-reader.js +47 -1
  4. package/dist/noteplan/file-reader.js.map +1 -1
  5. package/dist/noteplan/frontmatter-parser.d.ts +5 -2
  6. package/dist/noteplan/frontmatter-parser.d.ts.map +1 -1
  7. package/dist/noteplan/frontmatter-parser.js +106 -32
  8. package/dist/noteplan/frontmatter-parser.js.map +1 -1
  9. package/dist/noteplan/frontmatter-parser.test.js +216 -0
  10. package/dist/noteplan/frontmatter-parser.test.js.map +1 -1
  11. package/dist/server.d.ts.map +1 -1
  12. package/dist/server.js +70 -2
  13. package/dist/server.js.map +1 -1
  14. package/dist/tools/notes.d.ts +2 -0
  15. package/dist/tools/notes.d.ts.map +1 -1
  16. package/dist/tools/notes.js +20 -1
  17. package/dist/tools/notes.js.map +1 -1
  18. package/dist/tools/notes.test.js +11 -0
  19. package/dist/tools/notes.test.js.map +1 -1
  20. package/dist/tools/plugins.d.ts +3 -3
  21. package/dist/tools/plugins.d.ts.map +1 -1
  22. package/dist/tools/plugins.js +206 -74
  23. package/dist/tools/plugins.js.map +1 -1
  24. package/dist/tools/tasks.d.ts +131 -0
  25. package/dist/tools/tasks.d.ts.map +1 -1
  26. package/dist/tools/tasks.js +203 -0
  27. package/dist/tools/tasks.js.map +1 -1
  28. package/dist/tools/tasks.test.d.ts +2 -0
  29. package/dist/tools/tasks.test.d.ts.map +1 -0
  30. package/dist/tools/tasks.test.js +51 -0
  31. package/dist/tools/tasks.test.js.map +1 -0
  32. package/dist/utils/confirmation-tokens.d.ts.map +1 -1
  33. package/dist/utils/confirmation-tokens.js +6 -0
  34. package/dist/utils/confirmation-tokens.js.map +1 -1
  35. package/dist/utils/confirmation-tokens.test.js +42 -0
  36. package/dist/utils/confirmation-tokens.test.js.map +1 -1
  37. package/dist/utils/server-config.d.ts +9 -0
  38. package/dist/utils/server-config.d.ts.map +1 -0
  39. package/dist/utils/server-config.js +17 -0
  40. package/dist/utils/server-config.js.map +1 -0
  41. package/dist/utils/server-config.test.d.ts +2 -0
  42. package/dist/utils/server-config.test.d.ts.map +1 -0
  43. package/dist/utils/server-config.test.js +51 -0
  44. package/dist/utils/server-config.test.js.map +1 -0
  45. package/package.json +1 -1
@@ -227,6 +227,14 @@ describe('reconstructNote', () => {
227
227
  // setFrontmatterProperty
228
228
  // ---------------------------------------------------------------------------
229
229
  describe('setFrontmatterProperty', () => {
230
+ /**
231
+ * Helper: count how many times '---' appears as its own line in the output.
232
+ * A valid note should have exactly 0 (no frontmatter) or 2 (opening + closing).
233
+ */
234
+ function countDelimiters(content) {
235
+ return content.split('\n').filter(l => l.trim() === '---').length;
236
+ }
237
+ // ── Basic operations ──
230
238
  it('sets property on note with existing frontmatter', () => {
231
239
  const content = '---\ntitle: Existing\n---\nBody';
232
240
  const result = setFrontmatterProperty(content, 'tags', 'work');
@@ -262,11 +270,189 @@ describe('setFrontmatterProperty', () => {
262
270
  const parsed = parseNoteContent(result);
263
271
  expect(parsed.body).toBe('Line 1\nLine 2');
264
272
  });
273
+ // ── Bug report: duplicate frontmatter blocks ──
274
+ // When updating an existing key, the output must have exactly one
275
+ // frontmatter block (2 delimiters), not a new block prepended.
276
+ it('does not create duplicate frontmatter when updating a key with empty value', () => {
277
+ const content = '---\nmy-key: \nanother-key: some-value\n---\nBody text';
278
+ const result = setFrontmatterProperty(content, 'my-key', 'my-new-value');
279
+ expect(countDelimiters(result)).toBe(2);
280
+ expect(result).toBe('---\nmy-key: my-new-value\nanother-key: some-value\n---\nBody text');
281
+ });
282
+ it('does not create duplicate frontmatter when updating a key with existing value', () => {
283
+ const content = '---\nmy-key: old-value\nanother-key: some-value\n---\nBody text';
284
+ const result = setFrontmatterProperty(content, 'my-key', 'new-value');
285
+ expect(countDelimiters(result)).toBe(2);
286
+ const parsed = parseNoteContent(result);
287
+ expect(parsed.frontmatter['my-key']).toBe('new-value');
288
+ expect(parsed.frontmatter['another-key']).toBe('some-value');
289
+ });
290
+ it('does not create duplicate frontmatter when adding a new key to existing block', () => {
291
+ const content = '---\nexisting: value\n---\nBody';
292
+ const result = setFrontmatterProperty(content, 'new-key', 'new-value');
293
+ expect(countDelimiters(result)).toBe(2);
294
+ });
295
+ // ── Raw string output validation ──
296
+ // These tests check the exact string, not just parsed values, to catch
297
+ // issues like duplicate --- blocks that the parser might silently accept.
298
+ it('produces clean output when creating frontmatter from scratch', () => {
299
+ const content = 'Just a body';
300
+ const result = setFrontmatterProperty(content, 'title', 'Hello');
301
+ expect(result).toBe('---\ntitle: Hello\n---\nJust a body');
302
+ });
303
+ it('produces clean output when overwriting a value', () => {
304
+ const content = '---\ntitle: Old\n---\nBody';
305
+ const result = setFrontmatterProperty(content, 'title', 'New');
306
+ expect(result).toBe('---\ntitle: New\n---\nBody');
307
+ });
308
+ // ── Edge cases: key with no value / bare colon ──
309
+ it('handles key with no space after colon (bare colon)', () => {
310
+ const content = '---\nmy-key:\nanother-key: value\n---\nBody';
311
+ const result = setFrontmatterProperty(content, 'my-key', 'filled');
312
+ expect(countDelimiters(result)).toBe(2);
313
+ const parsed = parseNoteContent(result);
314
+ expect(parsed.frontmatter['my-key']).toBe('filled');
315
+ expect(parsed.frontmatter['another-key']).toBe('value');
316
+ });
317
+ it('handles key with only whitespace after colon', () => {
318
+ const content = '---\nmy-key: \nanother-key: value\n---\nBody';
319
+ const result = setFrontmatterProperty(content, 'my-key', 'filled');
320
+ expect(countDelimiters(result)).toBe(2);
321
+ const parsed = parseNoteContent(result);
322
+ expect(parsed.frontmatter['my-key']).toBe('filled');
323
+ });
324
+ // ── Edge cases: values containing special characters ──
325
+ it('handles value containing a colon', () => {
326
+ const content = '---\ntitle: My Note\n---\nBody';
327
+ const result = setFrontmatterProperty(content, 'url', 'https://example.com');
328
+ const parsed = parseNoteContent(result);
329
+ expect(parsed.frontmatter.url).toBe('https://example.com');
330
+ expect(countDelimiters(result)).toBe(2);
331
+ });
332
+ it('handles value containing triple dashes (not a delimiter)', () => {
333
+ const content = '---\ntitle: My Note\n---\nBody';
334
+ const result = setFrontmatterProperty(content, 'separator', '---');
335
+ expect(countDelimiters(result)).toBe(2);
336
+ // The value should be retrievable even though it looks like a delimiter
337
+ const parsed = parseNoteContent(result);
338
+ expect(parsed.frontmatter.separator).toBe('---');
339
+ });
340
+ // ── Edge cases: hyphenated keys (common in NotePlan) ──
341
+ it('handles hyphenated keys like bg-color', () => {
342
+ const content = '---\nbg-color: amber-50\n---\n# Daily Note';
343
+ const result = setFrontmatterProperty(content, 'bg-color', 'blue-100');
344
+ expect(countDelimiters(result)).toBe(2);
345
+ const parsed = parseNoteContent(result);
346
+ expect(parsed.frontmatter['bg-color']).toBe('blue-100');
347
+ expect(parsed.body).toBe('# Daily Note');
348
+ });
349
+ it('handles bg-pattern and bg-color together', () => {
350
+ const content = '---\nbg-color: amber-50\nbg-pattern: dotted\n---\n# Note';
351
+ const result = setFrontmatterProperty(content, 'bg-pattern', 'striped');
352
+ expect(countDelimiters(result)).toBe(2);
353
+ const parsed = parseNoteContent(result);
354
+ expect(parsed.frontmatter['bg-color']).toBe('amber-50');
355
+ expect(parsed.frontmatter['bg-pattern']).toBe('striped');
356
+ });
357
+ // ── Edge cases: body content that looks like frontmatter ──
358
+ it('does not get confused by --- thematic break in body', () => {
359
+ const content = '---\ntitle: Note\n---\nSome text\n\n---\n\nMore text';
360
+ const result = setFrontmatterProperty(content, 'title', 'Updated');
361
+ // Should only have 2 delimiters in the frontmatter, the body --- is content
362
+ const parsed = parseNoteContent(result);
363
+ expect(parsed.frontmatter.title).toBe('Updated');
364
+ expect(parsed.body).toContain('---');
365
+ expect(parsed.body).toContain('More text');
366
+ });
367
+ // ── Edge cases: empty / minimal notes ──
368
+ it('handles empty note content', () => {
369
+ const result = setFrontmatterProperty('', 'title', 'New');
370
+ const parsed = parseNoteContent(result);
371
+ expect(parsed.hasFrontmatter).toBe(true);
372
+ expect(parsed.frontmatter.title).toBe('New');
373
+ expect(countDelimiters(result)).toBe(2);
374
+ });
375
+ it('handles note with only frontmatter and no body', () => {
376
+ const content = '---\ntitle: Only FM\n---';
377
+ const result = setFrontmatterProperty(content, 'tags', 'test');
378
+ const parsed = parseNoteContent(result);
379
+ expect(parsed.frontmatter.title).toBe('Only FM');
380
+ expect(parsed.frontmatter.tags).toBe('test');
381
+ expect(countDelimiters(result)).toBe(2);
382
+ });
383
+ it('handles note with empty frontmatter block', () => {
384
+ const content = '---\n---\nBody';
385
+ const result = setFrontmatterProperty(content, 'title', 'Added');
386
+ const parsed = parseNoteContent(result);
387
+ expect(parsed.frontmatter.title).toBe('Added');
388
+ expect(countDelimiters(result)).toBe(2);
389
+ });
390
+ // ── Chained set_property calls (agentic workflow) ──
391
+ it('survives multiple chained setFrontmatterProperty calls', () => {
392
+ let content = '---\ntitle: Start\n---\nBody';
393
+ content = setFrontmatterProperty(content, 'tags', 'work');
394
+ content = setFrontmatterProperty(content, 'status', 'draft');
395
+ content = setFrontmatterProperty(content, 'title', 'Updated');
396
+ content = setFrontmatterProperty(content, 'priority', 'high');
397
+ expect(countDelimiters(content)).toBe(2);
398
+ const parsed = parseNoteContent(content);
399
+ expect(parsed.frontmatter.title).toBe('Updated');
400
+ expect(parsed.frontmatter.tags).toBe('work');
401
+ expect(parsed.frontmatter.status).toBe('draft');
402
+ expect(parsed.frontmatter.priority).toBe('high');
403
+ expect(parsed.body).toBe('Body');
404
+ });
405
+ it('survives chained calls starting from no frontmatter', () => {
406
+ let content = 'Plain note';
407
+ content = setFrontmatterProperty(content, 'title', 'First');
408
+ content = setFrontmatterProperty(content, 'tags', 'second');
409
+ content = setFrontmatterProperty(content, 'title', 'Overwritten');
410
+ expect(countDelimiters(content)).toBe(2);
411
+ const parsed = parseNoteContent(content);
412
+ expect(parsed.frontmatter.title).toBe('Overwritten');
413
+ expect(parsed.frontmatter.tags).toBe('second');
414
+ expect(parsed.body).toBe('Plain note');
415
+ });
416
+ // ── Edge cases: multiline / non-standard YAML ──
417
+ it('handles frontmatter with indented list values (YAML arrays)', () => {
418
+ const content = '---\ntitle: Note\ntags:\n - work\n - urgent\n---\nBody';
419
+ const result = setFrontmatterProperty(content, 'status', 'active');
420
+ // Should not produce duplicate frontmatter blocks
421
+ const delimCount = countDelimiters(result);
422
+ expect(delimCount).toBe(2);
423
+ });
424
+ it('handles frontmatter with quoted values', () => {
425
+ const content = '---\ntitle: "My: Special Note"\n---\nBody';
426
+ const result = setFrontmatterProperty(content, 'title', 'Updated');
427
+ expect(countDelimiters(result)).toBe(2);
428
+ const parsed = parseNoteContent(result);
429
+ expect(parsed.frontmatter.title).toBe('Updated');
430
+ });
431
+ it('handles frontmatter with blank line between properties', () => {
432
+ // Some editors insert blank lines in frontmatter — this is technically
433
+ // invalid YAML but users may have it in their notes.
434
+ const content = '---\ntitle: Note\n\ntags: work\n---\nBody';
435
+ const result = setFrontmatterProperty(content, 'title', 'Updated');
436
+ // Should not produce duplicate frontmatter — either update in-place
437
+ // or create new frontmatter, but never two blocks
438
+ const delimCount = countDelimiters(result);
439
+ expect(delimCount === 0 || delimCount === 2).toBe(true);
440
+ });
441
+ it('handles frontmatter with comment-like lines', () => {
442
+ // YAML supports # comments, some users may use them
443
+ const content = '---\ntitle: Note\n# this is a comment\ntags: work\n---\nBody';
444
+ const result = setFrontmatterProperty(content, 'title', 'Updated');
445
+ const delimCount = countDelimiters(result);
446
+ expect(delimCount === 0 || delimCount === 2).toBe(true);
447
+ });
265
448
  });
266
449
  // ---------------------------------------------------------------------------
267
450
  // removeFrontmatterProperty
268
451
  // ---------------------------------------------------------------------------
269
452
  describe('removeFrontmatterProperty', () => {
453
+ function countDelimiters(content) {
454
+ return content.split('\n').filter(l => l.trim() === '---').length;
455
+ }
270
456
  it('removes existing property', () => {
271
457
  const content = '---\ntitle: Remove Me\ntags: keep\n---\nBody';
272
458
  const result = removeFrontmatterProperty(content, 'title');
@@ -293,6 +479,36 @@ describe('removeFrontmatterProperty', () => {
293
479
  expect(parsed.frontmatter.b).toBeUndefined();
294
480
  expect(parsed.frontmatter.c).toBe('3');
295
481
  });
482
+ it('does not produce duplicate frontmatter blocks', () => {
483
+ const content = '---\ntitle: Keep\nremove-me: gone\n---\nBody';
484
+ const result = removeFrontmatterProperty(content, 'remove-me');
485
+ expect(countDelimiters(result)).toBe(2);
486
+ });
487
+ it('removes frontmatter entirely when last property is removed', () => {
488
+ const content = '---\nonly-key: value\n---\nBody';
489
+ const result = removeFrontmatterProperty(content, 'only-key');
490
+ // Should have no frontmatter block, just the body
491
+ expect(result).toBe('Body');
492
+ expect(countDelimiters(result)).toBe(0);
493
+ });
494
+ it('removes property with empty value', () => {
495
+ const content = '---\nempty-key: \nother: keep\n---\nBody';
496
+ const result = removeFrontmatterProperty(content, 'empty-key');
497
+ const parsed = parseNoteContent(result);
498
+ expect(parsed.frontmatter['empty-key']).toBeUndefined();
499
+ expect(parsed.frontmatter.other).toBe('keep');
500
+ expect(countDelimiters(result)).toBe(2);
501
+ });
502
+ it('handles chained remove calls', () => {
503
+ let content = '---\na: 1\nb: 2\nc: 3\n---\nBody';
504
+ content = removeFrontmatterProperty(content, 'a');
505
+ content = removeFrontmatterProperty(content, 'c');
506
+ const parsed = parseNoteContent(content);
507
+ expect(parsed.frontmatter.b).toBe('2');
508
+ expect(parsed.frontmatter.a).toBeUndefined();
509
+ expect(parsed.frontmatter.c).toBeUndefined();
510
+ expect(content.split('\n').filter(l => l.trim() === '---').length).toBe(2);
511
+ });
296
512
  });
297
513
  // ---------------------------------------------------------------------------
298
514
  // insertContentAtPosition – start
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter-parser.test.js","sourceRoot":"","sources":["../../src/noteplan/frontmatter-parser.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontmatter-parser.test.js","sourceRoot":"","sources":["../../src/noteplan/frontmatter-parser.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA26BnE,wBAAgB,YAAY,IAAI,MAAM,CAs8DrC;AAGD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BjD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA46BnE,wBAAgB,YAAY,IAAI,MAAM,CA0gErC;AAGD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BjD"}
package/dist/server.js CHANGED
@@ -24,6 +24,7 @@ import * as templateTools from './tools/templates.js';
24
24
  import * as attachmentTools from './tools/attachments.js';
25
25
  import { parseFlexibleDate } from './utils/date-utils.js';
26
26
  import { upgradeMessage, getNotePlanVersion, getMcpServerVersion, MIN_BUILD_ADVANCED_FEATURES, MIN_BUILD_CREATE_BACKUP } from './utils/version.js';
27
+ import { isReadOnly, isSkipDryRun } from './utils/server-config.js';
27
28
  import { initSqlite } from './noteplan/sqlite-loader.js';
28
29
  import { getDatabase, getDatabasePath, listSpaces as listSpacesFromDb } from './noteplan/sqlite-reader.js';
29
30
  const __filename = fileURLToPath(import.meta.url);
@@ -870,6 +871,7 @@ export function createServer() {
870
871
  '- Add tasks via `noteplan_paragraphs(action: add)` — the server auto-formats the task marker to match the user\'s NotePlan settings. Never write raw markers like `- [ ]` or `* [ ]`; just pass the task text.',
871
872
  '- Find tasks: `noteplan_paragraphs(action: search)` in one note, or `search_global` across all notes',
872
873
  '- Complete/update: `noteplan_paragraphs(action: complete/update)`',
874
+ '- Delete recurring: `noteplan_paragraphs(action: delete_recurring)` — deletes a task with @repeat tag and all its future occurrences in calendar notes',
873
875
  '- Use `heading` parameter to target a specific section (e.g., heading: "Tasks")',
874
876
  '',
875
877
  '## Destructive Operations',
@@ -927,6 +929,15 @@ export function createServer() {
927
929
  else {
928
930
  console.error('[noteplan-mcp] Space database: not found');
929
931
  }
932
+ // Log environment configuration
933
+ const readOnly = isReadOnly();
934
+ const skipDryRun = isSkipDryRun();
935
+ if (readOnly) {
936
+ console.error('[noteplan-mcp] Read-only mode: ENABLED (all write actions will be rejected)');
937
+ }
938
+ if (skipDryRun) {
939
+ console.error('[noteplan-mcp] Skip dry-run: ENABLED (confirmation tokens not required)');
940
+ }
930
941
  const toolDefinitions = [
931
942
  // ── Consolidated tools (16 — action/param-based dispatch) ──
932
943
  {
@@ -1296,8 +1307,8 @@ export function createServer() {
1296
1307
  properties: {
1297
1308
  action: {
1298
1309
  type: 'string',
1299
- enum: ['get', 'search', 'search_global', 'add', 'complete', 'update', 'list_actions'],
1300
- description: 'Action: get | search | search_global | add | complete | update | list_actions (discover all actions)',
1310
+ enum: ['get', 'search', 'search_global', 'add', 'complete', 'update', 'delete_recurring', 'list_actions'],
1311
+ description: 'Action: get | search | search_global | add | complete | update | delete_recurring | list_actions (discover all actions)',
1301
1312
  },
1302
1313
  id: {
1303
1314
  type: 'string',
@@ -1435,6 +1446,10 @@ export function createServer() {
1435
1446
  type: 'string',
1436
1447
  description: 'Cursor from previous page',
1437
1448
  },
1449
+ deleteSource: {
1450
+ type: 'boolean',
1451
+ description: 'Also delete the task from the source note (default: true) — used by delete_recurring',
1452
+ },
1438
1453
  },
1439
1454
  required: ['action'],
1440
1455
  },
@@ -2241,6 +2256,40 @@ export function createServer() {
2241
2256
  const registeredToolNames = annotatedToolDefinitions.map((tool) => tool.name);
2242
2257
  const registeredToolNameSet = new Set(registeredToolNames);
2243
2258
  const compactToolDefinitions = annotatedToolDefinitions.map((tool) => compactToolDefinition(tool));
2259
+ // ── Write actions map for read-only mode guard and description hints ──
2260
+ const WRITE_ACTIONS_MAP = {
2261
+ noteplan_manage_note: new Set(['create', 'update', 'delete', 'move', 'restore', 'rename', 'set_property', 'remove_property']),
2262
+ noteplan_edit_content: new Set(['insert', 'append', 'delete_lines', 'edit_line', 'replace_lines']),
2263
+ noteplan_paragraphs: new Set(['add', 'complete', 'update', 'delete_recurring']),
2264
+ noteplan_folders: new Set(['create', 'move', 'rename', 'delete']),
2265
+ noteplan_eventkit: new Set(['create_event', 'update_event', 'delete_event', 'create', 'complete', 'update', 'delete']),
2266
+ noteplan_memory: new Set(['save', 'update', 'delete']),
2267
+ noteplan_filters: new Set(['save', 'rename']),
2268
+ noteplan_ui: new Set(['run_plugin', 'backup']),
2269
+ noteplan_plugins: new Set(['create', 'delete', 'install', 'update_html', 'update_json', 'screenshot']),
2270
+ noteplan_themes: new Set(['save', 'set_active']),
2271
+ noteplan_embeddings: new Set(['sync', 'reset']),
2272
+ noteplan_attachments: new Set(['add', 'move']),
2273
+ };
2274
+ // Append mode hints to tool descriptions so the LLM knows about active config.
2275
+ // Only add hints to tools that actually have write actions.
2276
+ if (skipDryRun || readOnly) {
2277
+ const writeCapableTools = new Set(Object.keys(WRITE_ACTIONS_MAP));
2278
+ for (const tool of compactToolDefinitions) {
2279
+ if (!writeCapableTools.has(tool.name))
2280
+ continue;
2281
+ const hints = [];
2282
+ if (skipDryRun) {
2283
+ hints.push('NOTEPLAN_SKIP_DRY_RUN is enabled: skip dryRun, call write actions directly without confirmationToken.');
2284
+ }
2285
+ if (readOnly) {
2286
+ hints.push('NOTEPLAN_READ_ONLY is enabled: write actions are disabled and will be rejected.');
2287
+ }
2288
+ if (hints.length > 0) {
2289
+ tool.description += '\n\n' + hints.join(' ');
2290
+ }
2291
+ }
2292
+ }
2244
2293
  // Register tool listing handler — all 12 tools returned directly (no pagination needed)
2245
2294
  server.setRequestHandler(ListToolsRequestSchema, async () => {
2246
2295
  return { tools: compactToolDefinitions };
@@ -2335,6 +2384,7 @@ export function createServer() {
2335
2384
  { action: 'add', description: 'Add a task (requires target + content)' },
2336
2385
  { action: 'complete', description: 'Mark task done (requires filename + lineIndex or line)' },
2337
2386
  { action: 'update', description: 'Update task content/status (requires filename + lineIndex or line)' },
2387
+ { action: 'delete_recurring', description: 'Delete a recurring task and all future occurrences in calendar notes (requires note ref + lineIndex/line/taskQuery). Detects @repeat(X/Y) tag, strips it for comparison, and removes matching lines from all future daily notes' },
2338
2388
  ],
2339
2389
  noteplan_folders: [
2340
2390
  { action: 'list', description: 'List folders with optional filtering' },
@@ -2437,6 +2487,21 @@ export function createServer() {
2437
2487
  const resultWithDuration = withDuration(result, Date.now() - startTime, includeTiming);
2438
2488
  return { content: [{ type: 'text', text: JSON.stringify(resultWithDuration, null, 2) }] };
2439
2489
  }
2490
+ // ── Read-only mode: reject write actions ──
2491
+ if (readOnly) {
2492
+ const action = args?.action;
2493
+ const writeSet = WRITE_ACTIONS_MAP[normalizedName];
2494
+ if (writeSet && action && writeSet.has(action)) {
2495
+ const errorResult = { success: false, error: `Read-only mode is enabled (NOTEPLAN_READ_ONLY=true). Write action "${action}" on ${normalizedName} is not allowed.`, code: 'ERR_READ_ONLY' };
2496
+ const hasOutputSchema = !!toolDefinitions.find(t => t.name === normalizedName)?.outputSchema;
2497
+ const resultWithDuration = withDuration(errorResult, Date.now() - startTime, includeTiming);
2498
+ return {
2499
+ content: [{ type: 'text', text: JSON.stringify(resultWithDuration, null, 2) }],
2500
+ ...(hasOutputSchema ? { structuredContent: resultWithDuration } : {}),
2501
+ isError: true,
2502
+ };
2503
+ }
2504
+ }
2440
2505
  switch (normalizedName) {
2441
2506
  // ── Primary consolidated tools ──
2442
2507
  case 'noteplan_get_notes':
@@ -2553,6 +2618,9 @@ export function createServer() {
2553
2618
  case 'update':
2554
2619
  result = taskTools.updateTask(a);
2555
2620
  break;
2621
+ case 'delete_recurring':
2622
+ result = taskTools.deleteRecurringTask(a);
2623
+ break;
2556
2624
  default: throw new Error(`Unknown action: ${action}`);
2557
2625
  }
2558
2626
  break;