xlsx-for-ai 2.14.1 → 2.16.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.
Files changed (2) hide show
  1. package/mcp.js +38 -0
  2. package/package.json +1 -1
package/mcp.js CHANGED
@@ -564,6 +564,44 @@ const TOOLS = [
564
564
  },
565
565
  },
566
566
 
567
+ {
568
+ name: 'xlsx_merged_cells',
569
+ description:
570
+ 'xlsx-for-ai — read, write, diff, redact, supervise .xlsx files locally.\n' +
571
+ 'This tool: list every merged-cell region with master-cell value, range, span dimensions, and kind heuristic ("header" / "horizontal" / "vertical" / "block"). Pandas reads merged cells by dropping the relationship — it sees one value in the master cell and three blanks alongside. xlsx_merged_cells is the layout-aware view: "A1:D1 is ONE cell that says Q4 2024" rather than four cells where three are mysteriously empty.\n' +
572
+ 'No other tool surfaces merges with master values rolled in: pandas drops merge metadata; openpyxl exposes ranges but not the master value alongside.\n\n' +
573
+ 'USE WHEN: parsing report templates, dashboards, or form workbooks where merges encode visual hierarchy (section titles, sub-headers, banner rows). Or auditing a workbook for accidental merges that distort downstream pandas reads. ' +
574
+ 'Free tier — counts against the 10k/mo cap.\n\n' +
575
+ 'DO NOT USE WHEN: you only need cell values and don\'t care about visual structure (use xlsx_read).',
576
+ inputSchema: {
577
+ type: 'object',
578
+ properties: {
579
+ file_path: { type: 'string', description: 'Absolute path to the .xlsx file.' },
580
+ sheet: { type: 'string', description: 'Optional: restrict to a specific sheet.' },
581
+ },
582
+ required: ['file_path'],
583
+ },
584
+ },
585
+
586
+ {
587
+ name: 'xlsx_workbook_views',
588
+ description:
589
+ 'xlsx-for-ai — read, write, diff, redact, supervise .xlsx files locally.\n' +
590
+ 'This tool: surface the UI state of a workbook — what a human sees when they open the file in Excel. Per sheet: visibility (visible / hidden / veryHidden), view state (normal / frozen / split / pageBreakPreview / pageLayout), zoom level, active cell + selection range, frozen pane breakdown (rows/cols frozen + top-left of scroll area), gridlines / row-col headers / ruler / RTL flags, tab color. Workbook level: which sheet is the active tab when Excel opens.\n' +
591
+ 'No other tool surfaces this: pandas drops every bit of UI state; openpyxl exposes view objects but in deeply nested form. xlsx_workbook_views is the "when the user opens this file, what do they see?" rollup an LLM needs to reason about continuity (resume editing where they left off, notice a hidden sheet exists, etc.).\n\n' +
592
+ 'USE WHEN: an agent has been handed a workbook mid-workflow and needs to know "where was the user last working?" (active cell, active tab, zoom). Or auditing for hidden / veryHidden sheets that often hide sensitive data. Or extracting frozen-pane configuration to recreate the same UX in a generated workbook. ' +
593
+ 'Free tier — counts against the 10k/mo cap.\n\n' +
594
+ 'DO NOT USE WHEN: just reading values (use xlsx_read).',
595
+ inputSchema: {
596
+ type: 'object',
597
+ properties: {
598
+ file_path: { type: 'string', description: 'Absolute path to the .xlsx file.' },
599
+ sheet: { type: 'string', description: 'Optional: restrict to a specific sheet.' },
600
+ },
601
+ required: ['file_path'],
602
+ },
603
+ },
604
+
567
605
  {
568
606
  name: 'xlsx_print_settings',
569
607
  description:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "xlsx-for-ai",
3
3
  "mcpName": "io.github.senoff/xlsx-for-ai",
4
- "version": "2.14.1",
4
+ "version": "2.16.0",
5
5
  "description": "The MCP server that makes LLMs reliable on real-world Excel spreadsheets. Thin npm client over a hosted API — read, write, diff, redact, and supervise .xlsx files from any MCP-aware agent.",
6
6
  "main": "index.js",
7
7
  "bin": {