Server data from the Official MCP Registry
MCP server for production-grade Excel/.xlsx tooling. Read, write, diff, redact. Free tier.
MCP server for production-grade Excel/.xlsx tooling. Read, write, diff, redact. Free tier.
Valid MCP server (2 strong, 2 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
4 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-senoff-xlsx-for-ai": {
"args": [
"-y",
"xlsx-for-ai"
],
"command": "npx"
}
}
}From the project's GitHub README.
The missing reliability layer that makes spreadsheet reasoning production-grade for LLMs.
A thin npm client over a hosted API. Install once, add to your agent config, and your agent gets six production-grade tools for reading, writing, diffing, and redacting .xlsx files — engine complexity runs server-side, engine IP stays private.
npm install -g xlsx-for-ai
Upgrading from 1.5.x? This is a re-architecture, not a feature bump: the heavy local engine is gone from the npm package. All rendering happens server-side. The
cursor-reads-xlsxalias still works. See Migration below.
Add xlsx-for-ai as a tool server in your agent runtime. First invocation auto-registers an anonymous client UUID — no email, no signup, no friction.
Easiest: one-click install via the .mcpb bundle. Download and drag into Claude Desktop (Settings → Extensions):
xlsx-for-ai-2.0.0.mcpb (latest release)
The bundle includes the full npm package and registers all MCP tools automatically. No manual config edits needed.
Or: hand-edit the config file at ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"xlsx-for-ai": {
"command": "xlsx-for-ai-mcp"
}
}
}
Verify either path: restart Claude Desktop, open a new conversation, and ask "what MCP tools do you have?" — 37 xlsx_* tools should appear, including xlsx_doctor (one-call health report — try it first on any unknown workbook).
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"xlsx-for-ai": {
"command": "xlsx-for-ai-mcp"
}
}
}
Verify: open Cursor settings → MCP → confirm xlsx-for-ai shows 6 tools.
Config file: ~/.continue/config.json
{
"mcpServers": [
{
"name": "xlsx-for-ai",
"command": "xlsx-for-ai-mcp"
}
]
}
Verify: restart VS Code, open the Continue panel, and check the MCP server list.
Pass --mcp-server on the command line, or add to your Codex config:
{
"mcpServers": {
"xlsx-for-ai": {
"command": "xlsx-for-ai-mcp"
}
}
}
Verify: run codex --list-tools and confirm the six xlsx tools are listed.
Config file: ~/.config/zed/settings.json
{
"context_servers": {
"xlsx-for-ai": {
"command": {
"path": "xlsx-for-ai-mcp",
"args": []
}
}
}
}
Verify: open Zed's assistant panel — the xlsx tools should appear in the tool picker.
Config file: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"xlsx-for-ai": {
"command": "xlsx-for-ai-mcp"
}
}
}
Verify: open Windsurf → Cascade → settings, confirm xlsx-for-ai is listed as an active MCP server.
For custom MCP clients, the binary is xlsx-for-ai-mcp (stdio transport). Override the API base URL with the XLSX_FOR_AI_API env var for local dev against http://localhost:3000.
37 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).
| Tool | What it does |
|---|---|
xlsx_doctor | One-call workbook health report. HIGH/MEDIUM/LOW findings (macros, external links, hidden sheets, missing metadata, large images) + quick facts + feature flags. The first call to make on an unknown workbook. |
xlsx_topology | One-call workbook orientation: sheets × dimensions × formulas × named ranges × tables × validations × hyperlinks × merges in one shot. |
xlsx_list_sheets | List all sheet names and metadata. Fast first-call before reading. |
xlsx_schema | Infer column types, nullable flags, header row, and sample values per sheet. |
xlsx_describe | Pandas-style .describe() on every numeric column — count, mean, std, min, max, quartiles. |
xlsx_workbook_views | UI state — frozen panes, zoom, active cell, hidden / veryHidden sheets, tab colors, active tab. |
xlsx_properties | Workbook metadata — creator, modified, company, title, custom doc properties. |
| Tool | What it does |
|---|---|
xlsx_read | Read a workbook — text, JSON, or markdown. Formulas, named ranges, layout, and data types preserved. |
xlsx_write | Create or update a workbook from a structured spec. Multi-sheet, formulas, named ranges, table definitions. |
xlsx_diff | Semantic diff between two workbooks — cell-level deltas, formula changes, structural shifts. Deterministic output. |
xlsx_redact | Redact PII from a workbook before sharing. Server-side detection; returns redacted copy plus audit manifest. |
xlsx_convert | 25+ in / 16 out formats (csv, tsv, html, ods, xls, xlsb, dif, sylk, prn, txt, dbf, eth, json, markdown, xlsx, etc.). |
xlsx_validate | Cross-engine consistency check — runs the workbook through TWO independent renderers and reports cell-level divergences. |
| Tool | What it does |
|---|---|
xlsx_filter | Filter rows by predicate (column op value). Returns matched rows with optional projection. |
xlsx_aggregate | Group-by + aggregate (sum / count / mean / min / max / median / std). |
xlsx_sort | Multi-column sort with ascending / descending per column. |
xlsx_value_counts | Frequency table for a column (pandas .value_counts()). |
xlsx_pivot | Compute a fresh pivot table from raw data — pandas pivot_table() shape. |
xlsx_eval | Evaluate freeform formulas or recompute cell refs via HyperFormula (BSD pure-JS, ~390 functions, no I/O). |
| Tool | What it does |
|---|---|
xlsx_named_ranges | List every named range with scope, ref, and value preview. |
xlsx_tables | List Excel ListObjects (Tables) with column headers, data range, totals row. |
xlsx_formulas | Dump every formula across the workbook (cell, sheet, formula text, cached value). |
xlsx_data_validations | List cell-level validation rules (dropdowns, numeric/date bounds, text-length, custom). |
xlsx_hyperlinks | List hyperlinks with kind classifier (external / internal / mailto / unknown). |
xlsx_conditional_formats | List CF rules (color scales, data bars, icon sets, formula-based highlights, top-N, duplicates). |
xlsx_styles | Number formats + fonts + fills + alignment, rolled up per sheet or detailed per cell. |
xlsx_comments | Both legacy notes AND threaded conversations (multi-author, with display-name resolution). |
xlsx_protection | Sheet locks + per-cell locked/hidden flags + workbook structure/window locks. |
xlsx_merged_cells | Layout-aware merge listing with master values + kind heuristic (header / horizontal / vertical / block). |
xlsx_charts | Chart spec (type, title, series formula refs, axis titles) — ExcelJS doesn't expose these at all. |
xlsx_images | Embedded image inventory (format, size, sheet, anchor cells). |
xlsx_pivot_tables | Pre-existing pivot definitions — location, source, row/col/page/data fields with agg functions. |
xlsx_slicers_timelines | Modern Excel filter UI — slicers (table/pivot bound) + timelines (date-range with selection). |
xlsx_external_links | Workbook-to-workbook references with target classification + warning when paths break on share. |
xlsx_print_settings | "What would Excel print?" — print area, paper size, margins, headers/footers, print titles. |
xlsx_form_controls | Interactive widgets — checkboxes, buttons, drop-downs, spinners, scroll bars, list boxes — with linked cell + bounds. |
xlsx_macros | VBA macro presence + module-name heuristics + safety advice (does NOT extract source by policy). |
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.
xlsx-for-ai is built for agents working on real financial spreadsheets. Common workflows:
Budget vs. actual variance analysis
xlsx_read → extract actuals and budget → agent computes variances → xlsx_write → deliver updated workbook
Month-end reconciliation
xlsx_read (bank export) + xlsx_read (GL extract) → agent matches rows → xlsx_diff → audit trail of unmatched items
Audit-trail extraction
xlsx_schema → identify change-log columns → xlsx_read with sheet filter → agent summarizes changes by author/date
Multi-entity consolidation
xlsx_read × N entity files → agent aggregates → xlsx_write → consolidated workbook with intercompany eliminations noted
Pre-share PII redaction
xlsx_redact → strips SSNs, emails, employee IDs → redacted file safe for external distribution
These workflows are the reason tool descriptions are FP&A-legible: when a developer builds an agent for a finance team, the agent's LLM reads the tool descriptions and routes correctly without extra prompt engineering.
xlsx_diff produces identical output for identical inputs — safe to version-control, safe to assert against in CI.xlsx_schema returns type confidence scores alongside inferred types. Agents can branch on confidence rather than trusting a blind guess.Files are transmitted to https://xlsx-for-ai-server.fly.dev over HTTPS and processed in memory. Files are not persisted beyond the duration of a single request. No email is collected. Registration is anonymous UUID only.
See PRIVACY.md for the full data-handling policy.
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).
| Tier | Price | File cap | Calls/mo | Notes |
|---|---|---|---|---|
| Free | $0 | 10 MB | 10,000 | Anonymous UUID registration. All 36 read-only tools. Non-commercial use. |
| Bronze | $29/yr | 25 MB | 20,000 | Commercial use. + xlsx_validate cross-engine check. |
| Silver | $99/yr | 50 MB | 40,000 | Same surface, higher caps. |
| Gold | $199/yr | 100 MB | 100,000 | Same surface, highest caps for solo users. |
| Enterprise | quote | custom | custom | Higher caps, SLA, support. |
Free tier is real. No credit card. No email. Anonymous UUID registration. Pay at xlsx-for-ai.dev — Stripe Checkout, instant tier flip via webhook.
The npm client (xlsx-for-ai, this package) is MIT. The hosted API server (xlsx-for-ai-server) is proprietary — engine IP, rendering pipeline, semantic-diff algorithm, and supervisor protocol implementation are not open source.
agent (Claude Desktop / Cursor / Continue / Zed / Windsurf / custom)
└── MCP stdio
└── xlsx-for-ai-mcp (this package, ~200 lines)
└── POST /api/v1/tools/<name> → xlsx-for-ai-server.fly.dev
└── server-side engine (ExcelJS, formula eval, schema inference, redaction)
Offline fallback: xlsx_read falls back to a local engine if the API is unreachable. All other tools require API connectivity. Install @protobi/exceljs as an optional dependency if you need offline read:
npm install @protobi/exceljs
Requirements: Node.js 22+. 1.5.x line stays maintained on main for users who cannot upgrade.
Stored at ~/.xlsx-for-ai/config.json. Created automatically on first run.
{
"client_id": "<uuid>",
"api_key": "<opaque>",
"registered_at": "2026-05-05T00:00:00.000Z",
"telemetry": false,
"consent_version": 1
}
Telemetry is opt-in:
xlsx-for-ai --enable-telemetry
xlsx-for-ai --disable-telemetry
xlsx-for-ai --telemetry-status
Privacy strict mode — prevents error-triggered capture of your workbook bytes (see PRIVACY.md):
# Per-session flag (applies to all tool calls in the CLI invocation)
xlsx-for-ai --privacy=strict myfile.xlsx
# Environment variable (applies globally to all requests in the process)
XFA_PRIVACY=strict xlsx-for-ai myfile.xlsx
# In MCP server config (applies to all tool calls from the MCP server):
# Set XFA_PRIVACY=strict in your MCP server's env block
Delete the config to reset your client ID and API key:
rm ~/.xlsx-for-ai/config.json
| Was | Now |
|---|---|
| All rendering local | Rendering server-side; local engine is optional fallback for xlsx_read only |
xlsx-for-ai <file> CLI | Same — still works |
cursor-reads-xlsx | Still works — back-compat alias |
--list-sheets, --schema, --diff, etc. | Moved to MCP tools (xlsx_list_sheets, xlsx_schema, xlsx_diff) |
--export-redacted-workbook | Moved to xlsx_redact MCP tool |
| Heavy npm install (~50 MB) | Thin install (~2 MB); engine stays server-side |
| PII detection, region scoring | Moved server-side; not exposed in the npm package |
The config file at ~/.xlsx-for-ai/config.json is extended in-place — existing telemetry consent is preserved.
See SECURITY.md. All file content is transmitted to xlsx-for-ai-server.fly.dev over HTTPS. Files are not retained beyond the duration of a single request on the free tier.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.