@tiwater/office-mcp 0.21.41 → 0.21.42

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.
@@ -2,7 +2,7 @@
2
2
  "schema": "tiwater.office-provider-contract-manifest/v1",
3
3
  "provider": {
4
4
  "id": "@tiwater/office-mcp",
5
- "version": "0.21.41"
5
+ "version": "0.21.42"
6
6
  },
7
7
  "tools": [
8
8
  {
@@ -405,187 +405,187 @@
405
405
  "name": "xlsx_convert_legacy",
406
406
  "providerContract": {
407
407
  "source": "packages/convert-cli/schemas/mcp-input/xlsx_convert_legacy.schema.json",
408
- "sha256": "08efc93ee8105666278d0d45c4886ec325c660d4e610754928e6926cf169188a"
408
+ "sha256": "0867f51d4b2461ae2d739a0a9dd01c1d7935bb6b4ebeb9678f56ddc8775543ad"
409
409
  },
410
410
  "inputContract": {
411
411
  "path": "office/contracts/xlsx_convert_legacy.schema.json",
412
- "sha256": "08efc93ee8105666278d0d45c4886ec325c660d4e610754928e6926cf169188a"
412
+ "sha256": "0867f51d4b2461ae2d739a0a9dd01c1d7935bb6b4ebeb9678f56ddc8775543ad"
413
413
  }
414
414
  },
415
415
  {
416
416
  "name": "xlsx_copy_row",
417
417
  "providerContract": {
418
418
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_copy_row.schema.json",
419
- "sha256": "7159b2ed971a54a0c5f0c7e9686e6594908858694eab9e6e65b15771e0ab3500"
419
+ "sha256": "66d20708d28a82112a372fee7cdd20976b32e562788d0f6336e27311b872caf6"
420
420
  },
421
421
  "inputContract": {
422
422
  "path": "office/contracts/xlsx_copy_row.schema.json",
423
- "sha256": "7159b2ed971a54a0c5f0c7e9686e6594908858694eab9e6e65b15771e0ab3500"
423
+ "sha256": "66d20708d28a82112a372fee7cdd20976b32e562788d0f6336e27311b872caf6"
424
424
  }
425
425
  },
426
426
  {
427
427
  "name": "xlsx_delete_rows",
428
428
  "providerContract": {
429
429
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_delete_rows.schema.json",
430
- "sha256": "0d54bf1299dd8591baf2cd550adfb191ea6bfad91b3dfb28543a56d8dc135910"
430
+ "sha256": "13211831a052d1c5d2b406f1481412ebe95c46344fe8c86e6744184f22fc8352"
431
431
  },
432
432
  "inputContract": {
433
433
  "path": "office/contracts/xlsx_delete_rows.schema.json",
434
- "sha256": "0d54bf1299dd8591baf2cd550adfb191ea6bfad91b3dfb28543a56d8dc135910"
434
+ "sha256": "13211831a052d1c5d2b406f1481412ebe95c46344fe8c86e6744184f22fc8352"
435
435
  }
436
436
  },
437
437
  {
438
438
  "name": "xlsx_expand_section_rows",
439
439
  "providerContract": {
440
440
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_expand_section_rows.schema.json",
441
- "sha256": "93f9e8562e7bf99f3f0612bbf701efcd3c142f51be790e8b348a8472998f8f24"
441
+ "sha256": "b9a3b3b73186e0d03777977717bc07afd25816e9843e9c832596f3fff348a871"
442
442
  },
443
443
  "inputContract": {
444
444
  "path": "office/contracts/xlsx_expand_section_rows.schema.json",
445
- "sha256": "93f9e8562e7bf99f3f0612bbf701efcd3c142f51be790e8b348a8472998f8f24"
445
+ "sha256": "b9a3b3b73186e0d03777977717bc07afd25816e9843e9c832596f3fff348a871"
446
446
  }
447
447
  },
448
448
  {
449
449
  "name": "xlsx_export_json",
450
450
  "providerContract": {
451
451
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_export_json.schema.json",
452
- "sha256": "3943fa01506e5b9ea1cb0ecfd13fc484c16ec96245af462c9a6a37377f2a7a82"
452
+ "sha256": "a5d08d470d52c8deab61894ac28319339ae5a6d2c769280a24fa9c6d40579c3e"
453
453
  },
454
454
  "inputContract": {
455
455
  "path": "office/contracts/xlsx_export_json.schema.json",
456
- "sha256": "3943fa01506e5b9ea1cb0ecfd13fc484c16ec96245af462c9a6a37377f2a7a82"
456
+ "sha256": "a5d08d470d52c8deab61894ac28319339ae5a6d2c769280a24fa9c6d40579c3e"
457
457
  }
458
458
  },
459
459
  {
460
460
  "name": "xlsx_insert_rows",
461
461
  "providerContract": {
462
462
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_insert_rows.schema.json",
463
- "sha256": "a295530a293a9930a5fe49d320f5d965fe4065322e2106575f0e74b18ec70680"
463
+ "sha256": "6667ff2ddada86e4bac3da7e1dfec99d107f80eed00bc1af4335c95e3e2ebe29"
464
464
  },
465
465
  "inputContract": {
466
466
  "path": "office/contracts/xlsx_insert_rows.schema.json",
467
- "sha256": "a295530a293a9930a5fe49d320f5d965fe4065322e2106575f0e74b18ec70680"
467
+ "sha256": "6667ff2ddada86e4bac3da7e1dfec99d107f80eed00bc1af4335c95e3e2ebe29"
468
468
  }
469
469
  },
470
470
  {
471
471
  "name": "xlsx_inspect",
472
472
  "providerContract": {
473
473
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_inspect.schema.json",
474
- "sha256": "9cde8fdda335f379d44e60819367b305a2c97c6c0c8fdf2141bf460335e5da84"
474
+ "sha256": "f1c15dc66eafe6208a30a711c76c4e058c8b2a035707a4064e6a0a3b64687945"
475
475
  },
476
476
  "inputContract": {
477
477
  "path": "office/contracts/xlsx_inspect.schema.json",
478
- "sha256": "9cde8fdda335f379d44e60819367b305a2c97c6c0c8fdf2141bf460335e5da84"
478
+ "sha256": "f1c15dc66eafe6208a30a711c76c4e058c8b2a035707a4064e6a0a3b64687945"
479
479
  }
480
480
  },
481
481
  {
482
482
  "name": "xlsx_read_range",
483
483
  "providerContract": {
484
484
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_read_range.schema.json",
485
- "sha256": "66a5ff24b1a207d70aa278b81a8efba5dc272af2f7a7c12331154e8aa8d8f3dd"
485
+ "sha256": "a4c489e1e695347bc853a9113f330d14a8256ae56b056936147fe510d0a48a82"
486
486
  },
487
487
  "inputContract": {
488
488
  "path": "office/contracts/xlsx_read_range.schema.json",
489
- "sha256": "66a5ff24b1a207d70aa278b81a8efba5dc272af2f7a7c12331154e8aa8d8f3dd"
489
+ "sha256": "a4c489e1e695347bc853a9113f330d14a8256ae56b056936147fe510d0a48a82"
490
490
  }
491
491
  },
492
492
  {
493
493
  "name": "xlsx_set_cell_number_format",
494
494
  "providerContract": {
495
495
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_cell_number_format.schema.json",
496
- "sha256": "b5f40eb92bea55b43166de3eea3944bcac000cb3b29f402ef1731ab190242db1"
496
+ "sha256": "5e250e4de4b287f0f3963e9c00218095bcb36ac3966334fab1af0d418a92c1c0"
497
497
  },
498
498
  "inputContract": {
499
499
  "path": "office/contracts/xlsx_set_cell_number_format.schema.json",
500
- "sha256": "b5f40eb92bea55b43166de3eea3944bcac000cb3b29f402ef1731ab190242db1"
500
+ "sha256": "5e250e4de4b287f0f3963e9c00218095bcb36ac3966334fab1af0d418a92c1c0"
501
501
  }
502
502
  },
503
503
  {
504
504
  "name": "xlsx_set_cell_value",
505
505
  "providerContract": {
506
506
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_cell_value.schema.json",
507
- "sha256": "ba49e6edd2741162161b9b98f3a4aa8d093f5552084cbdbc736b5e8e9431edc7"
507
+ "sha256": "b781ff899a8690ee9f1d487885fa7354071940f7f62afe22c9235a07ff8d277d"
508
508
  },
509
509
  "inputContract": {
510
510
  "path": "office/contracts/xlsx_set_cell_value.schema.json",
511
- "sha256": "ba49e6edd2741162161b9b98f3a4aa8d093f5552084cbdbc736b5e8e9431edc7"
511
+ "sha256": "b781ff899a8690ee9f1d487885fa7354071940f7f62afe22c9235a07ff8d277d"
512
512
  }
513
513
  },
514
514
  {
515
515
  "name": "xlsx_set_column_width",
516
516
  "providerContract": {
517
517
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_column_width.schema.json",
518
- "sha256": "b1435b0b12c1f2a8dcc504bfc78a8b8ca456e4a1fbd48ed0a8a61b9746d40839"
518
+ "sha256": "6fbc2b7db11436369ef94f04860bc83fd0ca19025728e59f781f83ce4afa10ae"
519
519
  },
520
520
  "inputContract": {
521
521
  "path": "office/contracts/xlsx_set_column_width.schema.json",
522
- "sha256": "b1435b0b12c1f2a8dcc504bfc78a8b8ca456e4a1fbd48ed0a8a61b9746d40839"
522
+ "sha256": "6fbc2b7db11436369ef94f04860bc83fd0ca19025728e59f781f83ce4afa10ae"
523
523
  }
524
524
  },
525
525
  {
526
526
  "name": "xlsx_set_page_setup",
527
527
  "providerContract": {
528
528
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_page_setup.schema.json",
529
- "sha256": "8340463fe45d05ab1c56c56a9c52d80cd2cf459722c02f5f795e8ef2214dd5e7"
529
+ "sha256": "caad609ad9375cd8ca45172b2e7672195128957330aeabc2575b10777e1ceeac"
530
530
  },
531
531
  "inputContract": {
532
532
  "path": "office/contracts/xlsx_set_page_setup.schema.json",
533
- "sha256": "8340463fe45d05ab1c56c56a9c52d80cd2cf459722c02f5f795e8ef2214dd5e7"
533
+ "sha256": "caad609ad9375cd8ca45172b2e7672195128957330aeabc2575b10777e1ceeac"
534
534
  }
535
535
  },
536
536
  {
537
537
  "name": "xlsx_set_print_area",
538
538
  "providerContract": {
539
539
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_print_area.schema.json",
540
- "sha256": "ca125ccbd01cf461872566ef3f13047b2bb735fc2157bea61c2ee2c0f41a4ecd"
540
+ "sha256": "e5b4b96f107850f23bda595a7c439ba1c1af89f43ffca1769da07b49391d4611"
541
541
  },
542
542
  "inputContract": {
543
543
  "path": "office/contracts/xlsx_set_print_area.schema.json",
544
- "sha256": "ca125ccbd01cf461872566ef3f13047b2bb735fc2157bea61c2ee2c0f41a4ecd"
544
+ "sha256": "e5b4b96f107850f23bda595a7c439ba1c1af89f43ffca1769da07b49391d4611"
545
545
  }
546
546
  },
547
547
  {
548
548
  "name": "xlsx_set_range_values",
549
549
  "providerContract": {
550
550
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_range_values.schema.json",
551
- "sha256": "5ce9843e5cb03c237a743e54bce185d4e597d22cd072cbd67adb2bd87f2692e0"
551
+ "sha256": "62643e69fe16fc6d1a498d14e3f2fb07897491a0951278c474843994b79b0df3"
552
552
  },
553
553
  "inputContract": {
554
554
  "path": "office/contracts/xlsx_set_range_values.schema.json",
555
- "sha256": "5ce9843e5cb03c237a743e54bce185d4e597d22cd072cbd67adb2bd87f2692e0"
555
+ "sha256": "62643e69fe16fc6d1a498d14e3f2fb07897491a0951278c474843994b79b0df3"
556
556
  }
557
557
  },
558
558
  {
559
559
  "name": "xlsx_set_rich_text_cell_value",
560
560
  "providerContract": {
561
561
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_rich_text_cell_value.schema.json",
562
- "sha256": "563308df6bbfd74b3679f9d12dda4572f2ebbd2328919f26c57ba3f67f31e201"
562
+ "sha256": "5ec57876cda3217979d77ba9304383002830931996dd0a361a4a69147896a145"
563
563
  },
564
564
  "inputContract": {
565
565
  "path": "office/contracts/xlsx_set_rich_text_cell_value.schema.json",
566
- "sha256": "563308df6bbfd74b3679f9d12dda4572f2ebbd2328919f26c57ba3f67f31e201"
566
+ "sha256": "5ec57876cda3217979d77ba9304383002830931996dd0a361a4a69147896a145"
567
567
  }
568
568
  },
569
569
  {
570
570
  "name": "xlsx_set_row_page_breaks",
571
571
  "providerContract": {
572
572
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_set_row_page_breaks.schema.json",
573
- "sha256": "d6ef42029c60481d58d840d3ae27f99cd7be15ad582c92d33f0dff66f04b26c3"
573
+ "sha256": "f912774c49e48dd797169907e72de56696fb91c5b2a9108ab16334339a0b98e6"
574
574
  },
575
575
  "inputContract": {
576
576
  "path": "office/contracts/xlsx_set_row_page_breaks.schema.json",
577
- "sha256": "d6ef42029c60481d58d840d3ae27f99cd7be15ad582c92d33f0dff66f04b26c3"
577
+ "sha256": "f912774c49e48dd797169907e72de56696fb91c5b2a9108ab16334339a0b98e6"
578
578
  }
579
579
  },
580
580
  {
581
581
  "name": "xlsx_validate",
582
582
  "providerContract": {
583
583
  "source": "packages/xlsx-cli/contracts/mcp-input/xlsx_validate.schema.json",
584
- "sha256": "06d5f29f7ed23ab53fdf7a5de09cbfb6a800e7a19ae076a3d6d80abf22c464be"
584
+ "sha256": "3844ee1273cd434814fb3e8eb2d4b7098342641a9ac6a6cefb35b06b67fd58ca"
585
585
  },
586
586
  "inputContract": {
587
587
  "path": "office/contracts/xlsx_validate.schema.json",
588
- "sha256": "06d5f29f7ed23ab53fdf7a5de09cbfb6a800e7a19ae076a3d6d80abf22c464be"
588
+ "sha256": "3844ee1273cd434814fb3e8eb2d4b7098342641a9ac6a6cefb35b06b67fd58ca"
589
589
  }
590
590
  }
591
591
  ]
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS]$",
8
9
  "x-tiwater-file-role": "read"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "x-tiwater-file-role": "write"
14
16
  },
15
17
  "receiptOutput": {
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,6 +5,7 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read"
9
10
  },
10
11
  "returnContent": {
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,6 +5,7 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]?$",
8
9
  "x-tiwater-file-role": "read"
9
10
  },
10
11
  "returnContent": {
@@ -6,6 +6,7 @@
6
6
  "input": {
7
7
  "type": "string",
8
8
  "minLength": 1,
9
+ "pattern": "\\.[xX][lL][sS][xX]$",
9
10
  "description": "Current XLSX workbook. Convert legacy XLS before selecting Open XML cells.",
10
11
  "x-tiwater-file-role": "read"
11
12
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,11 +5,13 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read", "x-tiwater-document-revision-role": "current"
9
10
  },
10
11
  "output": {
11
12
  "type": "string",
12
13
  "minLength": 1,
14
+ "pattern": "\\.[xX][lL][sS][xX]$",
13
15
  "description": "Output document path; may equal input for an atomic in-place update.",
14
16
  "x-tiwater-file-role": "write"
15
17
  },
@@ -5,6 +5,7 @@
5
5
  "input": {
6
6
  "type": "string",
7
7
  "minLength": 1,
8
+ "pattern": "\\.[xX][lL][sS][xX]$",
8
9
  "x-tiwater-file-role": "read"
9
10
  },
10
11
  "returnContent": {
package/office/index.mjs CHANGED
@@ -784,7 +784,7 @@ const tools = [
784
784
  },
785
785
  {
786
786
  name: 'xlsx_read_range',
787
- description: 'Read one explicit native A1 cell or rectangular range from one current XLSX worksheet. The provider chooses the bounded page size. Pages use a row-major cell offset and return physical presence, raw and formatted values, normalized value type, formula metadata, style, rich text, and merged-range ownership. The receipt always reports remaining cells and the next offset. Continue only when another selected cell is needed. Set returnContent true to return the selected page when it fits the response limit. Provide output to store the same complete selected page as an immutable artifact. These channels are independent and may be used together; at least one is required. This tool does not infer regions, headers, records, field meanings, or business mappings; convert legacy XLS before reading Open XML cells.',
787
+ description: 'Read one explicit native A1 cell or rectangular range from one current XLSX worksheet. The provider chooses the bounded page size. Pages use a row-major cell offset and return physical presence, raw and formatted values, normalized value type, formula metadata, style, rich text, and merged-range ownership. The receipt always reports remaining cells and the next offset. Continue only when another selected cell is needed. Set returnContent true to return the largest leading cell page that fits the response limit. Provide output to store the same complete selected page as an immutable artifact. These channels are independent and may be used together; at least one is required. This tool does not infer regions, headers, records, field meanings, or business mappings; convert legacy XLS before reading Open XML cells.',
788
788
  inputSchema: inputContract('xlsx_read_range'),
789
789
  outputSchema: xlsxRangeReadOutput,
790
790
  annotations: { readOnlyHint: true, idempotentHint: true },
@@ -1520,17 +1520,52 @@ async function xlsxExportJson(args) {
1520
1520
  return deliverLargeJsonResult({ tool: 'xlsx_export_json', args, runtime: commandRuntime(result), payload: result.json, sourcePaths: [input] });
1521
1521
  }
1522
1522
 
1523
+ function xlsxRangeDeliveryPage(page, returnContent) {
1524
+ if (!returnContent || page.cells.length === 0) return page;
1525
+ const startOffset = page.receipt.totalCellCount
1526
+ - page.receipt.remaining
1527
+ - page.receipt.returnedCellCount;
1528
+ for (let count = page.cells.length; count > 0; count -= 1) {
1529
+ const remaining = page.receipt.totalCellCount - startOffset - count;
1530
+ const candidate = {
1531
+ ...page,
1532
+ receipt: {
1533
+ ...page.receipt,
1534
+ returnedCellCount: count,
1535
+ remaining,
1536
+ nextOffset: remaining > 0 ? startOffset + count : null,
1537
+ },
1538
+ cells: page.cells.slice(0, count),
1539
+ };
1540
+ if (Buffer.byteLength(JSON.stringify(candidate), 'utf8') <= returnedContentBudgetBytes) {
1541
+ return candidate;
1542
+ }
1543
+ }
1544
+ const remaining = page.receipt.totalCellCount - startOffset - 1;
1545
+ return {
1546
+ ...page,
1547
+ receipt: {
1548
+ ...page.receipt,
1549
+ returnedCellCount: 1,
1550
+ remaining,
1551
+ nextOffset: remaining > 0 ? startOffset + 1 : null,
1552
+ },
1553
+ cells: page.cells.slice(0, 1),
1554
+ };
1555
+ }
1556
+
1523
1557
  async function xlsxReadRange(args) {
1524
1558
  const input = path.resolve(requireString(args.input, 'input'));
1525
1559
  return withTempJsonFile(args, async requestPath => {
1526
1560
  const result = await runJsonCandidateChain(xlsxCandidates, ['xlsx_read_range', requestPath]);
1561
+ const page = xlsxRangeDeliveryPage(result.json, args.returnContent === true);
1527
1562
  return deliverLargeJsonResult({
1528
1563
  tool: 'xlsx_read_range',
1529
1564
  args,
1530
1565
  runtime: commandRuntime(result),
1531
- payload: result.json,
1566
+ payload: page,
1532
1567
  sourcePaths: [input],
1533
- summary: result.json.receipt,
1568
+ summary: page.receipt,
1534
1569
  });
1535
1570
  });
1536
1571
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiwater/office-mcp",
3
- "version": "0.21.41",
3
+ "version": "0.21.42",
4
4
  "description": "Published MCP distribution for independent Tiwater Office, PDF, and Text document capabilities",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -2,7 +2,7 @@
2
2
  "schema": "tiwater.pdf-provider-contract-manifest/v1",
3
3
  "provider": {
4
4
  "id": "@tiwater/office-mcp",
5
- "version": "0.21.41"
5
+ "version": "0.21.42"
6
6
  },
7
7
  "runtime": {
8
8
  "command": "tiwater-pdf"
@@ -2,7 +2,7 @@
2
2
  "schema": "tiwater.text-provider-contract-manifest/v1",
3
3
  "provider": {
4
4
  "id": "@tiwater/office-mcp",
5
- "version": "0.21.41"
5
+ "version": "0.21.42"
6
6
  },
7
7
  "tools": [
8
8
  {