xlsx-for-ai v3.0.4
Hotfix: Claude Desktop silently dropped 7 tools because their descriptions exceeded an undocumented per-tool length cap (~1200 chars). The dropped 7 included flagship surfaces (xlsx_stamp, xlsx_receipt, xlsx_doctor, xlsx_data_clean).
Diagnosis
Bob's 3.0.2 install in Claude Desktop showed only 43 tools in the Tool permissions panel, not 50. fetch-the-spec: the MCP TypeScript SDK has no documented cap on `Tool.description` (`z.string().optional()`, no `.max()`); Anthropic's public tool-use docs don't surface one either. The ~1200 cliff is a Claude Desktop client-side enforcement.
Fix
- Budget 1024 chars (round binary, 18% safety margin under the observed cliff). 20 over-budget descriptions trimmed: 7 actively-dropped + 13 in the 1024-1200 danger zone (defensive against a future cap tightening).
- Bulk-removed the brand boilerplate "xlsx-for-ai — read, write, diff, redact, supervise .xlsx files locally." from every tool description (~3.7KB of catalog noise that didn't steer tool-selection — load-bearing signal is USE WHEN / DO NOT USE WHEN / LOCAL filesystem hint).
- Compressed competitive framing ("No other tool does this", "vs. pandas") on the over-budget tools.
- Regression test `test/v2/description-length.test.js` pins the 1024-char invariant — a future authoring pass that goes over budget fails the test before publish.
After: 50/50 descriptions ≤1024 chars; largest is `xlsx_conditional_formats` at 1015.
Install
One-click (recommended):
Drag this `.mcpb` into Claude Desktop → Settings → Extensions.
Config (self-heals on restart):
```json
{
"mcpServers": {
"xlsx-for-ai": {
"command": "npx",
"args": ["-y", "-p", "xlsx-for-ai@latest", "xlsx-for-ai-mcp"]
}
}
}
```
Full changelog: https://github.com/senoff/xlsx-for-ai/blob/main/CHANGELOG.md