About csvto-mcp
csvto-mcp is a local file conversion MCP server for CSV, JSON, and Excel, aimed at people working with structured data through an AI assistant. It writes converted files beside the source without uploading them or passing their contents through the model context.
Key features
- 01Convert CSV, JSON, and Excel files
- 02Process files locally
- 03Write output beside the source
- 04Infer types across each column
- 05Preserve values that would change on conversion
Use cases
- 01Convert a local CSV file to Excel
- 02Convert JSON data for spreadsheet use
- 03Keep leading zeros and numeric precision during conversion
MCP support
csvto-mcp provides local file conversion tools to MCP clients. Clients supply a file path; the server writes the converted file locally, without uploading file contents or sending them through the model context.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
10Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| format | enum | No | Defaults to detection from the file extension.csv | json | xlsx |
| has_header | boolean | No | Treat the first row as column names. Default true. |
| input_path | string | Yes | Absolute path to the source file on this machine. |
Details
From the project READMEcsvto
CSV, JSON and Excel conversion that runs where your data already is.
csvto-mcp— an MCP server. Point your AI assistant at a file path; it converts locally and writes the result beside it. Nothing is uploaded, and file contents never pass through the model's context.@csvto/core— the conversion engine. No DOM, nofs, no network, so the same tested code runs in a browser, in a local MCP process, or on a server.
The same engine powers the browser tools at csvtosite.com, where conversion happens client-side and files are likewise never uploaded.
Install the MCP server
claude mcp add csvto -- npx -y csvto-mcp
Or in any MCP client's config:
{
"mcpServers": {
"csvto": { "command": "npx", "args": ["-y", "csvto-mcp"] }
}
}
Requires Node 18+. Full tool list and behaviour: packages/mcp/README.md.
Types are inferred per column, not per cell
This is the part that matters, and where most converters quietly corrupt data. A column converts to numbers only if every value in it survives the round trip exactly. If one value would change, the whole column stays text:
01234keeps its leading zero instead of becoming1234- A 16-digit account number stays itself instead of becoming
1.23457E+14 1250.50keeps its trailing zero instead of becoming1250.5- A column never ends up as a mix of numbers and strings
Verified in tests: 01234 survives a CSV → xlsx → CSV round trip intact.
Develop
npm install
npm test # 49 tests
npm run build
packages/core must stay environment-free — no window, no fs, no fetch. That
constraint is what lets one tested engine serve every surface.
Licence
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.