Converts local CSV, JSON, and Excel files directly on your machine without uploading data or passing contents through the AI model's context.
Also known as Bishop81/csvto, csvto
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.1.2
- Last commit
- Aug 30, 2026
- License
- MIT
What is csvto MCP?
csvto converts local CSV, JSON, and Excel files directly on your machine without uploading data or passing contents through the AI model's context.
Summary generated from the project's README
About csvto MCP server
Converting local CSV, JSON, and Excel files directly on your machine is what csvto-mcp enables for developers using AI assistants. By pointing an AI client at a specific file path, you can trigger local conversions that write the resulting file right next to the original. This process ensures that no data is uploaded to a server and file contents never pass through the model's context window, maintaining privacy and reducing token usage.
Setting up the server requires Node 18+ and can be done via npx in your MCP client configuration. The underlying conversion engine is designed to be environment-free, meaning it avoids using the DOM, file system, or network calls during the core logic. A key technical distinction is how it handles data types; it infers types per column rather than per cell. A column only converts to numbers if every single value survives the round trip exactly, which prevents common issues like losing leading zeros in strings like 01234 or corrupting long account numbers into scientific notation.
What you can do with it
- 1Convert CSV to Excel locallyAsk your AI assistant to transform a local CSV file into an Excel spreadsheet without uploading the data.
- 2Protect sensitive data privacyPerform file format transformations while ensuring the actual content of the files stays off the cloud and out of the LLM context.
- 3Maintain data integrity for IDsConvert files while ensuring that leading zeros in ID numbers or long account numbers are not corrupted by type inference.
Written from the project's README. Every use case is checked against a quote from it.
How to install csvto MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall csvto MCP in Claude Code
$ claude mcp add csvto -- npx -y csvto-mcpInstall csvto MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"csvto": {
"command": "npx",
"args": [
"-y",
"csvto-mcp"
]
}
}
}Install csvto MCP in VS Code
.vscode/mcp.json
{
"servers": {
"csvto": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"csvto-mcp"
]
}
}
}Install csvto MCP in VS Code CLI
$ code --add-mcp '{"name":"csvto","type":"stdio","command":"npx","args":["-y","csvto-mcp"]}'Install csvto MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"csvto": {
"command": "npx",
"args": [
"-y",
"csvto-mcp"
]
}
}
}Install csvto MCP in Codex
$ codex mcp add csvto -- npx -y csvto-mcpInstall csvto MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.csvto] command = "npx" args = ["-y", "csvto-mcp"]
Install csvto MCP in Gemini CLI
$ gemini mcp add -s user csvto npx -- -y csvto-mcpInstall csvto MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"csvto": {
"command": "npx",
"args": [
"-y",
"csvto-mcp"
]
}
}
}Automated checks
Ran Nov 15, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablebishop81/csvto is public and reachablegithub.com/bishop81/csvto ↗Pass
- Package names this repository as its sourcecsvto-mcp names bishop81/csvto as sourcenpmjs.com/package/csvto-mcp ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-08-31github.com/bishop81/csvto ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from csvto-mcpPass
- No critical advisory in the package or its dependencies109 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubcsvto
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
csvto MCP questions
How do I add csvto MCP to Claude Code?
Run claude mcp add csvto -- npx -y csvto-mcp in your terminal. Add --scope user to make it available in every project.
How do I add csvto MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
Is my data uploaded to a server?
No, the conversion happens locally where your data is located, and file contents never enter the model's context.
How does the server handle data types like leading zeros or long account numbers?
The engine infers types per column; a column only converts to numbers if every value survives the round trip exactly, preserving leading zeros and long numbers.
What are the system requirements to run this server?
You need Node.js version 18 or higher to use the MCP server.