MCP server for spreadsheet files (.xlsx, .csv, .ods) - cell-level ops + DuckDB SQL engine.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"mcp-server-spreadsheet": {
"args": [
"mcp-server-spreadsheet"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
mcp-name: io.github.marekrost/mcp-server-spreadsheet
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'mcp-server-spreadsheet' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked mcp-server-spreadsheet against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in data
Query and manage PostgreSQL databases directly from AI assistants
Zero-dependency, token-efficient database MCP server for Postgres, MySQL, SQL Server, MariaDB, SQLite.
Manage Supabase projects — databases, auth, storage, and edge functions
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
MCP Security Weekly
Get CVE alerts and security updates for Spreadsheet MCP Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
mcp-name: io.github.marekrost/mcp-server-spreadsheet
Data-first MCP server for reading and writing spreadsheet files (.xlsx, .csv, .ods).
.xlsx), CSV (.csv), and OpenDocument (.ods) files through a unified tool interface.file and sheet explicitly; no handles or sessions.os.replace() into the target path.default.No local checkout needed — just configure your MCP client (see below).
git clone https://github.com/marekrost/mcp-server-spreadsheet.git
cd mcp-server-spreadsheet
uv sync
Add to your claude_desktop_config.json:
Using PyPI (recommended):
{
"mcpServers": {
"mcp-server-spreadsheet": {
"command": "uvx",
"args": ["mcp-server-spreadsheet"]
}
}
}
Using local source:
{
"mcpServers": {
"mcp-server-spreadsheet": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-server-spreadsheet", "main.py"]
}
}
}
Add to your .mcp.json:
Using PyPI (recommended):
{
"mcpServers": {
"mcp-server-spreadsheet": {
"command": "uvx",
"args": ["mcp-server-spreadsheet"]
}
}
}
Using local source:
{
"mcpServers": {
"mcp-server-spreadsheet": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-server-spreadsheet", "main.py"]
}
}
}
# PyPI
uvx mcp-server-spreadsheet
# Local source
uv run main.py
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.
{
"mcpServers": {
"mcp-server-spreadsheet": {
"command": "uvx",
"args": ["mcp-server-spreadsheet"],
"env": { "MCP_SPREADSHEET_ROOT": "/home/me/spreadsheets" }
}
}
}
Unset (the default), any path the server process can access is allowed.
| Format | Sheets | Formulas | Types |
|---|---|---|---|
.xlsx | Multiple | Preserved as strings | Native (int, float, date, bool) |
.ods | Multiple | Not preserved | Native (int, float, date, bool) |
.csv | Single (default) | N/A | Inferred on load (int, float, text) |
Sheet management tools (add_sheet, delete_sheet, copy_sheet) raise an error for CSV files.
| Tool | Description |
|---|---|
list_workbooks | List all spreadsheet files in a directory (non-recursive) |
create_workbook_file | Create a new empty spreadsheet file (format by extension) |
copy_workbook | Copy an existing file to a new path |
| Tool | Description |
|---|---|
list_sheets | List all sheet names in a workbook |
add_sheet | Add a new sheet (optional name and position) |
rename_sheet | Rename an existing sheet |
delete_sheet | Delete a sheet by name |
copy_sheet | Duplicate a sheet within a workbook (optional new name and position) |
| Tool | Description |
|---|---|
read_sheet | Read en |