
Mcp Server Spreadsheet
io.github.marekrostPublished by GitHub account marekrostv0.3.3Updated Oct 25, 2026
MCP server for spreadsheet files (.xlsx, .csv, .ods) - cell-level ops + DuckDB SQL engine.
Overview
Local MCP server for reading and editing Excel, CSV and ODS spreadsheets, with cell-level tools plus a DuckDB SQL engine.
- What you can do
- List, create and copy workbook files, and list, add, rename, delete or copy sheets (CSV is a single sheet named default). Read whole sheets, single cells, ranges and used dimensions. Write cells, ranges and appended rows; insert, delete, clear and copy rows, columns and ranges. Search a sheet by value or regex. Inspect tables and run read-only SQL SELECTs, including cross-sheet JOINs and aggregates, or run INSERT, UPDATE and DELETE that write back to the file.
- When to use it
- Useful when an assistant should inspect or modify spreadsheet data on the local machine, such as summarizing a CSV, restructuring an Excel workbook, or querying several sheets with SQL instead of manual cell reads.
- Requirements
- Runs locally over stdio as a PyPI package (mcp-server-spreadsheet) launched with uvx, or from source with uv; needs Python 3.10 or newer. No authentication. Optionally set MCP_SPREADSHEET_ROOT to an absolute directory to confine all path arguments.
Installation
In SourceWeft
- Open Mcp Server Spreadsheet in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
mcp-server-spreadsheet
mcp-name: io.github.marekrost/mcp-server-spreadsheet
Data-first MCP server for reading and writing spreadsheet files (.xlsx, .csv, .ods).
Key features
- Multi-format — works with Excel (
.xlsx), CSV (.csv), and OpenDocument (.ods) files through a unified tool interface. - Dual mode — cell-level workbook operations and a DuckDB-powered SQL query engine, interleaved freely on the same file.
- Workbook essentials — worksheets, rows, columns, cells, search.
- Data-only — preserves existing formatting but only reads and writes values.
- Stateless — every call specifies
fileandsheetexplicitly; no handles or sessions. - Atomic saves — writes go to a temp file, then
os.replace()into the target path. - Type coercion on write — numeric strings become numbers, everything else is text.
- SQL across sheets — JOINs, GROUP BY, aggregates, subqueries via in-memory DuckDB; mutations write back to the file.
- CSV as single-sheet workbook — CSV files are treated as a workbook with one sheet named
default.
Requirements
- Python 3.10+
Installation
From PyPI (recommended)
No local checkout needed — just configure your MCP client (see below).
From source (for development)
Usage
Claude Desktop
Add to your claude_desktop_config.json:
Using PyPI (recommended):
Using local source:
Claude Code
Add to your .mcp.json:
Using PyPI (recommended):
Using local source:
Standalone (stdio transport)
Restricting file access to a directory (optional)
Set MCP_SPREADSHEET_ROOT to confine all path arguments to a single directory tree. Paths outside it are rejected with a clear error returned to the agent.
Unset (the default), any path the server process can access is allowed.
Format notes
Sheet management tools (add_sheet, delete_sheet, copy_sheet) raise an error for CSV files.
Tools
Workbook Operations
Sheet Operations
Reading Data
Writing Data
Column Operations
Search
Table Mode (SQL)
SQL examples:
Sheet names with spaces must be quoted: SELECT * FROM "Q1 Sales".
Sheets whose table doesn't start at row 1
All three SQL tools accept header_row and data_start_row. Each can be an
int (applied to every sheet) or a {sheet_name: row} mapping (sheets not
listed fall back to the default). Use header_row when column titles live
below row 1, and data_start_row when extra rows (e.g. a units row) sit
between the header and the data.
sql_execute preserves rows above header_row when writing changes back.
Running tests
Every tool is exercised against .xlsx, .csv, and .ods fixtures generated into a temp directory.
Common Parameters
Every sheet-level tool accepts:
All row/column indices are 1-based. Cell references use A1 notation (A1, $B$2).
Source: README.md at commit 13e9e25
Tools
0Version history
1- v0.3.3LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts