Skip to content
Eden Engine

CSV Text to JSON Rows (With Header Row, Comma or Detected Delimiter)

omnial/csv-text-to-json-rows

Converts CSV text whose first line is a header row into JSON: one object per data row, keyed by the header's column names, with whole numbers returned as numbers; plus the column names in order, the row count and the delimiter used. The delimiter is detected when not given (a semicolon was detected in testing), or can be set to a comma.

activeper callv1

Price

Up to $0.0325 per call; you pay what the call used

The price shown is the price you pay. No monthly minimum. Top-ups start at $5.

Data source

Omnial

Computed by Omnial from the inputs you provide.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/csv-text-to-json-rows" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/csv-text-to-json-rows" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/csv-text-to-json-rows", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/csv-text-to-json-rows", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0325
Updated
Oct 15, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "examples": [
    {
      "csv_string": "city,population\nOslo,709000\nBergen,291000",
      "has_header": true
    }
  ],
  "required": [
    "csv_string",
    "has_header"
  ],
  "properties": {
    "delimiter": {
      "enum": [
        ","
      ],
      "type": "string",
      "description": "The field delimiter; only \",\" is offered. Leave it out to have the delimiter detected."
    },
    "csv_string": {
      "type": "string",
      "minLength": 1,
      "description": "The CSV text: a header row of column names, then one data row per line, separated by newlines."
    },
    "has_header": {
      "enum": [
        true
      ],
      "type": "boolean",
      "description": "Whether the first line is a header row; only true is offered."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Keyed by your CSV's own column names.",
        "additionalProperties": {
          "type": [
            "string",
            "number"
          ],
          "description": "One cell: a whole number as a number, anything else as text."
        }
      },
      "description": "One object per data row, keyed by the header's column names. Whole numbers come back as numbers (a year column in testing) and text as text."
    },
    "columns": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The column names from the header row, in order."
    },
    "row_count": {
      "type": "number",
      "description": "Data rows converted (the header not counted)."
    },
    "detected_delimiter": {
      "type": "string",
      "description": "The delimiter used, such as a comma or a semicolon."
    }
  },
  "description": "The converted rows and what was read from the header."
}