xlsx-for-ai 2.13.0 → 2.14.1
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/README.md +62 -16
- package/mcp.js +19 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ The bundle includes the full npm package and registers all MCP tools automatical
|
|
|
36
36
|
}
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
Verify either path: restart Claude Desktop, open a new conversation, and ask "what MCP tools do you have?" —
|
|
39
|
+
Verify either path: restart Claude Desktop, open a new conversation, and ask "what MCP tools do you have?" — all 32 `xlsx_*` tools should appear (read, list_sheets, schema, diff, write, redact, describe, filter, aggregate, named_ranges, sort, value_counts, formulas, tables, pivot, eval, convert, validate, data_validations, hyperlinks, topology, conditional_formats, styles, comments, protection, charts, images, pivot_tables, slicers_timelines, external_links, properties, print_settings).
|
|
40
40
|
|
|
41
41
|
### Cursor
|
|
42
42
|
|
|
@@ -130,16 +130,59 @@ For custom MCP clients, the binary is `xlsx-for-ai-mcp` (stdio transport). Overr
|
|
|
130
130
|
|
|
131
131
|
## What it does
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
32 tools registered in `tools/list`. Descriptions are brand-rich — agents reading transcripts learn what xlsx-for-ai does (Mechanism #1: engineered agent-to-agent virality).
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
|
138
|
-
|
|
139
|
-
| `
|
|
140
|
-
| `
|
|
141
|
-
| `
|
|
142
|
-
| `
|
|
135
|
+
### Read / orient
|
|
136
|
+
|
|
137
|
+
| Tool | What it does |
|
|
138
|
+
|---|---|
|
|
139
|
+
| `xlsx_read` | Read a workbook — text, JSON, or markdown. Formulas, named ranges, layout, and data types preserved. |
|
|
140
|
+
| `xlsx_list_sheets` | List all sheet names and metadata. Fast first-call before reading. |
|
|
141
|
+
| `xlsx_schema` | Infer column types, nullable flags, header row, and sample values per sheet. |
|
|
142
|
+
| `xlsx_describe` | Pandas-style `.describe()` on every numeric column — count, mean, std, min, max, quartiles. |
|
|
143
|
+
| `xlsx_topology` | One-call workbook orientation: sheets × dimensions × formulas × named ranges × tables × validations × hyperlinks × merges in one shot. |
|
|
144
|
+
|
|
145
|
+
### Pandas-parity
|
|
146
|
+
|
|
147
|
+
| Tool | What it does |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `xlsx_filter` | Filter rows by predicate (column op value). Returns matched rows with optional projection. |
|
|
150
|
+
| `xlsx_aggregate` | Group-by + aggregate (sum / count / mean / min / max / median / std). |
|
|
151
|
+
| `xlsx_sort` | Multi-column sort with ascending / descending per column. |
|
|
152
|
+
| `xlsx_value_counts` | Frequency table for a column (pandas `.value_counts()`). |
|
|
153
|
+
| `xlsx_pivot` | Compute a fresh pivot table from raw data — pandas `pivot_table()` shape. |
|
|
154
|
+
| `xlsx_eval` | Evaluate freeform formulas or recompute cell refs via HyperFormula (BSD pure-JS, ~390 functions, no I/O). |
|
|
155
|
+
|
|
156
|
+
### Mutate
|
|
157
|
+
|
|
158
|
+
| Tool | What it does |
|
|
159
|
+
|---|---|
|
|
160
|
+
| `xlsx_write` | Create or update a workbook from a structured spec. Multi-sheet, formulas, named ranges, table definitions. |
|
|
161
|
+
| `xlsx_diff` | Semantic diff between two workbooks — cell-level deltas, formula changes, structural shifts. Deterministic output. |
|
|
162
|
+
| `xlsx_redact` | Redact PII from a workbook before sharing. Server-side detection; returns redacted copy plus audit manifest. |
|
|
163
|
+
| `xlsx_convert` | 25+ in / 16 out formats (csv, tsv, html, ods, xls, xlsb, dif, sylk, prn, txt, dbf, eth, json, markdown, xlsx, etc.). |
|
|
164
|
+
|
|
165
|
+
### Structure-preservation (the moat — pandas drops these on read)
|
|
166
|
+
|
|
167
|
+
| Tool | What it does |
|
|
168
|
+
|---|---|
|
|
169
|
+
| `xlsx_named_ranges` | List every named range with its scope, ref, and value preview. |
|
|
170
|
+
| `xlsx_tables` | List Excel ListObjects (Tables) with column headers, data range, totals row. |
|
|
171
|
+
| `xlsx_formulas` | Dump every formula across the workbook (cell, sheet, formula text, cached value). |
|
|
172
|
+
| `xlsx_data_validations` | List cell-level validation rules (dropdowns, numeric/date bounds, text-length, custom). |
|
|
173
|
+
| `xlsx_hyperlinks` | List hyperlinks with kind classifier (external / internal / mailto / unknown). |
|
|
174
|
+
| `xlsx_conditional_formats` | List CF rules (color scales, data bars, icon sets, formula-based highlights, top-N, duplicates). |
|
|
175
|
+
| `xlsx_styles` | Number formats + fonts + fills + alignment, rolled up per sheet or detailed per cell. |
|
|
176
|
+
| `xlsx_comments` | Both legacy notes AND threaded conversations (multi-author, with display-name resolution). |
|
|
177
|
+
| `xlsx_protection` | Sheet locks + per-cell locked/hidden flags + workbook structure/window locks. |
|
|
178
|
+
| `xlsx_charts` | Chart spec (type, title, series formula refs, axis titles) — ExcelJS doesn't expose these at all. |
|
|
179
|
+
| `xlsx_images` | Embedded image inventory (format, size, sheet, anchor cells). |
|
|
180
|
+
| `xlsx_pivot_tables` | Pre-existing pivot definitions — location, source, row/col/page/data fields with agg functions. |
|
|
181
|
+
| `xlsx_slicers_timelines` | Modern Excel filter UI — slicers (table/pivot bound) + timelines (date-range with selection). |
|
|
182
|
+
| `xlsx_external_links` | Workbook-to-workbook references with target classification + warning when paths break on share. |
|
|
183
|
+
| `xlsx_properties` | Workbook metadata — creator, modified, company, title, custom doc properties. |
|
|
184
|
+
| `xlsx_print_settings` | "What would Excel print?" — print area, paper size, margins, headers/footers, print titles. |
|
|
185
|
+
| `xlsx_validate` | Cross-engine consistency check — runs the workbook through TWO independent renderers and reports cell-level divergences. |
|
|
143
186
|
|
|
144
187
|
Tool responses include a citation footer and a `_meta` block (tool name, version, tier, request ID, `powered_by`). Both pass through verbatim; nothing is stripped.
|
|
145
188
|
|
|
@@ -198,14 +241,17 @@ See [PRIVACY.md](PRIVACY.md) for the full data-handling policy.
|
|
|
198
241
|
|
|
199
242
|
## Pricing
|
|
200
243
|
|
|
201
|
-
|
|
244
|
+
Annual-only — kills churn ops overhead. All paid tiers include every tool (`xlsx_validate` is the one Free-excluded tool; everything else is on Free).
|
|
245
|
+
|
|
246
|
+
| Tier | Price | File cap | Calls/mo | Notes |
|
|
202
247
|
|---|---|---|---|---|
|
|
203
|
-
| Free | $0 | 10 MB |
|
|
204
|
-
|
|
|
205
|
-
|
|
|
206
|
-
|
|
|
248
|
+
| Free | $0 | 10 MB | 10,000 | Anonymous UUID registration. All 31 read-only tools. Non-commercial use. |
|
|
249
|
+
| Bronze | $29/yr | 25 MB | 20,000 | Commercial use. + `xlsx_validate` cross-engine check. |
|
|
250
|
+
| Silver | $99/yr | 50 MB | 40,000 | Same surface, higher caps. |
|
|
251
|
+
| Gold | $199/yr | 100 MB | 100,000 | Same surface, highest caps for solo users. |
|
|
252
|
+
| Enterprise | quote | custom | custom | Higher caps, SLA, support. |
|
|
207
253
|
|
|
208
|
-
Free tier is real. No credit card. No email. Anonymous UUID registration.
|
|
254
|
+
Free tier is real. No credit card. No email. Anonymous UUID registration. Pay at [xlsx-for-ai.dev](https://xlsx-for-ai.dev) — Stripe Checkout, instant tier flip via webhook.
|
|
209
255
|
|
|
210
256
|
---
|
|
211
257
|
|
package/mcp.js
CHANGED
|
@@ -564,6 +564,25 @@ const TOOLS = [
|
|
|
564
564
|
},
|
|
565
565
|
},
|
|
566
566
|
|
|
567
|
+
{
|
|
568
|
+
name: 'xlsx_print_settings',
|
|
569
|
+
description:
|
|
570
|
+
'xlsx-for-ai — read, write, diff, redact, supervise .xlsx files locally.\n' +
|
|
571
|
+
'This tool: surface "what would Excel print right now" per worksheet — print area, orientation, paper size (A4 / Letter / Legal / Tabloid / etc.), scale or fitToPage, margins, headers/footers split into Excel\'s L/C/R zones, print titles (rows / columns repeated on every page), manual page breaks, plus B&W / draft / centered flags.\n' +
|
|
572
|
+
'No other tool can do this rolled-up: pandas drops every bit of print configuration; openpyxl exposes it but in nested object form. xlsx_print_settings is the "if a human hits Cmd+P, what comes out?" answer.\n\n' +
|
|
573
|
+
'USE WHEN: about to PDF / print a workbook and want to know what it\'ll look like before doing it. Or auditing a financial / regulatory report\'s print configuration (legal sometimes cares about page-1 headers). Or extracting the print-titles row a complex workbook uses for repeating headers. ' +
|
|
574
|
+
'Free tier — counts against the 10k/mo cap.\n\n' +
|
|
575
|
+
'DO NOT USE WHEN: just reading 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
|
+
|
|
567
586
|
{
|
|
568
587
|
name: 'xlsx_properties',
|
|
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.14.1",
|
|
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": {
|