MCP Connector

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.


90
Spark score
out of 100
Updated 3 months ago
Version 1.0.0
Models
universal

Add 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

01

Convert Excel files from URLs to JSON.

02

Transform direct Excel or CSV data input into JSON.

03

Automatically detect and convert data types (numbers, booleans, dates, strings).

04

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

excel_to_json_mcp_from_data

Converts tab-delimited Excel data or comma-separated CSV data into JSON format

excel_to_json_mcp_from_url

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:

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).
    1. The first row will be considered as "header" row, and this MCP will use it as column names, subsequently JSON keys.
    2. 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:

  • delimiter works only when jsonMode is "nested".
  • singleObjectFormat works only when jsonFormat is "arrayOfObject".
  • jsonFormat as "2DArray" works only when jsonMode is "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-separated
  • At least 2 rows are required: When input data has fewer than 2 rows
  • Both data and url received: When both 'data' and 'url' parameters are provided
  • Network Error when fetching file: When there's an error downloading the file from the provided URL
  • File not found: When the file at the provided URL cannot be found
  • Blank/Null/Empty cells in the first row not allowed: When header row contains empty cells
  • Server Internal Error: When an unexpected error occurs
  • Pro Code Invalid: When the provided Pro Code is invalid or not subscribed
  • Max 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.