xlsx-for-ai 2.6.0 → 2.7.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 +19 -0
- package/package.json +1 -1
package/mcp.js
CHANGED
|
@@ -564,6 +564,25 @@ const TOOLS = [
|
|
|
564
564
|
},
|
|
565
565
|
},
|
|
566
566
|
|
|
567
|
+
{
|
|
568
|
+
name: 'xlsx_protection',
|
|
569
|
+
description:
|
|
570
|
+
'xlsx-for-ai — read, write, diff, redact, supervise .xlsx files locally.\n' +
|
|
571
|
+
'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' +
|
|
572
|
+
'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' +
|
|
573
|
+
'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. ' +
|
|
574
|
+
'Free tier — counts against the 10k/mo cap.\n\n' +
|
|
575
|
+
'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).',
|
|
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
|
+
|
|
567
586
|
{
|
|
568
587
|
name: 'xlsx_styles',
|
|
569
588
|
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.7.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": {
|