Convert Excel and CSV to JSON
MCP server converting Excel/CSV text or .xlsx files by URL into JSON, with configurable output formatting.
Maintainer of this project? Claim this page to edit the listing.
1.0.0Add to Favorites
Why it matters
Automate data transformation by converting Excel (.xlsx) and CSV files into structured JSON format. This asset supports direct data input and conversion from URLs, with automatic data type detection for seamless integration.
Outcomes
What it gets done
Convert Excel files from URLs to JSON.
Transform direct Excel or CSV data input into JSON.
Automatically detect and convert data types (numbers, booleans, dates, strings).
Handle multiple Excel sheets with structured JSON output.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-excel-to-json-mcp-by-wtsolutions | bash Capabilities
Tools your agent gets
Converts tab-delimited Excel data or comma-separated CSV data into JSON format
Converts an Excel file (.xlsx) from a specified URL into JSON format
Overview
Excel to JSON MCP by WTSolutions MCP Server
An MCP server that converts pasted Excel/CSV text or a remote .xlsx file URL into JSON, with a Pro-Code-gated options object for controlling nesting, headers, and output format. Use for on-the-fly Excel/CSV-to-JSON conversion in a conversation. Free tier caps at 6 rows; larger datasets need a paid Pro Code, and data is sent to WTSolutions' conversion service.
What it does
Excel to JSON MCP by WTSolutions provides a standardized MCP interface for converting Excel and CSV data into JSON, offering two tools: excel_to_json_mcp_from_data converts tab-separated Excel data or comma-separated CSV text directly into JSON, and excel_to_json_mcp_from_url downloads an Excel (.xlsx) file from a given URL and converts each sheet to JSON. For direct-data conversion, the first row is treated as the header (becoming JSON keys) and subsequent rows as data (becoming JSON values). For URL-based conversion, each sheet becomes its own JSON object with a sheetName property and a data array of row objects keyed by column name.
{
"mcpServers": {
"excel-to-json-mcp": {
"args": [
"excel-to-json-mcp"
],
"command": "npx"
}
}
}
The free version processes up to 6 rows of data; a valid Pro Code (from an Excel to JSON by WTSolutions subscription) removes that limit and unlocks the options object for customizing output: jsonMode ("nested" or "flat"), header ("row" or "column"), delimiter for nested keys (".", "_", "__", or "/"), emptyCell handling ("emptyString", "null", or "exclude"), booleanFormat ("trueFalse", "10", or "string"), jsonFormat ("arrayOfObject" or "2DArray"), and singleObjectFormat for single-result cases. As of v1.3.0, only stdio (via npx) is supported as a transport - SSE and Streamable HTTP are not.
The tools automatically detect and convert data types: numbers to numeric values, 'true'/'false' (case-insensitive) to booleans, various date formats to appropriate date representations, and empty cells to empty strings. Responses return isError, msg, and data fields, with the data field an array of sheet objects for URL conversions or a JSON string for direct-data conversions. Error messages are specific and actionable: invalid data format, fewer than 2 rows provided, both data and url supplied simultaneously, network errors fetching the file, file not found, empty header cells, and the free-tier 6-row cap when no Pro Code is provided.
When to use - and when NOT to
Use this connector when you need Claude to convert pasted Excel/CSV text or a remote .xlsx file into structured JSON on the fly - quick data transformations, prepping spreadsheet data for downstream processing, or extracting a just-uploaded Excel file's contents by passing its URL to the from_url tool.
Without a Pro Code, only the first 6 rows of any dataset are processed - larger datasets require a paid subscription. The service is also governed by WTSolutions' own service agreement and privacy policy, since data is sent to their conversion API rather than processed purely locally.
Capabilities
excel_to_json_mcp_from_data: converts tab-separated or comma-separated text (minimum header row plus one data row) into JSON. excel_to_json_mcp_from_url: downloads and converts an .xlsx file from a URL, returning one JSON object per sheet. Both accept an optional Pro-Code-gated options object for controlling nesting, header orientation, delimiter, empty-cell handling, boolean formatting, and overall output shape (array of objects vs 2D array).
How to install
Add the MCP server via npx with no local installation required. Free version: configure with just the excel-to-json-mcp args and npx command. Pro version: add a proCode value under the server's env block in the same JSON config, used with any MCP-compatible client (e.g. Claude Desktop's mcpServers config).
Who it's for
Anyone who needs Claude to convert Excel or CSV data into JSON on demand - analysts, developers preparing spreadsheet data for APIs or scripts, and users working with uploaded or linked .xlsx files.
Source README
Excel to JSON MCP by WTSolutions
Introduction
The Excel to JSON MCP (Model Context Protocol) provides a standardized interface for converting Excel and CSV data into JSON format using the Model Context Protocol. This MCP implementation offers two specific tools for data conversion:
- excel_to_json_mcp_from_data: Converts tab-separated Excel data or comma-separated CSV text data into JSON format.
- excel_to_json_mcp_from_url: Converts Excel file (.xlsx) from a provided URL
Excel to JSON MCP is part of Excel to JSON by WTSolutions:
- Excel to JSON Web App: Convert Excel to JSON directly in Web Browser.
- Excel to JSON Excel Add-in: Convert Excel to JSON in Excel, works with Excel environment seamlessly.
- Excel to JSON WPS Add-in: Convert Excel to JSON in WPS, works with WPS environment seamlessly.
- Excel to JSON API: Convert Excel to JSON by HTTPS POST request.
- Excel to JSON MCP Service: Convert Excel to JSON by AI Model MCP SSE/StreamableHTTP request. (<-- You are here.)
Server Config
Available MCP Servers :
Using Stdio(NPX)
Server Config JSON:
Case 1 : Free Version (Up to processing 6 Rows of data)
If you are using the free version:
{
"mcpServers": {
"excel-to-json-mcp": {
"args": [
"excel-to-json-mcp"
],
"command": "npx"
}
}
}
Case 2 : Pro Version
If you are using the pro version (with a valid proCode):
{
"mcpServers": {
"excel-to-json-mcp": {
"args": [
"excel-to-json-mcp"
],
"command": "npx",
"env": {
"proCode": "type in your proCode here"
}
}
}
}
Using SSE
Not supported since v1.3.0
Using Streamable HTTP
Not supported since v1.3.0
MCP Tools
excel_to_json_mcp_from_data
Converts tab-separated Excel data or comma-separated CSV text data into JSON format.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| data | string | Yes | Tab-separated or comma-separated text data with at least two rows (header row + data row) |
| options | object | No | Optional configuration object for customizing the conversion process. |
Note:
Input data must be tab-separated (Excel) or comma-separated (CSV) text with at least two rows (header row + data row).
- The first row will be considered as "header" row, and this MCP will use it as column names, subsequently JSON keys.
- The following rows will be considered as "data" rows, and this MCP will treat them as JSON values.
Example Prompt 1:
Convert the following data into JSON format:
Name Age IsStudent
John Doe 25 false
Jane Smith 30 true
Example Prompt 2:
Convert the following data into JSON format:
Name,Age,IsStudent
John Doe,25,false
Jane Smith,30,true
excel_to_json_mcp_from_url
Converts an Excel file from a provided URL into JSON format.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | URL pointing to an Excel (.xlsx) |
| options | object | No | Optional configuration object for customizing the conversion process. |
Note:
- Each sheet of the Excel file should contain at least two rows (header row + data row).
- The first row will be considered as "header" row, and this MCP will use it as column names, subsequently JSON keys.
- The following rows will be considered as "data" rows, and this MCP will treat them as JSON values.
- This Excel file should be in '.xlsx' format.
- Each sheet of the Excel file will be converted to a JSON object.
- Each JSON object will have 'sheetName' (string) and 'data' (array of objects) properties.
- Each JSON object in 'data' array will have properties corresponding to column names.
- Each JSON object in 'data' array will have values corresponding to cell values.
Example Prompt 1
Convert Excel file to JSON, file URL: https://tools.wtsolutions.cn/example.xlsx
Example Prompt 2
(applicable only when you do not have a URL and working with online AI LLM)
I've jsut uploaded one .xlsx file to you, please extract its URL and send it to MCP tool 'excel_to_json_mcp_from_url', for Excel to JSON conversion.
Options Object
If you do not have a Pro Code, you can still use this MCP tool. However, max. 6 rows of data will be processed.
The optional options object can contain the following properties for customizing the conversion process. This feature requires a valid Pro Code (Excel to JSON, JSON to Excel by WTSolutions Subscription), see Pricing.
| Property | Type | Default | Description |
|---|---|---|---|
| proCode | string | "" | Pro Code for unlimited data processing which requires a valid subscription to Excel to JSON service. |
| jsonMode | string | "flat" | Format mode for JSON output: "nested" or "flat" |
| header | string | "row" | Specifies which row/column to use as headers: "row" (first row) or "column" (first column) |
| delimiter | string | "." | Delimiter character for nested JSON keys when using jsonMode: "nested", acceptable delimiters are ".", "_", "__", "/". |
| emptyCell | string | "emptyString" | Handling of empty cells: "emptyString", "null", or "exclude" |
| booleanFormat | string | "trueFalse" | Format for boolean values: "trueFalse", "10", or "string" |
| jsonFormat | string | "arrayOfObject" | Overall JSON output format: "arrayOfObject" or "2DArray" |
| singleObjectFormat | string | "array" | Format when result has only one object: "array" (keep as array) or "object" (return as single object) |
Note:
delimiterworks only whenjsonModeis "nested".singleObjectFormatworks only whenjsonFormatis "arrayOfObject".jsonFormatas "2DArray" works only whenjsonModeis "flat".
Response Format
The MCP tools return a JSON object with the following structure:
| Field | Type | Description |
|---|---|---|
| isError | boolean | Indicates if there was an error processing the request |
| msg | string | 'success' or error description |
| data | string | Converted data as array of sheet objects if using URL, string if using direct data, '' if there was an error. Each sheet object contains 'sheetName' (string) and 'data' (array of objects) if using URL |
Example Success Response
{
"content": [{
"type": "text",
"text": "{\"isError\":false,\"msg\":\"success\",\"data\":\"[{\"Name\":\"John Doe\",\"Age\":25,\"IsStudent\":false},{\"Name\":\"Jane Smith\",\"Age\":30,\"IsStudent\":true}]\"}"
}]
}
Above is the response from MCP tool, and in most cases your LLM should interpret the response and present you with a JSON object, for example as below.
Note, different LLM models may have different ways to interpret the JSON object, so please check if the JSON object is correctly interpreted by your LLM model.
{
"isError": false,
"msg": "success",
"data": "[{\"Name\":\"John Doe\",\"Age\":25,\"IsStudent\":false},{\"Name\":\"Jane Smith\",\"Age\":30,\"IsStudent\":true}]"
}
{
"isError": false,
"msg": "success",
"data": [
{
"Name": "John Doe",
"Age": 25,
"IsStudent": false
},
{
"Name": "Jane Smith",
"Age": 30,
"IsStudent": true
}
]
}
[
{
"Name": "John Doe",
"Age": 25,
"IsStudent": false
},
{
"Name": "Jane Smith",
"Age": 30,
"IsStudent": true
}
]
Example Failed Response
{
"content": [{
"type": "text",
"text": "{\"isError\": true, \"msg\": \"Network Error when fetching file\", \"data\": \"\"}"
}]
}
Above is the response from MCP tool, and in most cases your LLM should interpret the response and present you with a JSON object, for example as below.
Note, different LLM models may have different ways to interpret the JSON object, so please check if the response is correctly interpreted by your LLM model.
{
"isError": true,
"msg": "Network Error when fetching file",
"data": ""
}
or it is also possbile that your LLM would say "Network Error when fetching file, try again later" to you.
Data Type Handling
The API automatically detects and converts different data types:
- Numbers: Converted to numeric values
- Booleans: Recognizes 'true'/'false' (case-insensitive) and converts to boolean values
- Dates: Detects various date formats and converts them appropriately
- Strings: Treated as string values
- Empty values: Represented as empty strings
Error Handling
The MCP returns descriptive error messages for common issues:
Excel Data Format Invalid: When input data is not tab-separated or comma-separatedAt least 2 rows are required: When input data has fewer than 2 rowsBoth data and url received: When both 'data' and 'url' parameters are providedNetwork Error when fetching file: When there's an error downloading the file from the provided URLFile not found: When the file at the provided URL cannot be foundBlank/Null/Empty cells in the first row not allowed: When header row contains empty cellsServer Internal Error: When an unexpected error occursPro Code Invalid: When the provided Pro Code is invalid or not subscribedMax 6 rows processed: When a valid Pro Code is not provided, only the first 6 rows of data will be processed.
Service Agreement and Privacy Policy
By using Excel to JSON MCP, you agree to the service agreement, and privacy policy.
Pricing
Free Version, max. 6 rows of data processed.
Pro Version, unlimited data processing.
Please refer to the pricing page for more details.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.