xlsx-audit-mcp
Audits Excel workbooks by tracing cell dependencies and detecting circular references, volatile functions, and other formula risks, enabling natural-language audit queries on local files.
README
xlsx-audit-mcp
An MCP server that audits Excel workbooks. Other Excel MCP servers read and write your data — this one reviews your model:
- "What feeds the Total cell on the Summary sheet?" — precedent tracing
- "If I change this assumption, what breaks?" — dependent tracing, including cells that consume it through ranges like
SUM(A1:A40) - "Audit this workbook" — circular references with example chains, volatile functions (
INDIRECT,OFFSET,NOW,RAND...), hardcoded constants buried inside formulas, external workbook links, merged cells, extra-long formulas
Spreadsheet mistakes are famously expensive. This is the "trace precedents" discipline auditors apply by hand, exposed to an LLM for a whole workbook at once. Local files only; nothing leaves your machine.
Quick start
Claude Code
claude mcp add xlsx-audit -- npx -y xlsx-audit-mcp
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"xlsx-audit": {
"command": "npx",
"args": ["-y", "xlsx-audit-mcp"]
}
}
}
Then: "Audit C:\models\budget-2026.xlsx and tell me what looks fragile."
Tools
| Tool | What it does |
|---|---|
workbook_overview |
Sheets, dimensions, formula counts, defined names, external links |
list_formulas |
Formulas with addresses and cached values, filterable (INDIRECT, VLOOKUP, ...) |
trace_cell |
One cell's formula, value, precedents, and dependents (direct + via ranges) |
audit_workbook |
Ranked risk report across the whole model |
How it works
- Reference tokenizer that understands real formulas: string literals are stripped first (the
"A1"inINDIRECT("A1")is not a reference), function names can't collide (theG10inLOG10(...)is not a cell),$absolutes, quoted sheet names ('My Data'!A1), and ranges are handled. - Shared formulas are materialized. Excel stores filled formulas once with an offset scheme; the loader translates them per-cell (relative refs shifted, absolutes preserved), so dependency queries see what each cell actually computes.
- Ranges are never expanded for storage — dependents queries use range-containment tests, and cycle detection caps range fan-out (a
SUM(A:A)can't explode the graph; capped ranges are reported, not silently dropped). - No formula evaluation. Cached values from the file are shown instead — no spreadsheet engine dependency.
Known limitations: R1C1 notation and structured table references ([@Column]) are counted but not resolved into the graph.
Development
npm install
npm test # offline tests — synthetic workbooks built in-suite
npm run build # tsc → dist/
node scripts/smoke.mjs # end-to-end: generates a workbook, drives the server over stdio
Architecture: src/xlsx.ts (zip + XML → workbook model) and src/formulas.ts (tokenizer, graph, smells) are pure logic; src/index.ts is the MCP wiring.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.