Skip to main content
Glama

Zovo JSON to Spreadsheet

JSON to Excel

json_to_excel
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
fileNoThe JSON file to convert, e.g. orders.json (UTF-8, or UTF-16 with a byte order mark), up to 5 MB.
orientNoHow 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_bomNotrue (default): the CSV starts with a UTF-8 byte order mark so Excel shows accents correctly. false: plain UTF-8.
json_textNoInstead of a file: the JSON itself, e.g. [{"name":"Ann","age":31},{"name":"Bo","age":40}]. Use either file or json_text.
records_pathNoDotted 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_arraysNoLists 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_arraysNoLists 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

NameRequiredDescriptionDefault
cellsYes
checkYes
notesYes
sheetsYes
sourceYes
columnsYes
previewYes
recordsYes
csv_nameYes
csv_filesNo
cut_cellsYes
downloadsYes
json_cellsYes
output_nameYes
joined_cellsYes
records_fromYes
sheets_countNo
columns_countNo
preview_countNo
duplicate_keysYes
numbers_as_textYes
expires_in_hoursYes
formula_like_textYes
values_outside_recordsYes
removed_control_charactersYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources