xlsx-for-ai 2.6.0 → 2.8.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/mcp.js +38 -0
- 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_charts',
|
|
569
|
+
description:
|
|
570
|
+
'xlsx-for-ai — read, write, diff, redact, supervise .xlsx files locally.\n' +
|
|
571
|
+
'This tool: list every chart in a workbook with type (bar / line / pie / scatter / area / doughnut / radar / stock / surface / bubble), title, axis titles, and per-series formula refs (the cell ranges the chart pulls from). Sheet attribution via the OOXML drawing rel chain.\n' +
|
|
572
|
+
'No other tool can do this: ExcelJS doesn\'t expose charts at all (read or write); pandas drops them entirely; openpyxl reads charts but in a deeply-nested object form unsuitable for LLM consumption. xlsx_charts gives you the chart contract — "Sheet2 has a bar chart titled Q4 Revenue plotting Sheet1!B2:B10 against Sheet1!A2:A10" — without rendering anything.\n\n' +
|
|
573
|
+
'USE WHEN: documenting a financial model / dashboard for an LLM that needs to know "what does this workbook visualize, and from which cells?". Or auditing a workbook for chart-data drift after a refactor (chart still points at old range?). ' +
|
|
574
|
+
'Free tier — counts against the 10k/mo cap.\n\n' +
|
|
575
|
+
'DO NOT USE WHEN: you want to RENDER the chart as an image (this tool returns the chart spec, not pixels). Or you only need cell values (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_protection',
|
|
588
|
+
description:
|
|
589
|
+
'xlsx-for-ai — read, write, diff, redact, supervise .xlsx files locally.\n' +
|
|
590
|
+
'This tool: surface every protection setting in a workbook so an agent knows what it can and cannot edit. Workbook-level (lockStructure, lockWindows), per-sheet (protected? password? hidden state?), per-action allow/block list (formatCells, sort, insertRows, pivotTables, etc.), and per-cell unlocked / hidden samples — these are the cells a human would actually be allowed to type into when the sheet is otherwise read-only.\n' +
|
|
591
|
+
'No other tool can do this: pandas drops protection metadata entirely; openpyxl exposes the bool but no normalization. xlsx_protection reads sheetProtection action attrs directly from the OOXML zip (workaround for ExcelJS stripping them on round-trip).\n\n' +
|
|
592
|
+
'USE WHEN: an agent is about to suggest edits to a workbook and you want to fail fast on cells / sheets the user can\'t change anyway. Or auditing a "submitted form" workbook to see which inputs the form-author intended to be fillable. ' +
|
|
593
|
+
'Free tier — counts against the 10k/mo cap.\n\n' +
|
|
594
|
+
'DO NOT USE WHEN: just reading values (use xlsx_read). Or trying to BREAK protection (this tool surfaces what\'s locked; it does not unlock).',
|
|
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_styles',
|
|
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.
|
|
4
|
+
"version": "2.8.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": {
|