Spreadshet Audit MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spreadshet Audit MCPAudit ./Q3-budget.xlsx and flag the high-severity errors."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
spreadsheet-audit-mcp
An MCP server that lets Claude (or any MCP client) audit an .xlsx workbook for the errors that quietly break spreadsheet models. Local and read-only: it opens the file you point it at, never writes to it, never uses the network.
What it checks
Rule | Severity | What it catches |
| HIGH |
|
| HIGH | error values stored in the file by the last app that saved it |
| HIGH | a hard-coded number sitting inside a filled-down formula run |
| HIGH | the one formula that differs from consistent neighbours above and below |
| HIGH | formulas that read another file |
| HIGH | named ranges that point to |
| MEDIUM | rates and thresholds buried in formulas instead of labelled inputs (rounding tolerances like |
| MEDIUM |
|
| MEDIUM | hidden or very-hidden sheets |
| LOW | hidden rows/columns; |
Repeated MAGIC-NUMBER, VOLATILE and LOOKUP-APPROX hits are grouped per sheet with a count, so 700 repeats do not bury the real problems.
Related MCP server: sheetspec
Tools
Tool | What it does |
| Full audit ( |
| One cell's formula, stored result and the cells it reads ( |
Install and use
Requires Node 18+, Python 3.9+ with openpyxl (and optionally formulas for the recalculation check): pip install openpyxl formulas.
npm install
npm test # 14 Python tests + 8 end-to-end MCP client checksClaude Desktop / Claude Code config:
{ "mcpServers": { "spreadsheet-audit": { "command": "node", "args": ["/absolute/path/to/server.mjs"] } } }Then ask: "Audit ./budget.xlsx and tell me which findings could change the bottom line."
Honest limits
Heuristic. It points at where models usually go wrong; it cannot prove a model is right, and some findings are intentional (for example a sensitivity grid with fixed steps). If the recalculation engine cannot handle a workbook it says so in recalculation_note and the static checks still run.
Need a spreadsheet model built or reviewed, or a custom MCP server for your tools?
Open an issue or message the author.
License: MIT
Available Tools
2 toolsaudit_workbookAudit a spreadsheet for formula and model errorsARead-onlyIdempotent
Audits an .xlsx workbook: error values after an independent recalculation, typed-over formulas, formulas that break the pattern of their neighbours, hard-coded numbers inside formulas, approximate-match lookups, volatile functions, external links, hidden sheets/rows/columns and broken named ranges. Heuristic: it points at where models usually go wrong, it cannot prove a model is right.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the .xlsx file | |
| limit | No | ||
| recalc | No | Recalculate with an independent engine to find error values (slower on big files) | |
| min_severity | No | LOW |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly=true, idempotent=true and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it performs an independent recalculation, it is heuristic rather than conclusive, and it points at likely fault locations rather than proving correctness. It stops short of describing result shape or severity-level meaning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The check list is front-loaded and every clause names a distinct defect class, so the length is earned rather than padding. The closing heuristic caveat is a single tight sentence that adds honest framing; structure is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With readOnly annotations covering safety but no output schema, the description should carry more of the result contract. It doesn't say what a finding looks like, how severity is assigned or what 'limit' truncates. The heuristic caveat is a meaningful inclusion, but the undocumented severity/limit parameters leave the invocation picture incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: 'path' and 'recalc' are documented in the schema, but 'limit' and 'min_severity' have no descriptions anywhere. The description's mention of 'independent recalculation' merely restates the recalc param and it says nothing about the result-count limit or what the severity thresholds mean, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Audits an .xlsx workbook') and then enumerates the exact classes of defect it targets — error values, typed-over formulas, pattern-breaking formulas, hard-coded numbers, approximate-match lookups, volatile functions, external links, hidden sheets/rows/columns, broken named ranges. This scope is unmistakably distinct from the cell-level sibling inspect_cell, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the fitting context (when you suspect model errors) and honestly scopes the tool's power with 'it cannot prove a model is right'. However, it never names inspect_cell or any alternative, and gives no explicit when-not to use it, leaving the choice between workbook-level auditing and cell inspection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_cellShow one cell's formula and what it readsARead-onlyIdempotent
Returns the formula (or value), the stored result if the file has one, and the cells the formula reads. Use it to follow a suspicious number back to its inputs.
| Name | Required | Description | Default |
|---|---|---|---|
| cell | Yes | ||
| path | Yes | ||
| sheet | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, so safety and repeatability are covered. The description adds real behavioral detail beyond that: it discloses the return contents (formula or value, cached result when present, and precedent cells), including the conditional "if the file has one" for stored results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The return contents are front-loaded and the second sentence earns its place by supplying the investigative use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of explaining what comes back, and it does so reasonably well. However, it omits error behavior for empty or missing cells and the meaning of path/sheet, so an agent still lacks enough to call it confidently in edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%: path, sheet, and cell carry only types, and the description says nothing about any of them. The schema's regex hints that cell is an A1-style reference, but path (workbook file?) and sheet semantics are entirely undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns the formula or value of one cell, its stored result, and the cells the formula reads. That distinguishes it clearly from audit_workbook in substance, though the sibling is never named or contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it to follow a suspicious number back to its inputs" gives a concrete use case, which is more than nothing. But there is no when-not guidance and no explicit routing between this cell-level inspection and the workbook-level audit_workbook sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
audit_workbook - First observed
inspect_cell
TDQS
Scored across 2 tools
The two tools are cleanly separated: audit_workbook performs a whole-file heuristic sweep, while inspect_cell zooms in on a single cell's formula, value, and precedents. The drill-down workflow is explicitly described, so an agent can always tell which to reach for.
Both names follow the same verb_noun snake_case convention (audit_workbook, inspect_cell), with verbs that accurately mirror each tool's scope. No stylistic deviations.
Two tools is at the thin edge for a spreadsheet auditing server; the surface is coherent but leaves no room for reporting, filtering, or remediation operations. It works as a minimal diagnose-then-drill pair, nothing more.
Detection and follow-up tracing are covered, but there is no way to export or summarize findings, fix/annotate flagged issues, or compare across workbooks. For a read-only audit domain this is workable, but agents will hit dead ends on any remediation or reporting task.
Maintenance
Related MCP Connectors
Excel analytics: inspect, query (JSON rows), charts, and JSON-to-xlsx workbook writing.
Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
Inspect XLSX/XLSM workbooks, validate email, generate SVG QR codes, and look up domain DNS and TLS.
Structured financial modeling for AI agents: build, version, audit models, export to Excel.
Related MCP Servers
- AlicenseAqualityAmaintenance50 tools and 400 functions for working with Excel/.xlsx spreadsheets — read/write, recalculate formulas, diff, repair broken references, and audit. Built for AI agents.503,303 npm6MIT
- AlicenseNot gradedqualityAmaintenanceValidates Excel (.xlsx) workbooks against reviewed, lockable acceptance contracts, catching errors and outputting structured issues that agents can repair.1MIT
- FlicenseCqualityBmaintenanceAn MCP server for safe .xlsx inspection and controlled workbook writes, enabling spreadsheet reads, search, filtering, aggregation, and preview-based writes with workspace confinement and audit logging.12-
- AlicenseBqualityBmaintenanceProvides secure, agentic Excel analysis and calculation capabilities, enabling users to inspect workbook structure, perform statistical computations, write formulas, and generate outputs through whitelisted MCP tools with audit trails and backups.15MIT