Skip to main content
Glama

CSV to JSON records

submit_csv_to_json_rows
Idempotent

Convert a CSV into a JSON array of objects keyed by the header, with documented type coercion: empty becomes null, integers and numbers become numbers, true and false become booleans, everything else stays a string. Choose this when you need a CSV delivered as JSON records, with documented type coercion: empty to null, numbers to numbers, true and false to booleans. Do not choose this when you need a module that performs the conversion inside your own pipeline (use csv-json-transformation), or when the target shape is nested: CSV is flat. Example requests: Turn this CSV into a JSON array of objects. | Convert this spreadsheet export to JSON for my API. | Give me this CSV as JSON records, with numbers as numbers.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "inputs": "<inputs>",
      "authorized_by": "<authorized_by>"
    },
    "name": "submit_csv_to_json_rows"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputsYes
quote_idNoThe quote_id returned by POST /v1/jobs. Required to authorize a priced capability; the service rejects a priced job that does not name the quote it issued.
authorized_byYesIdentifier of the human or agent authorizing this job.
accepted_priceNoThe amount accepted, exactly as quoted (for example "5.00" or 5). Checked against the stored quote, so a price that moved between quote and authorize is refused rather than silently absorbed. Optional, but sent to make the acceptance explicit.

Output Schema

NameRequiredDescriptionDefault
quoteNo
stateYes
job_idYes
artifactsNo
access_tokenNoPer-job credential. Present it as the X-Job-Token header to read the job or list it. Keep it; it is the only credential for this job.
verificationNoIndependent verification. verification.ok = false means the job failed, not a partial success.
capability_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=false), so the description's main added value is the coercion contract — empty→null, numerics→numbers, true/false→booleans, everything else string — which is genuinely behavioral and not in the annotations. It does not mention that this is a priced job requiring a quote from POST /v1/jobs and an authorizing identity, a notable omission for a non-read-only submit tool, though the schema does document it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and well organized (purpose → coercion → choose/do-not-choose → examples), but the coercion rule is stated twice in near-identical wording, which is pure waste. The three example requests are useful but make the tail heavier than needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return shape needn't be explained, and the description covers purpose, coercion semantics, and sibling routing. What's missing is the priced-job/authorization flow (quote_id plus authorized_by) that a calling agent must satisfy before invoking, though that lives in the parameter descriptions.

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 75% and every one of the four parameters carries a substantive description (content with delimiter and byte-limit detail, quote_id, accepted_price, authorized_by). The description adds no parameter-level guidance beyond implying header-keyed output and the type coercion applied to `content`; it never mentions quote_id, accepted_price, or authorized_by.

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 and resource: 'Convert a CSV into a JSON array of objects keyed by the header', plus the exact coercion contract. It explicitly distinguishes itself from the sibling that produces a reusable module (csv-json-transformation) and from nested-shape use cases, so an agent can tell it apart 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?

Gives explicit when-to-choose ('need a CSV delivered as JSON records') and when-not-to-choose ('need a module that performs the conversion inside your own pipeline — use csv-json-transformation', 'target shape is nested: CSV is flat'). The named alternative and the exclusion condition are both concrete, which is exactly what routing between the many submit_* siblings requires.

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