Rowsmith

Datos de prueba falsos (CSV, JSON, SQL) a partir de un esquema, un catálogo de valores inválidos con razones, y un sandbox de pagos que nunca mueve dinero. Gratis, sin clave.

Documentación

Rowsmith

Datos de prueba falsos a partir de un esquema de tabla, como CSV, JSON o sentencias SQL INSERT. Gratuito y con límite de uso, sin cuenta ni clave de API.

Para fixtures, datos semilla, demos y CI. Envía un esquema, recibe filas.

Inicio rápido (60 segundos)

1. Añade Rowsmith a Claude Desktop, Cursor u otro cliente MCP:

{"mcpServers":{"rowsmith":{"command":"npx","args":["-y","rowsmith-mcp"]}}}

2. Pregunta: Generate 20 orders with a fixed seed as CSV

3. O llama a la API directamente:

curl -s https://testdata-api.re-jam620.workers.dev/v1/generate -H 'content-type: application/json' \
  -d '{"rows":20,"seed":42,"format":"csv","columns":[{"name":"order_id","type":"sequence","prefix":"ord_","pad":4},{"name":"email","type":"email"},{"name":"total_usd","type":"decimal","min":1,"max":500}]}'

curl -s 'https://testdata-api.re-jam620.workers.dev/v1/invalid?kind=email&count=5&seed=42'

ID=$(curl -s https://testdata-api.re-jam620.workers.dev/v1/sandbox -H 'content-type: application/json' -d '{"seed":42}' | sed -E 's/.*"id":"([^"]+)".*/\1/')
curl -s https://testdata-api.re-jam620.workers.dev/v1/sandbox/$ID/charges -H 'content-type: application/json' \
  -d '{"amount":1999,"currency":"usd","card":"4242424242424242"}'

El urllib de la biblioteca estándar de Python es bloqueado por Cloudflare antes de llegar a la API (403, código de error 1010) cuando envía su User-Agent predeterminado. Establece el tuyo propio, por ejemplo User-Agent: my-tests/1.0. En nuestras pruebas del 18-10-2026, requests, httpx, aiohttp, Node y curl funcionaron con sus valores predeterminados.

  • Gratuito, con límite de uso, sin cuenta, sin clave de API.
  • El mismo esquema y semilla producen una salida idéntica byte a byte para la misma versión del generador.
  • Un catálogo de valores inválidos con el motivo por el que cada valor es inválido.
  • Un sandbox de pagos que nunca mueve dinero: un sandbox y todo lo que contiene se elimina 1 hora después de su creación. Solo acepta números de tarjeta de la lista de pruebas publicada por Stripe y no almacena ningún texto libre que envíes.
  • Listado en el Registro MCP oficial como io.github.meiorz/rowsmith.

Pruébalo

curl -s https://testdata-api.re-jam620.workers.dev/v1/generate \
  -H 'content-type: application/json' \
  -d '{"table":"orders","rows":3,"seed":42,"format":"csv","columns":[{"name":"order_id","type":"sequence","prefix":"ord_","pad":4},{"name":"email","type":"email"},{"name":"total_usd","type":"decimal","min":1,"max":500},{"name":"status","type":"enum","values":["paid","refunded","partially_refunded"],"weights":[8,1,1]}]}'

Qué devuelve

order_id,email,total_usd,status
ord_0001,amara.weber561@mail.test,230.25,paid
ord_0002,maya.wang873@mail.test,17.04,paid
ord_0003,jin.weber19@mail.test,92.51,paid

Esa solicitud, ejecutada ahora por el propio servicio. El mismo esquema y semilla producen una salida idéntica byte a byte para la misma versión del generador (generador 1, sfc32-splitmix32, enviado como x-generator-version), por lo que una ejecución de CI es reproducible.

Úsalo desde un agente de IA

El servidor rowsmith-mcp ofrece a los clientes MCP una herramienta generate_test_data. Está listado en el Registro MCP oficial como io.github.meiorz/rowsmith.

{
  "mcpServers": {
    "rowsmith": { "command": "npx", "args": ["-y", "rowsmith-mcp"] }
  }
}

Para más de unas 50 filas, la herramienta puede escribir un archivo en lugar de poner los datos en el contexto del modelo.

Tipos de columna

  • uuid
  • sequence
  • integer
  • decimal
  • boolean
  • enum
  • date
  • datetime
  • first_name
  • last_name
  • full_name
  • email
  • phone
  • test_card
  • ssn_invalid
  • iban_invalid
  • text

Opciones por tipo: /v1/types. Esquema completo de solicitud: /openapi.json.

Qué son los datos

  • Cada valor es generado por un programa a partir de una semilla. No se utilizan datos de personas reales como entrada, y ningún registro se deriva de una persona real.
  • Los identificadores provienen solo de rangos reservados o inválidos: dominios de correo example.com, example.org, example.net y .test; números de teléfono 555-0100 a 555-0199; números de tarjeta publicados para pruebas; valores con forma de SSN e IBAN en rangos que nunca pueden ser válidos.
  • Un nombre generado puede coincidir por casualidad con el de una persona real.
  • Envía solo esquemas, nunca datos reales.

Límites

Hasta 500 filas y 50 columnas por llamada, con límites diarios por llamante (200) y generales. Si superas un límite, recibes HTTP 429 con Retry-After. Los límites actuales están en /openapi.json.