Skip to main content
Glama

Zovo JSON to Spreadsheet

Server Details

Turn a JSON file or pasted JSON into an Excel workbook and a CSV, right in the chat.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness4/5

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 tools
inspect_jsonInspect JSON structureA
Read-onlyIdempotent
Inspect

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.

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.
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.

Output Schema

NameRequiredDescription
depthYes
listsYes
notesYes
pathsYes
shapeYes
sourceYes
recordsYes
estimateYes
json_valuesYes
paths_totalYes
suggestionsYes
records_fromYes
duplicate_keysYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 ExcelA
Read-onlyIdempotent
Inspect

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.

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

NameRequiredDescription
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

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedinspect_json
    • First observedjson_to_excel

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources