A hosted MCP server and npm client that lets LLMs read, write, validate and analyze Excel files without losing structure. Hardened against malformed input. Free to start.
Get the Library npm i -g xlsx-for-aiLLMs choke on real spreadsheets — merged cells get flattened, formulas read as stale cache, named ranges disappear, and pandas can't tell a header row from a data row. xlsx-for-ai exposes a tool surface designed for agents.
Parse any .xlsx into LLM-friendly text. Per-column type inference with confidence. Pandas-style describe, filter, aggregate.
Named ranges, merged cells, formulas, data validations, and conditional formatting are first-class — not collapsed by a one-shot pandas read.
Run a workbook through two independent engines and report divergences. Catches the corruption pandas silently masks.
XXE blocking, zip-bomb caps, buffer limits, entity-expansion limits. Every file is sanitized before parsing.
Anonymous UUID registration — no email, no name. Per-request strict mode disables any error capture. Read the policy.
Standard MCP stdio. One install, one tool surface, works in every MCP-compatible host.
The npm client auto-registers an anonymous client_id on first run. No signup form, no credit card. Paid plans below — annual subscriptions for commercial use and higher volumes.
Start free — 10,000 calls / month, 10 MB file cap, all 37 tools, anonymous registration. Non-commercial use.
Commercial use or higher volume? Pick a tier below.
Commercial use, light volume.
Mid production tier.
Heavy automation.
Above 100,000 calls/month? Contact us for an enterprise plan.
Install the npm client; it auto-registers an anonymous client_id on first use. No signup form.
npm install -g xlsx-for-ai
xlsx-for-ai path/to/workbook.xlsx
Or wire it as an MCP server in your agent config (Claude Desktop, Cursor, Cline, Claude Code):
{
"mcpServers": {
"xlsx-for-ai": { "command": "xlsx-for-ai", "args": ["--mcp"] }
}
}
No install needed for one-off use:
npx xlsx-for-ai path/to/workbook.xlsx
Full docs and tool reference at the GitHub repository and the npm package page.
Questions, bug reports, sales, anything else — email support@xlsx-for-ai.dev.
We answer everything within two business days. For security disclosures, please use the same address with subject line beginning [security].
By installing the xlsx-for-ai npm package or using the API at api.xlsx-for-ai.dev ("the Service"), you agree to these terms.
xlsx-for-ai is software that processes Excel (.xlsx and related) files on behalf of LLM agents. The npm client is open-source. The hosted API is operated by xlsx-for-ai.
The Service registers an anonymous client_id on first use. You are responsible for any activity originating from your client_id. We may rate-limit, suspend, or revoke access if usage violates these terms or appears abusive.
Paid plans are billed monthly via Stripe. By subscribing, you authorize recurring charges to your payment method until you cancel. Cancellation takes effect at the end of the current billing period; access continues until then. Prices may change with at least 30 days' notice.
We aim for high availability but do not guarantee uninterrupted service for free or Plus plans. Pro and Ultra plans include the SLA stated in the plan description.
The Service is provided "as is" without warranty of any kind. xlsx-for-ai is not liable for indirect, consequential, or incidental damages arising from your use of the Service. Total liability is limited to the amount you paid in the previous 12 months.
You may stop using the Service at any time. We may terminate or suspend access for violations of these terms, with or without notice.
We may update these terms. Material changes will be announced on this page with a revised "last updated" date. Continued use after changes constitutes acceptance.
These terms are governed by the laws of the State of Texas, United States, without regard to conflict-of-laws principles. Disputes will be resolved in courts located in Travis County, Texas.
Questions about these terms: support@xlsx-for-ai.dev.
This page describes what data the xlsx-for-ai Service collects, how it is used, and how you can opt out. The full developer-oriented version lives at PRIVACY.md in the GitHub repository.
For every API call: file bytes (base64-encoded, in memory only — not stored after the request completes), an anonymous client_id (UUID generated locally; not linked to any identifying information), platform and version strings (e.g., darwin-arm64, 2.0.0), and the tool name and parameters of the request.
We do not collect your email, name, file names, file paths, or any cell content beyond what flows through a single request.
Data is used to operate the Service: rate-limiting, abuse prevention, and aggregate engineering metrics (call counts, error rates, file size distributions). We do not sell or share your data with third parties.
When a request results in an error (5xx, hardening rejection, engine exception), we may retain a redacted copy of the workbook for up to 30 days for debugging. "Redacted" means cell values are stripped before storage. Captures auto-delete after 30 days. You can disable this for any request by sending the header X-XFA-Privacy: strict or by setting XFA_PRIVACY=strict in your environment.
We use Fly.io for compute and database hosting, Cloudflare R2 for redacted error captures, and Stripe for payment processing on paid plans. Stripe receives only payment-related data when you subscribe.
To delete your registration, remove ~/.xlsx-for-ai/config.json on your machine. The next call generates a new anonymous client_id. To request deletion of any associated audit logs, email us — anonymous IDs make most users untraceable; we'll honor any request we can identify.
The Service is not directed to children under 13 and we do not knowingly collect personal data from them.
support@xlsx-for-ai.dev for any privacy question.
The free tier is free. There is nothing to refund.
You can cancel a paid subscription at any time from your customer portal or by emailing support@xlsx-for-ai.dev. Cancellation takes effect at the end of the current billing period; you keep access until then.
For first-time subscribers, we offer a full refund within 14 days of the initial charge if you're unhappy with the Service for any reason — just email us. After 14 days or for renewal charges, refunds are at our discretion.
If the Service is unavailable for more than the SLA threshold of your plan in a billing period, contact us and we will issue a prorated credit toward the next billing cycle.
Please email us before initiating a chargeback. We respond within two business days and will work with you to resolve any billing concern.