{
  "id": "data.profile",
  "object": "tool",
  "name": "Profile data",
  "summary": "Column types, nulls, ranges.",
  "description": "Profiles CSV, TSV, JSON, NDJSON or XLSX rows: the row count and, per column, the inferred type, null or empty count, distinct count (capped at 10,000), min, max and mean for numbers, earliest and latest for dates, string lengths and sample values.",
  "category": "data",
  "hosted_by": "Opentools",
  "runtime": "worker",
  "side_effects": false,
  "status": "live",
  "credits": 1,
  "price": "$0.0010",
  "providers": [
    {
      "id": "opentools",
      "name": "Opentools",
      "price": "$0.0010"
    }
  ],
  "mcp_name": "data_profile",
  "input_schema": {
    "type": "object",
    "properties": {
      "file": {
        "description": "CSV, TSV, JSON, NDJSON or XLSX file",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "Public http(s) URL of the file"
              }
            },
            "required": [
              "url"
            ]
          },
          {
            "type": "object",
            "properties": {
              "file_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                "description": "An id returned by POST /v1/files"
              }
            },
            "required": [
              "file_id"
            ]
          },
          {
            "type": "object",
            "properties": {
              "base64": {
                "type": "string",
                "description": "Base64-encoded file bytes (up to 10 MB)"
              },
              "name": {
                "type": "string",
                "description": "File name, e.g. invoice.pdf"
              },
              "content_type": {
                "type": "string"
              }
            },
            "required": [
              "base64",
              "name"
            ]
          },
          {
            "type": "object",
            "properties": {
              "connection": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "description": "A storage connection id or name (see storage.connections)"
              },
              "path": {
                "type": "string",
                "minLength": 1,
                "maxLength": 1024,
                "description": "Path of the file in that connection, e.g. reports/q3.pdf"
              }
            },
            "required": [
              "connection",
              "path"
            ]
          }
        ],
        "x-file": true
      },
      "text": {
        "description": "CSV or JSON text, instead of a file",
        "type": "string",
        "maxLength": 10000000
      },
      "rows": {
        "description": "Rows inline, instead of a file",
        "maxItems": 200000,
        "type": "array",
        "items": {}
      },
      "format": {
        "description": "Input format. Detected if omitted.",
        "type": "string",
        "enum": [
          "csv",
          "tsv",
          "json",
          "ndjson",
          "xlsx"
        ]
      },
      "sheet": {
        "description": "XLSX: sheet to profile. The first sheet if omitted.",
        "type": "string",
        "maxLength": 100
      }
    }
  },
  "kind": "tool"
}