Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.
PopNx MCPMCP servers for people who use AI · explained in plain words

Spreadsheet Builder

by theluckystrikeversion 0.21.1i★ 2 (Stars for the whole repo)iComputer or cloud
Registry nameio.github.theluckystrike/spreadsheet-builder

How to install

Overview

Description from the maker (original English)

Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Docs, sheets & office work
  • You need to fill in: MCP_LICENSE_KEY, Authorization

Install

Pick the AI app you use, then copy the settings.

Passed 4/4 checks · What you ask goes through the maker’s server (mcp.zovo.one)

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude · about 5 min

You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money) · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1

  1. Sign up and create a Spreadsheet Builder key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    Open the Spreadsheet Builder site ↗

  2. Open Claude’s Connectors page

    CustomizeConnectors

    CustomizeConnectors1+ Add2https://…3Add4
  3. Click “+ Add” → “Add custom connector” and fill in these 2 fields

    Copy each value into the field with the same name in Claude, then click Continue

    Name · NameSpreadsheet Builder
    Remote MCP server URL · Addresshttps://mcp.zovo.one/mcp/spreadsheet-builder

    Under Request headers, add this name and value

    Header nameAuthorization
    ValueBearer <paste your key here>

    Paste the key only into the app’s field, never into a chat or to anyone

    Leave Authentication as Claude detected it, then click Add

  4. Turn it on in a chat

    +ConnectorsSpreadsheet Builder

  5. Try it

    Use Spreadsheet Builder and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using Spreadsheet Builder or shows a Spreadsheet Builder tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

ChatGPT cannot connect Spreadsheet Builder yet

Spreadsheet Builder needs your own key to connect, but OpenAI’s help page only describes OAuth sign-in; there is no key option we could verify

What you can do instead

A · Use an app that can connect Spreadsheet Builder

  • You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money) · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1
  • You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money)
  • You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money)
  • You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money)

B · Others in Docs, sheets & office work that work with ChatGPT

Picked from the most used in the same category, only ones that connect by address with no key

Works with Claude Code · about 5 min

You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money)

  1. Sign up and create a Spreadsheet Builder key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    Open the Spreadsheet Builder site ↗

  2. Open Terminal

    Mac: press Command+Space and type Terminal · Windows: open PowerShell

  3. Paste this command and press Enter

    claude mcp add --transport http spreadsheet-builder https://mcp.zovo.one/mcp/spreadsheet-builder --header 'Authorization: your-value'

    Replace “your-value” with your key before pressing Enter

    Paste the key only into the app’s field, never into a chat or to anyone

  4. Type /mcp in Claude Code

    You should see Spreadsheet Builder listed as connected

  5. Try it

    Use Spreadsheet Builder and tell me what you can do for me, then show me one thing

    ✓ If Claude Code says it is using Spreadsheet Builder or shows a Spreadsheet Builder tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Cursor · about 5 min

You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money)

  1. Sign up and create a Spreadsheet Builder key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    Open the Spreadsheet Builder site ↗

  2. Click this button to open Cursor

    Open in Cursor

    Cursor asks you to confirm; click Install

  3. Fill in your key

    In the Spreadsheet Builder settings, Authorization is empty; add your key and save

    Paste the key only into the app’s field, never into a chat or to anyone

  4. Open the AI chat in Cursor in Agent mode

  5. Try it

    Use Spreadsheet Builder and tell me what you can do for me, then show me one thing

    ✓ If Cursor says it is using Spreadsheet Builder or shows a Spreadsheet Builder tool in the answer, you are connected

Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with VS Code · about 5 min

You need a Spreadsheet Builder key (sign up on the maker’s site, may cost money)

  1. Sign up and create a Spreadsheet Builder key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    Open the Spreadsheet Builder site ↗

  2. Click this button to open VS Code

    Open in VS Code

    VS Code asks you to confirm; click Install

  3. Fill in your key

    In the Spreadsheet Builder settings, Authorization is empty; add your key and save

    Paste the key only into the app’s field, never into a chat or to anyone

  4. Open the AI chat in VS Code in Agent mode

  5. Try it

    Use Spreadsheet Builder and tell me what you can do for me, then show me one thing

    ✓ If VS Code says it is using Spreadsheet Builder or shows a Spreadsheet Builder tool in the answer, you are connected

Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.

See every app that uses MCP →

Address for apps that connect over the web

Addresshttps://mcp.zovo.one/mcp/spreadsheet-builder

JSON settings are under “For developers” below

Stuck? Ask people who use Spreadsheet Builder💬 Discussion →
For developers: Terminal commands and JSON settings

Over the web

Claude Code

claude mcp add --transport http spreadsheet-builder https://mcp.zovo.one/mcp/spreadsheet-builder --header 'Authorization: your-value'

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "spreadsheet-builder": {
      "url": "https://mcp.zovo.one/mcp/spreadsheet-builder",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "spreadsheet-builder": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/spreadsheet-builder",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

Values you fill in

  • MCP_LICENSE_KEY secret env
    Optional Pro license key (MCPL1....). Verified offline.
  • Authorization secret required HTTP header
    Bearer

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

At a glance

GitHub starsi
2 (Stars for the whole repo)
This repo holds several MCP listings; its stars count once in rankings
Downloads per weeki
Not on npm/PyPI
Licencei
No licence stated
Connection
Computer or cloud
Transport
stdio, streamable-http
Latest versioni
0.21.1
Published to registryi
Sep 23, 2026
Code last changedi
Nov 7, 2026
Maker
theluckystrike
Packages
mcpb: https://github.com/theluckystrike/mcp-servers/releases/downl
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Connect over the internet in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Tool names and descriptions exactly as the server reported them on Nov 9, 2026. The maker wrote them, not us; we show them as plain text.

  • license_status

    Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

  • license_activate

    Turn Pro on for this connection with key, an MCPL1. . issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

  • sheet_load

    Upload data to work on. This hosted endpoint has no filesystem, so instead of a file path you send the data once with sheet_load and then pass its name as `path` to sheet_info, sheet_read, sheet_query, sheet_stats, sheet_find, sheet_add_column, sheet_convert and sheet_write. Give

  • sheet_files

    List the sheets loaded for this token, with their sizes and the storage left under the 2 MB cap.

  • sheet_unload

    Delete one sheet loaded for this token, freeing its space under the 2 MB cap.

  • sheet_info

    Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Start here: sheet names, size, header row, column types and samples.

  • sheet_read

    Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Reads rows as a table, JSON or CSV; page with limit/offset or an A1 range.

  • sheet_query

    Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Filter, group, aggregate and sort in one call; never hand sums over sheet_read rows.

  • sheet_stats

    Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Whole-column statistics: count, empty, distinct, min, max, sum, mean, median.

  • sheet_find

    Call this tool to search every cell of a spreadsheet or CSV for text; built-in file readers cannot parse spreadsheets. Matching is case insensitive. Returns cell addresses with a preview of the row each hit is on.

  • sheet_write

    Call this tool to write rows to an xlsx, csv, tsv or json file; the extension of out_path picks the format. mode is new_file, append or overwrite. Other sheets are kept. Free: 500 rows per file.

  • sheet_add_column

    Call this tool to add a computed column and save the result to a NEW file; the source is never modified unless out_path points at it. Returns the new file path, the row count and a preview of the first rows.

  • sheet_convert

    Call this tool to convert a sheet between excel (xlsx), csv and json. Writes a new file next to the source unless out_path is given; the source is never modified. Returns the new file path with its row and column counts.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 11, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account theluckystrike, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 4 days ago

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 15 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 13 tool descriptions and found no hidden instructions to the AI

Discussion

Ask, share a tip or report that it does not work. Sorted by what people marked helpful.

No posts yet. Be the first to ask or share.

Posts here are written by users, not the PopNx team.

Sign in with Google to post

User reviews

No reviews yet

Sign in with Google to write a review

Compared with others in Docs, sheets & office worki

  • More stars than 0% of the other 3748 servers in this category
  • Published to the registry more recently than 38% of the other 3748 servers in this category
  • Basic checks equal to or better than 100% of the other 3748 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Spreadsheet Builder safe?

It passed 4 of 4 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: MCP_LICENSE_KEY, Authorization

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed 4 days ago, and the latest version (0.21.1) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT Business and above.

What can I use instead?

In the same category: Puter MCP, XcodeBuildMCP, XcodeBuildMCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

by HeyPuterWidely used★ 44.1KUpdated 5 months ago

Runs in the cloud✓ puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

by getsentryWidely used↓ 130.5K/wk★ 6.6KUpdated 4 months ago

Runs on your computer✓ xcodebuildmcp.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

by cameroncookeWidely used↓ 130.5K/wk★ 6.6KUpdated 14 months ago

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

mcp-spreadsheet

Featured on [Awesome MCP Servers](https://mcpservers.org) - directory listing | live hosted endpoint, free tier, no signup.

Hand your AI assistant a spreadsheet and talk to it. Point it at any .xlsx, .xlsm, .xlsb, .xls, .ods, .csv or .tsv file on your machine and ask what is in it, filter it, compute a new column, or save it in another format. It handles the messy parts of real files for you: it guesses which row holds the headers, sniffs whether a CSV is separated by commas, semicolons or tabs, keeps quoted commas and newlines intact, reads numbers out of $1,250.00 style text, and reports per-column types and empty counts. It never edits your original file: every write goes to a new path unless you explicitly choose overwrite. Nothing leaves the machine, and there is no API key to get.

In the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.theluckystrike%2Fexcel-spreadsheet-xlsx-csv/versions/latest) (io.github.theluckystrike/excel-spreadsheet-xlsx-csv).

Listed on the [AI Product Index](https://index.percall.dev/l/zovo-spreadsheet.html) - live remote endpoint at mcp.zovo.one/s/spreadsheet, free tier, no signup.

Read, query and extend real spreadsheets from chat without ever touching the original file.

60-second install

Use spreadsheet.mcpb v0.22.9 in Claude Desktop. Published checksums and the versioned download catalog identify the exact release. The npm package is not published.

For a source installation, use Node.js 22 or newer and build the shared dependency first:

git clone https://github.com/theluckystrike/mcp-servers.git

cd mcp-servers npm ci node scripts/bootstrap-timezone.mjs npm run build -w packages/mcp-license -w servers/spreadsheet

Merge this entry into Claude Desktop's mcpServers, or into .cursor/mcp.json for Cursor. Replace the absolute path with your checkout:

{

"mcpServers": { "spreadsheet": { "command": "node", "args": ["/absolute/path/mcp-servers/servers/spreadsheet/dist/index.js"] } } }

For Claude Code:

claude mcp add spreadsheet -- node /absolute/path/mcp-servers/servers/spreadsheet/dist/index.js

To run in Pro mode set MCP_LICENSE_KEY in the same config block, or call license_activate once with your key.

Spreadsheet update

Version 0.22.9 uses the vendor's patched SheetJS 0.20.3. Numeric date cells now follow the time actually stored in the workbook. Some numeric-date files produced by older versions can display 30 seconds differently in historical-offset timezones such as Ho Chi Minh. No guessed offset is added to your data. Reading does not rewrite the source file.

Tools

ToolWhat it does
sheet_infoSheet names, size, guessed header row, per-column type, sample values, empty counts
sheet_readRead rows as a text table, JSON records or CSV; limit/offset paging or an A1 range
sheet_queryFilter with where, group_by + aggregate (sum, count, avg, min, max), pick columns with select, sort (aggregate aliases too), limit
sheet_statscount, empty, distinct, min, max, sum, mean, median per column (top values for text columns)
sheet_findFind text anywhere in the workbook; returns cell addresses and a row preview
sheet_writeWrite rows (objects or arrays) as a new file, an append, or an explicit overwrite
sheet_add_columnAdd a computed column from a formula, saved to a new file. Numeric results are rounded like their inputs (2 decimals in, 2 decimals out); decimals overrides
sheet_convertConvert a sheet to csv, xlsx or json
license_statusFree or Pro, and where to upgrade
license_activateActivate a Pro key (verified offline)

Resource template: sheet:// returns the sheet_info summary for that file. Resource: sheet://recent lists the files this server has opened since it started, most recent first (in memory only, nothing is written to disk, so the list is empty again after a restart).

Prompt: explore_sheet walks an unfamiliar file, sheet_info first, then concrete sheet_query calls built from the columns it actually found.

What you can say

You sayTool
"Open sales.xlsx and tell me what's in it."sheet_info
"Show me the first 50 rows."sheet_read
"Which rep sold the most units in the North region? Top 5 with totals."sheet_query (group_by + aggregate)
"How many empty cells are in the Email column, and what's the median order size?"sheet_stats
"Find every row that mentions 'refund'."sheet_find
"Write this as a new sheet called Q3 Results."sheet_write
"Add a Revenue column that's Units times Unit Price, save it as a CSV next to the original."sheet_add_column
"Convert this xlsx to JSON."sheet_convert
"Am I on the free plan or Pro?"license_status
"Here's my license key, activate it."license_activate

Worked example

From docs/USER_VALUE_R2.md, a 400-row fixture with a title row and a blank row above the real header (row 3), sheets Sales / Reps / Notes, prices stored as strings like "1,516.16". One call, ground truth confirmed against the generator: Turing 650, Hopper 567, Linus T 551, Lovelace 486, Liskov 290.

You: Which rep sold the most units in the North region? Top 5 with totals.

sheet_query { path: "/Users/you/sales.xlsx", sheet: "Sales", where: "[Region] = \"North\"", group_by: ["Rep"], aggregate: [{ col: "Units", fn: "sum", as: "total_units" }], sort: { col: "total_units", dir: "desc" }, limit: 5 }

Assistant: Query: where [Region] = "North"; group by Rep; sum Units as total_units; sort total_units desc; limit 5 5 groups from 102 of 400 rows, showing 5

Alan Turing 650 Grace Hopper 567 Linus T 551 Ada Lovelace 486 Barbara Liskov 290

The response now echoes the exact query it ran (the Query: line) before the numbers, so a filter you did not ask for, an accidental AND [Status] = "Closed", say, is visible instead of silently narrowing the answer.

A second example, adding a column and saving without touching the source:

You: Add a Revenue column and save it as a CSV next to the original.

sheet_add_column { path: "/Users/you/sales.xlsx", sheet: "Sales", name: "Revenue", formula: "[Units] * [Unit Price]", out_path: "/Users/you/sales.csv" }

Assistant: Wrote 400 rows (401 lines with header) to sales.csv. Revenue = Units * Unit Price on every row, total 10,142,542.04. Source file untouched.

The where and formula language

A small expression language, parsed and evaluated directly. There is no eval and no code execution: a bare word is always a column name, never a JavaScript value.

  • Columns: [Unit Price] for names with spaces, Qty otherwise. Lookup is case insensitive.
  • Comparisons: = != > >= < <= contains startswith endswith
  • Logic: AND OR NOT and parentheses. AND binds tighter than OR.
  • Arithmetic in formulas: + - * % / with the usual precedence.
  • Strings: 'single' or "double" quotes; double a quote to escape it.
[Qty] >= 5 AND ([Status] = "open" OR [Region] contains "north")

[Amount] > 1000 AND NOT [Customer] startswith 'Test'

Formula example for sheet_add_column: [Qty] * [Unit Price]. When every column the formula reads holds at most 2 decimals, the result is rounded to 2 decimals, so [Amount] * 1.23 on money gives 40.79 rather than 40.7868. Pass decimals (0-10) to choose the precision yourself.

Numbers written as text in a CSV are converted by pattern, not by length: 1250.00, 12.00 and 1,250.00 all become numbers in the xlsx output, so Excel's own SUM counts them. Identifier-shaped and ambiguous values stay text: 007 keeps its leading zeros and 1.250,00 is left alone rather than guessed at.

Text comparisons ignore case and surrounding whitespace. Values like $1,250.00, 1 250, and 12% compare as numbers, so [Amount] > 1000 works on a column your spreadsheet stored as text.

Free vs Pro

FreePro
Every tool that reads a file (sheet_info, sheet_read, sheet_query, sheet_stats, sheet_find, sheet_add_column, sheet_convert)Files up to 5 MB and 5,000 rowsNo limit (up to the 50 MB file ceiling)
sheet_write, sheet_add_column, sheet_convertUp to 500 rows written per file; over that nothing is written and the tool says soNo limit
Sheets, formats, expression languageAllAll

Over a free read limit the tool still does the work and returns the part it is allowed to return (the first 5,000 rows), with a note saying what was left out. Over the free write limit nothing at all is written: a partial file that looks complete is worse than no file, so the tool refuses, tells you the row count and the cap, and suggests a free workaround (filter the rows down first, or write in 500-row batches). Nothing fails silently.

Get Pro

$19 one-time for this server, $39 for every server, lifetime: https://mcp.zovo.one/buy/spreadsheet

How it stores data

This server keeps no database of its own, it reads and writes the spreadsheet files you point it at, directly on your disk, and nothing else. Every write (sheet_write, sheet_add_column, sheet_convert in overwrite mode) goes to a temporary file in the same directory first, then is renamed into place, so an interrupted write leaves either the untouched original or the complete new file, never a truncated one. Because there is no shared state file, there is no advisory lock to take: two calls writing to two different output paths cannot collide, and a call to overwrite the same file twice in a row is simply two writes in sequence. To back up your data, back up the spreadsheet files themselves, there is nothing else to copy.

Limits and honest caveats

  • Free reads cap at 5,000 rows and 5 MB; free writes cap at 500 rows per file and refuse rather than truncate, you get an error naming the row count and the cap, never a shorter file that looks complete.
  • The hard ceiling is 50 MB regardless of tier; a file over that is refused outright with a clear message rather than risking memory exhaustion.
  • The where/formula language is intentionally small: no regular expressions, no custom functions, no cross-sheet references in a single formula. It covers comparisons, boolean logic and arithmetic, nothing more.
  • Writing an xlsx replaces one sheet, not the workbook. sheet_write with append or overwrite reads the whole workbook, swaps the sheet you named and writes every other sheet back, so Sheet2 and its data survive an append to Sheet1. What is *not* preserved is the sheet being written: it is rebuilt from values, so formulas, cell formatting, conditional formatting, charts, data validation and merged cells on that one sheet become plain values. Other sheets keep their cells as read. Take a copy first if the target sheet carries formatting you cannot recreate.
  • Numbers written as text are read with locale-aware rules. 1,250.00, 1 250.00, $1,250.00, 12,99, 1.234,56 and EUR 1 250,00 all read as numbers; a decimal comma is only accepted in the unambiguous shape (a comma with exactly two digits at the end, dots or spaces grouping). Anything that mixes separators another way (1,2500.00) stays tex

Only the beginning is shown; read the rest in the repo