In orders.xlsx, what did each region sell in Q3, totalled, sorted highest first?
Paste this into Claude with the server connected.
That is sheet_query: filters, sorts, group by, and sum, average, min and max per
group. No formula written, no pivot table built, and nothing typed into a cell.
The filters and computed columns are parsed and evaluated by the server's own small expression
engine. It has no access to the filesystem, the network or the process, because there is no
eval and no shell anywhere in the path. A model that decides to filter on something
strange produces a wrong answer at worst, not a command that runs.
Column references are bracketed, so [Qty] * [Unit Price] is a computed column and
[Status] = "open" and [Qty] > 5 is a filter. That is the whole syntax you ever need to
know, and mostly you do not, because you describe what you want and the model writes it.
Open orders.xlsx and tell me what is in it.
Paste this into Claude with the server connected.
sheet_info returns the sheets, the dimensions and the header row it guessed. On an
export with a title line and a blank row above the real headers, the guess is doing real work, and it
is worth seeing what it decided before you build an answer on it. sheet_stats per column
is the second check: a numeric column that reports as text is the reason a total came back wrong.
Find every row in clients.xlsx that mentions Beta GmbH.
Paste this into Claude with the server connected.
sheet_find searches values across the sheet and returns the rows with their numbers,
so you can go and look at the source. It searches what is in the cells, not what a formula would have
produced elsewhere.
sheet_add_column adds a computed column and sheet_write saves to a path
you name. The source is not overwritten unless you tell it to be, which is the default that stops a
question from destroying the file it was asked about.
Read, query, stats and find on files up to 5,000 rows. Writes up to 500 rows, and never a partial
file above that: the write is refused rather than truncated. Pro removes both. From
data/facts.json.
Nothing is uploaded. The server works on the files you name and stores nothing else, which is the practical difference from pasting a sheet into a chat window.
It reads the cached value the file stores, which is what the formula last computed when the file was saved. It does not recalculate. A file saved by a tool that did not write cached values will read as blank in those cells, and sheet_info plus sheet_stats will show you that before you build on it.
sheet_info lists them and the read and query tools take a sheet name. Queries run against one sheet at a time; there is no join across sheets, which is a real limitation and not a temporary one.
No. The server makes no network call of any kind. It opens the path you gave it, answers, and keeps a recent-files list and nothing else. That list is the only thing it stores.
Free reads up to 5,000 rows and refuses above that with the row count rather than answering from a slice. Pro has no row limit, and the practical ceiling becomes memory. A 200,000-row file is a database question rather than a spreadsheet question.
All MCP servers and prices · All guides · Buy the bundle $39