Zovo JSON to Spreadsheet
Server Details
Turn a JSON file or pasted JSON into an Excel workbook and a CSV, right in the chat.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
inspect_json is clearly a read-only preflight/analysis tool, while json_to_excel is the conversion/output tool. The descriptions explicitly distinguish their roles and even cross-reference the shared parameters, leaving little chance of misselection.
Both names are readable snake_case and domain-specific, but they use slightly different conventions: inspect_json is verb_noun while json_to_excel is noun_to_noun. This is a minor deviation rather than a confusing inconsistency.
The two-tool surface is focused and each tool earns its place: one inspects, one converts. It is slightly below the typical 3-15 range, but not thin for a narrow JSON-to-spreadsheet utility.
The core workflow is covered: inspect JSON structure and errors, then convert to Excel/CSV with nesting and list handling. Minor gaps exist around unsupported input variants such as JSON Lines and JSON with comments/trailing commas, with no dedicated fallback tool for those cases.
Available Tools
2 toolsinspect_jsonInspect JSON structureARead-onlyIdempotentInspect
Use this when the user asks what a JSON file contains, which keys or nesting it has, how many records it holds, or why it does not parse, before converting it. Takes the same file or json_text, records_path and orient as json_to_excel and returns the record count, the key paths with their types and fill rate, nesting depth, the lists inside the records, duplicate keys, an estimate of sheets, columns and cells, and suggestions (for example a records_path). Invalid JSON is reported with its line and column. Does not make a file and does not change the JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | The JSON file to convert, e.g. orders.json (UTF-8, or UTF-16 with a byte order mark), up to 5 MB. | |
| orient | No | How records are laid out, e.g. records. records (default): a list of objects, one row each (a single object is one row). columns: an object of equal-length lists, {"name":["Ann","Bo"],"age":[31,40]}. index: an object of objects keyed by id, {"u1":{...},"u2":{...}}; the key goes in column _key. | |
| json_text | No | Instead of a file: the JSON itself, e.g. [{"name":"Ann","age":31},{"name":"Bo","age":40}]. Use either file or json_text. | |
| records_path | No | Dotted key path to the part that holds the records, e.g. "data.items" for {"data":{"items":[...]}}. Use a number for a list item, e.g. "results.0.rows". Default: the whole document. |
Output Schema
| Name | Required | Description |
|---|---|---|
| depth | Yes | |
| lists | Yes | |
| notes | Yes | |
| paths | Yes | |
| shape | Yes | |
| source | Yes | |
| records | Yes | |
| estimate | Yes | |
| json_values | Yes | |
| paths_total | Yes | |
| suggestions | Yes | |
| records_from | Yes | |
| duplicate_keys | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, and the description adds real context beyond them: invalid JSON is reported with line and column, and the tool is explicitly non-mutating ('does not change the JSON'). It does not mention performance characteristics or size limits (the 5 MB cap lives only in the schema), so it stops just short of full disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the usage trigger, then the output contract, then the exclusions — a logical order with no filler sentences. The return-value enumeration is dense but each item is distinct and useful; it could be trimmed slightly given an output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only inspection tool with four fully documented parameters and an output schema, the description covers purpose, triggers, expected return payload, error reporting, and non-mutation. Nothing an agent needs to select or call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the file/json_text/records_path/orient semantics are already fully documented in the schema. The description only says it takes the same parameters as json_to_excel, adding no syntax or format meaning beyond that. Baseline 3 applies when the schema carries the weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (inspect) and resource (JSON structure) and enumerates the exact questions it answers: contents, keys/nesting, record count, parse failures. It explicitly distinguishes itself from the sibling json_to_excel by declaring it 'does not make a file', so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with a concrete when-to-use trigger ('when the user asks what a JSON file contains... or why it does not parse') and positions itself as the pre-step 'before converting it'. The sibling json_to_excel is named and its parameter compatibility stated, and the closing 'does not make a file' makes the exclusion explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_to_excelJSON to ExcelARead-onlyIdempotentInspect
Use this when the user wants to convert JSON to Excel or CSV, turn an API response or a JSON export into a spreadsheet, or flatten nested JSON into columns. Takes one attached .json file or pasted json_text, an optional records_path (e.g. data.items) and orient (records, columns, index), and how to handle lists (scalar_arrays join or rows, object_arrays sheet or json). Returns an .xlsx and a .csv download (a ZIP of CSVs when there are linked sheets), the rows, columns and cells written, the numbers kept as text, formula-like text, and a check that each cell was read back from both files. Does not accept JSON with comments, trailing commas or JSON Lines, and does not turn date text into Excel dates. Do not use for Excel to JSON or for editing a JSON file.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | The JSON file to convert, e.g. orders.json (UTF-8, or UTF-16 with a byte order mark), up to 5 MB. | |
| orient | No | How records are laid out, e.g. records. records (default): a list of objects, one row each (a single object is one row). columns: an object of equal-length lists, {"name":["Ann","Bo"],"age":[31,40]}. index: an object of objects keyed by id, {"u1":{...},"u2":{...}}; the key goes in column _key. | |
| csv_bom | No | true (default): the CSV starts with a UTF-8 byte order mark so Excel shows accents correctly. false: plain UTF-8. | |
| json_text | No | Instead of a file: the JSON itself, e.g. [{"name":"Ann","age":31},{"name":"Bo","age":40}]. Use either file or json_text. | |
| records_path | No | Dotted key path to the part that holds the records, e.g. "data.items" for {"data":{"items":[...]}}. Use a number for a list item, e.g. "results.0.rows". Default: the whole document. | |
| object_arrays | No | Lists that hold objects, such as order lines, e.g. sheet. sheet (default): a linked sheet with one row per item, linked by _parent_row. json: the list as compact JSON text in one cell. | |
| scalar_arrays | No | Lists of plain values such as ["red","blue"], e.g. join. join (default): one cell, values joined with "; ". rows: one row per value in a linked sheet. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cells | Yes | |
| check | Yes | |
| notes | Yes | |
| sheets | Yes | |
| source | Yes | |
| columns | Yes | |
| preview | Yes | |
| records | Yes | |
| csv_name | Yes | |
| csv_files | No | |
| cut_cells | Yes | |
| downloads | Yes | |
| json_cells | Yes | |
| output_name | Yes | |
| joined_cells | Yes | |
| records_from | Yes | |
| sheets_count | No | |
| columns_count | No | |
| preview_count | No | |
| duplicate_keys | Yes | |
| numbers_as_text | Yes | |
| expires_in_hours | Yes | |
| formula_like_text | Yes | |
| values_outside_records | Yes | |
| removed_control_characters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the description only needs to add context, and it does: it discloses the produced artifacts (.xlsx plus .csv, or a ZIP when linked sheets exist), the round-trip verification that every cell was read back from both files, and the numeric/formula text preservation behavior. It also flags the non-obvious refusal cases (no comments, no trailing commas, no JSON Lines) and the deliberate non-coercion of date text into Excel dates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the when-to-use clause before parameters and exclusions, and most sentences carry distinct information. The single long sentence enumerating return values (rows, columns, cells, numbers kept as text, formula-like text, read-back check) is dense and partly redundant with the output schema, which costs it the top mark.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter conversion tool with nested file objects, three enums, and an output schema, the description covers input sources, layout semantics, artifact outputs, verification, and hard input rejections. Nothing an agent needs in order to select and call it correctly — including which input mode to prefer — is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter already carries a detailed enum explanation with examples, so the baseline is 3. The description restates the key knobs (records_path e.g. data.items, orient records/columns/index, scalar_arrays join/rows, object_arrays sheet/json) but adds no syntax or defaulting nuance beyond what the schema properties already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource pair (convert JSON to Excel/CSV) and enumerates the concrete scenarios it covers: API responses, JSON exports, and flattening nested JSON. It also draws explicit boundaries against the one sibling domain ("Do not use for Excel to JSON or for editing a JSON file"), so an agent can route between json_to_excel and inspect_json without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with a direct when-to-use clause keyed to user intent ("Use this when the user wants to convert..."), then lists concrete triggers such as pasted json_text versus an attached .json file. It also names explicit exclusions — JSON with comments, trailing commas, JSON Lines — and points to the inverse operation, which is precisely the when-not-to-use guidance the dimension asks for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
inspect_json - First observed
json_to_excel
Related MCP Connectors
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Open, inspect, filter, edit and convert xlsx and csv files from your AI chat. Processing is local.
Turn a CSV or Excel sheet into a clean, print-ready PDF table right in the chat.
1File tools for your AI chat: PDF tables to Excel, merge PDFs, images to PDF, fill PDF forms.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI models to search, read, and analyze Excel files from your local file system with support for multiple worksheets, text search, and JSON data conversion.4MIT
- FlicenseAqualityCmaintenanceThe JSON to Excel MCP provides a standardized interface for converting (1)JSON data (2)URL pointing to JSON files into CSV format25 npm1-
- AlicenseNot gradedqualityCmaintenanceEnables users to paste messy delimited text and receive a cleaned, structured table by detecting the delimiter, columns, and suspect rows, then returning normalized rows as JSON. It also supports exporting the results as an .xlsx file through a simulated conversational chat interface.MIT
- AlicenseBqualityBmaintenanceEnables natural language interaction with JSON files, providing tools to load, query, aggregate, transform, and export data directly from AI editors.26250 PyPI3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.