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